Handle processed dossiers in deletion mailers
This commit is contained in:
parent
bdbee38ff1
commit
f1b531911b
7 changed files with 77 additions and 3 deletions
|
@ -134,7 +134,8 @@ class DossierMailer < ApplicationMailer
|
||||||
def default_i18n_subject(interpolations = {})
|
def default_i18n_subject(interpolations = {})
|
||||||
if interpolations[:state]
|
if interpolations[:state]
|
||||||
mailer_scope = self.class.mailer_name.tr('/', '.')
|
mailer_scope = self.class.mailer_name.tr('/', '.')
|
||||||
I18n.t("subject_#{interpolations[:state]}", interpolations.merge(scope: [mailer_scope, action_name]))
|
state = interpolations[:state].in?(Dossier::TERMINE) ? 'termine' : interpolations[:state]
|
||||||
|
I18n.t("subject_#{state}", interpolations.merge(scope: [mailer_scope, action_name]))
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
|
- if @state == Dossier.states.fetch(:en_construction)
|
||||||
= t('.header_en_construction', count: @dossiers.count)
|
= t('.header_en_construction', count: @dossiers.count)
|
||||||
|
- else
|
||||||
|
= t('.header_termine', count: @dossiers.count)
|
||||||
%ul
|
%ul
|
||||||
- @dossiers.each do |d|
|
- @dossiers.each do |d|
|
||||||
%li
|
%li
|
||||||
|
@ -13,5 +16,7 @@
|
||||||
%p
|
%p
|
||||||
- if @state == Dossier.states.fetch(:en_construction)
|
- if @state == Dossier.states.fetch(:en_construction)
|
||||||
= sanitize(t('.footer_en_construction', count: @dossiers.count))
|
= sanitize(t('.footer_en_construction', count: @dossiers.count))
|
||||||
|
- else
|
||||||
|
= sanitize(t('.footer_termine', count: @dossiers.count))
|
||||||
|
|
||||||
= render partial: "layouts/mailers/signature"
|
= render partial: "layouts/mailers/signature"
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
|
- if @state == Dossier.states.fetch(:en_construction)
|
||||||
= t('.header_en_construction', count: @dossiers.count)
|
= t('.header_en_construction', count: @dossiers.count)
|
||||||
|
- else
|
||||||
|
= t('.header_termine', count: @dossiers.count)
|
||||||
%ul
|
%ul
|
||||||
- @dossiers.each do |d|
|
- @dossiers.each do |d|
|
||||||
%li
|
%li
|
||||||
|
|
|
@ -4,9 +4,18 @@ fr:
|
||||||
subject_en_construction:
|
subject_en_construction:
|
||||||
one: Un dossier en construction va bientôt être supprimé
|
one: Un dossier en construction va bientôt être supprimé
|
||||||
other: Des dossiers en construction vont bientôt être supprimés
|
other: Des dossiers en construction vont bientôt être supprimés
|
||||||
|
subject_termine:
|
||||||
|
one: Un dossier dont le traitement est terminé va bientôt être supprimé
|
||||||
|
other: Des dossiers dont le traitement est terminé vont bientôt être supprimés
|
||||||
header_en_construction:
|
header_en_construction:
|
||||||
one: "Le dossier en construction suivant sera bientôt automatiquement supprimé :"
|
one: "Le dossier en construction suivant sera bientôt automatiquement supprimé :"
|
||||||
other: "Les dossiers en construction suivant seront bientôt automatiquement supprimés :"
|
other: "Les dossiers en construction suivant seront bientôt automatiquement supprimés :"
|
||||||
|
header_termine:
|
||||||
|
one: "Le dossier suivant dont le traitement est terminé sera bientôt automatiquement supprimé :"
|
||||||
|
other: "Les dossiers suivant dont le traitement est terminé seront bientôt automatiquement supprimés :"
|
||||||
footer_en_construction:
|
footer_en_construction:
|
||||||
one: "Vous avez <b>un mois</b> pour commencer l’instruction du dossier."
|
one: "Vous avez <b>un mois</b> pour commencer l’instruction du dossier."
|
||||||
other: "Vous avez <b>un mois</b> pour commencer l’instruction des dossiers."
|
other: "Vous avez <b>un mois</b> pour commencer l’instruction des dossiers."
|
||||||
|
footer_termine:
|
||||||
|
one: "Vous avez <b>un mois</b> pour archiver le dossier."
|
||||||
|
other: "Vous avez <b>un mois</b> pour archiver les dossiers."
|
||||||
|
|
|
@ -4,9 +4,15 @@ fr:
|
||||||
subject_en_construction:
|
subject_en_construction:
|
||||||
one: Un dossier en construction va bientôt être supprimé
|
one: Un dossier en construction va bientôt être supprimé
|
||||||
other: Des dossiers en construction vont bientôt être supprimés
|
other: Des dossiers en construction vont bientôt être supprimés
|
||||||
|
subject_termine:
|
||||||
|
one: Un dossier dont le traitement est terminé va bientôt être supprimé
|
||||||
|
other: Des dossiers dont le traitement est terminé vont bientôt être supprimés
|
||||||
header_en_construction:
|
header_en_construction:
|
||||||
one: "Afin de limiter la conservation de vos données personnelles, le dossier en construction suivant sera bientôt automatiquement supprimé :"
|
one: "Afin de limiter la conservation de vos données personnelles, le dossier en construction suivant sera bientôt automatiquement supprimé :"
|
||||||
other: "Afin de limiter la conservation de vos données personnelles, les dossiers en construction suivant seront bientôt automatiquement supprimés :"
|
other: "Afin de limiter la conservation de vos données personnelles, les dossiers en construction suivant seront bientôt automatiquement supprimés :"
|
||||||
|
header_termine:
|
||||||
|
one: "Afin de limiter la conservation de vos données personnelles, le dossier suivant dont le traitement est terminé sera bientôt automatiquement supprimé :"
|
||||||
|
other: "Afin de limiter la conservation de vos données personnelles, les dossiers suivant dont le traitement est terminé seront bientôt automatiquement supprimés :"
|
||||||
footer:
|
footer:
|
||||||
one: "Vous pouvez retrouver votre dossier pendant encore <b>un mois</b>. Vous n’avez rien à faire."
|
one: "Vous pouvez retrouver votre dossier pendant encore <b>un mois</b>. Vous n’avez rien à faire."
|
||||||
other: "Vous pouvez retrouver vos dossiers pendant encore <b>un mois</b>. Vous n’avez rien à faire."
|
other: "Vous pouvez retrouver vos dossiers pendant encore <b>un mois</b>. Vous n’avez rien à faire."
|
||||||
|
|
|
@ -102,6 +102,19 @@ RSpec.describe DossierMailer, type: :mailer do
|
||||||
it { expect(subject.body).to include(dossier.procedure.libelle) }
|
it { expect(subject.body).to include(dossier.procedure.libelle) }
|
||||||
it { expect(subject.body).to include("nous nous excusons de la gène occasionnée") }
|
it { expect(subject.body).to include("nous nous excusons de la gène occasionnée") }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'termine' do
|
||||||
|
let(:dossier) { create(:dossier, :accepte) }
|
||||||
|
let(:deleted_dossier) { DeletedDossier.create_from_dossier(dossier, :expired) }
|
||||||
|
|
||||||
|
subject { described_class.notify_automatic_deletion_to_user([deleted_dossier], dossier.user.email) }
|
||||||
|
|
||||||
|
it { expect(subject.to).to eq([dossier.user.email]) }
|
||||||
|
it { expect(subject.subject).to eq("Un dossier a été supprimé automatiquement") }
|
||||||
|
it { expect(subject.body).to include("n° #{dossier.id} ") }
|
||||||
|
it { expect(subject.body).to include(dossier.procedure.libelle) }
|
||||||
|
it { expect(subject.body).not_to include("nous nous excusons de la gène occasionnée") }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.notify_automatic_deletion_to_administration' do
|
describe '.notify_automatic_deletion_to_administration' do
|
||||||
|
@ -126,6 +139,18 @@ RSpec.describe DossierMailer, type: :mailer do
|
||||||
it { expect(subject.body).to include("PDF") }
|
it { expect(subject.body).to include("PDF") }
|
||||||
it { expect(subject.body).to include("Vous avez <b>un mois</b> pour commencer l’instruction du dossier.") }
|
it { expect(subject.body).to include("Vous avez <b>un mois</b> pour commencer l’instruction du dossier.") }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'termine' do
|
||||||
|
let(:dossier) { create(:dossier, :accepte) }
|
||||||
|
|
||||||
|
subject { described_class.notify_near_deletion_to_administration([dossier], dossier.user.email) }
|
||||||
|
|
||||||
|
it { expect(subject.subject).to eq("Un dossier dont le traitement est terminé va bientôt être supprimé") }
|
||||||
|
it { expect(subject.body).to include("n° #{dossier.id} ") }
|
||||||
|
it { expect(subject.body).to include(dossier.procedure.libelle) }
|
||||||
|
it { expect(subject.body).to include("PDF") }
|
||||||
|
it { expect(subject.body).to include("Vous avez <b>un mois</b> pour archiver le dossier.") }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.notify_near_deletion_to_user' do
|
describe '.notify_near_deletion_to_user' do
|
||||||
|
@ -141,6 +166,19 @@ RSpec.describe DossierMailer, type: :mailer do
|
||||||
it { expect(subject.body).to include("PDF") }
|
it { expect(subject.body).to include("PDF") }
|
||||||
it { expect(subject.body).to include("Vous pouvez retrouver votre dossier pendant encore <b>un mois</b>. Vous n’avez rien à faire.") }
|
it { expect(subject.body).to include("Vous pouvez retrouver votre dossier pendant encore <b>un mois</b>. Vous n’avez rien à faire.") }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'termine' do
|
||||||
|
let(:dossier) { create(:dossier, :accepte) }
|
||||||
|
|
||||||
|
subject { described_class.notify_near_deletion_to_user([dossier], dossier.user.email) }
|
||||||
|
|
||||||
|
it { expect(subject.to).to eq([dossier.user.email]) }
|
||||||
|
it { expect(subject.subject).to eq("Un dossier dont le traitement est terminé va bientôt être supprimé") }
|
||||||
|
it { expect(subject.body).to include("n° #{dossier.id} ") }
|
||||||
|
it { expect(subject.body).to include(dossier.procedure.libelle) }
|
||||||
|
it { expect(subject.body).to include("PDF") }
|
||||||
|
it { expect(subject.body).to include("Vous pouvez retrouver votre dossier pendant encore <b>un mois</b>. Vous n’avez rien à faire.") }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.notify_groupe_instructeur_changed_to_instructeur' do
|
describe '.notify_groupe_instructeur_changed_to_instructeur' do
|
||||||
|
|
|
@ -28,6 +28,14 @@ class DossierMailerPreview < ActionMailer::Preview
|
||||||
DossierMailer.notify_near_deletion_to_administration([dossier_en_construction, dossier_en_construction], administration_email)
|
DossierMailer.notify_near_deletion_to_administration([dossier_en_construction, dossier_en_construction], administration_email)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def notify_termine_near_deletion_to_user
|
||||||
|
DossierMailer.notify_near_deletion_to_user([dossier_accepte], usager_email)
|
||||||
|
end
|
||||||
|
|
||||||
|
def notify_termine_near_deletion_to_administration
|
||||||
|
DossierMailer.notify_near_deletion_to_administration([dossier_accepte, dossier_accepte], administration_email)
|
||||||
|
end
|
||||||
|
|
||||||
def notify_brouillon_deletion
|
def notify_brouillon_deletion
|
||||||
DossierMailer.notify_brouillon_deletion([dossier.hash_for_deletion_mail], usager_email)
|
DossierMailer.notify_brouillon_deletion([dossier.hash_for_deletion_mail], usager_email)
|
||||||
end
|
end
|
||||||
|
@ -83,6 +91,10 @@ class DossierMailerPreview < ActionMailer::Preview
|
||||||
Dossier.new(id: 47882, state: :en_construction, procedure: procedure, user: User.new(email: "usager@example.com"))
|
Dossier.new(id: 47882, state: :en_construction, procedure: procedure, user: User.new(email: "usager@example.com"))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dossier_accepte
|
||||||
|
Dossier.new(id: 47882, state: :accepte, procedure: procedure, user: User.new(email: "usager@example.com"))
|
||||||
|
end
|
||||||
|
|
||||||
def procedure
|
def procedure
|
||||||
Procedure.new(id: 1234, libelle: 'Dotation d’Équipement des Territoires Ruraux - Exercice 2019', service: service, logo: Rack::Test::UploadedFile.new("./spec/fixtures/files/logo_test_procedure.png", 'image/png'), auto_archive_on: Time.zone.today + Dossier::REMAINING_DAYS_BEFORE_CLOSING.days)
|
Procedure.new(id: 1234, libelle: 'Dotation d’Équipement des Territoires Ruraux - Exercice 2019', service: service, logo: Rack::Test::UploadedFile.new("./spec/fixtures/files/logo_test_procedure.png", 'image/png'), auto_archive_on: Time.zone.today + Dossier::REMAINING_DAYS_BEFORE_CLOSING.days)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue