amelioration(UsersDeletionService.expired_users_with_dossiers): ignore les usagers ayant un dossier en instruction, meme si il a des dossiers en brouillon ou autre
This commit is contained in:
parent
3a9b520a93
commit
bfe27b5eb7
3 changed files with 28 additions and 16 deletions
|
@ -32,16 +32,10 @@ class Expired::UsersDeletionService < Expired::MailRateLimiter
|
||||||
|
|
||||||
# rubocop:disable DS/Unscoped
|
# rubocop:disable DS/Unscoped
|
||||||
def expired_users_with_dossiers
|
def expired_users_with_dossiers
|
||||||
users = User.arel_table
|
|
||||||
dossiers = Dossier.arel_table
|
|
||||||
|
|
||||||
expired_users
|
expired_users
|
||||||
.joins(
|
.joins(:dossiers)
|
||||||
users.join(dossiers, Arel::Nodes::InnerJoin)
|
.group("users.id")
|
||||||
.on(users[:id].eq(dossiers[:user_id])
|
.having("NOT 'en_instruction' = ANY(ARRAY_AGG(dossiers.state))")
|
||||||
.and(dossiers[:state].not_eq(Dossier.states.fetch(:en_instruction))))
|
|
||||||
.join_sources
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def expired_users_without_dossiers
|
def expired_users_without_dossiers
|
||||||
|
|
|
@ -5,18 +5,20 @@
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Cela fait plus de deux ans que vous ne vous êtes pas connecté à #{APPLICATION_NAME}.
|
Cela fait plus de deux ans que vous ne vous êtes pas connecté à #{APPLICATION_NAME}.
|
||||||
%br
|
- if @user.dossiers.not_brouillon.count == 0
|
||||||
Dans le respect du RGPD, nous allons
|
Aussi vous n'avez plus de dossier sur la plateforme.
|
||||||
%strong supprimer votre compte d'ici #{distance_of_time_in_words(Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks)}.
|
|
||||||
%p
|
%p
|
||||||
%strong Ne vous en faites pas,
|
Dans le respect du règlement général sur la protection des données, nous allons
|
||||||
vos dossiers restent conservé par l'administration. À tout moment vous pourrez re-créer une compte sur notre plateforme.
|
%strong supprimer votre compte d'ici #{distance_of_time_in_words(Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks)}.
|
||||||
%br
|
|
||||||
Mais dans l'attente, nous tenons a respecter le RGPD et protéger ainsi votre vie privée.
|
|
||||||
|
|
||||||
- if @user.dossiers.not_brouillon.count > 0
|
- if @user.dossiers.not_brouillon.count > 0
|
||||||
%p
|
%p
|
||||||
|
%strong Ne vous en faites pas,
|
||||||
|
vos dossiers traités sont conservés par l'administration. Aussi, à tout moment vous pourrez re-créer une compte sur notre plateforme.
|
||||||
Au besoin, vous pouvez télécharger vos dossiers en suivant ce lien :
|
Au besoin, vous pouvez télécharger vos dossiers en suivant ce lien :
|
||||||
= link_to dossiers_url, dossiers_url
|
= link_to dossiers_url, dossiers_url
|
||||||
|
|
||||||
|
%p Vous souhaitez conserver votre compte et vos dossiers ? Connectez-vous avec vos identifiants et nous conserverons vos données.
|
||||||
|
|
||||||
= render partial: "layouts/mailers/signature"
|
= render partial: "layouts/mailers/signature"
|
||||||
|
|
|
@ -165,6 +165,14 @@ describe Expired::UsersDeletionService do
|
||||||
it { is_expected.to include(user) }
|
it { is_expected.to include(user) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when user is expired and has a many dossier brouillon' do
|
||||||
|
before do
|
||||||
|
create(:dossier, :brouillon, user:, created_at: last_signed_in_expired)
|
||||||
|
create(:dossier, :brouillon, user:, created_at: last_signed_in_expired)
|
||||||
|
end
|
||||||
|
it { is_expected.to eq([user]) }
|
||||||
|
end
|
||||||
|
|
||||||
context 'when user is expired and has a dossier en_construction' do
|
context 'when user is expired and has a dossier en_construction' do
|
||||||
let(:dossier) { create(:dossier, :en_construction, user:, created_at: last_signed_in_expired) }
|
let(:dossier) { create(:dossier, :en_construction, user:, created_at: last_signed_in_expired) }
|
||||||
it { is_expected.to include(user) }
|
it { is_expected.to include(user) }
|
||||||
|
@ -175,6 +183,14 @@ describe Expired::UsersDeletionService do
|
||||||
it { is_expected.not_to include(user) }
|
it { is_expected.not_to include(user) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when user is expired and has a dossier en_instruction plus another one brouillon' do
|
||||||
|
before do
|
||||||
|
create(:dossier, :en_instruction, user:, created_at: last_signed_in_expired)
|
||||||
|
create(:dossier, :brouillon, user:, created_at: last_signed_in_expired)
|
||||||
|
end
|
||||||
|
it { is_expected.to eq([]) }
|
||||||
|
end
|
||||||
|
|
||||||
context 'when user is expired and has a dossier termine' do
|
context 'when user is expired and has a dossier termine' do
|
||||||
let(:dossier) { create(:dossier, :accepte, user:, created_at: last_signed_in_expired) }
|
let(:dossier) { create(:dossier, :accepte, user:, created_at: last_signed_in_expired) }
|
||||||
it { is_expected.to include(user) }
|
it { is_expected.to include(user) }
|
||||||
|
|
Loading…
Reference in a new issue