Add notify_en_construction_near_deletion mailer

This commit is contained in:
Paul Chavard 2020-02-18 17:18:14 +01:00
parent 8c77d91e9f
commit 318baf316e
4 changed files with 84 additions and 0 deletions

View file

@ -97,4 +97,12 @@ class DossierMailer < ApplicationMailer
mail(to: user.email, subject: @subject)
end
def notify_en_construction_near_deletion(user, dossiers, for_user)
@subject = default_i18n_subject(count: dossiers.count)
@dossiers = dossiers
@for_user = for_user
mail(to: user.email, subject: @subject)
end
end

View file

@ -0,0 +1,27 @@
- content_for(:title, "#{@subject}")
%p
Bonjour,
%p
- if !@for_user
Afin de limiter la conservation de vos données personnelles,
= t('.automatic_dossier_deletion', count: @dossiers.count)
%ul
- @dossiers.each do |d|
- if !@for_user
%li
#{link_to("n° #{d.id} (#{d.procedure.libelle})", dossier_url(d))}. Retrouvez le dossier au format #{link_to("PDF", instructeur_dossier_url(d.procedure, d, format: :pdf))}
- else
%li
#{link_to("n° #{d.id} (#{d.procedure.libelle})", dossier_url(d))}. Retrouvez le dossier au format #{link_to("PDF", dossier_url(d, format: :pdf))}
%p
- if @for_user
= sanitize(t('.send_user_draft', count: @dossiers.count))
- else
= sanitize(t('.send_other_draft', count: @dossiers.count))
= render partial: "layouts/mailers/signature"

View file

@ -0,0 +1,15 @@
fr:
dossier_mailer:
notify_en_construction_near_deletion:
subject:
one: Un dossier en construction va bientôt être supprimé
other: Des dossiers en construction vont bientôt être supprimés
automatic_dossier_deletion:
one: "le dossier en construction suivant sera bientôt automatiquement supprimé :"
other: "les dossiers en construction suivant seront bientôt automatiquement supprimés :"
send_user_draft:
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."
send_other_draft:
one: "Vous avez <b>un mois</b> pour traiter le dossier."
other: "Vous avez <b>un mois</b> pour traiter les dossiers."

View file

@ -131,4 +131,38 @@ RSpec.describe DossierMailer, type: :mailer do
it { expect(subject.subject).to eq("Un dossier a été supprimé automatiquement") }
it { expect(subject.body).to include("#{dossier.id} (#{dossier.procedure.libelle})") }
end
describe '.notify_en_construction_near_deletion_to_administration' do
let(:dossier) { create(:dossier) }
before do
duree = dossier.procedure.duree_conservation_dossiers_dans_ds
@date_suppression = dossier.created_at + duree.months
end
subject { described_class.notify_en_construction_near_deletion(dossier.user, [dossier], true) }
it { expect(subject.subject).to eq("Un dossier en construction va bientôt être supprimé") }
it { expect(subject.body).to include("#{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
describe '.notify_en_construction_near_deletion_to_user' do
let(:dossier) { create(:dossier) }
before do
duree = dossier.procedure.duree_conservation_dossiers_dans_ds
@date_suppression = dossier.created_at + duree.months
end
subject { described_class.notify_en_construction_near_deletion(dossier.user, [dossier], false) }
it { expect(subject.subject).to eq("Un dossier en construction va bientôt être supprimé") }
it { expect(subject.body).to include("#{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 traiter le dossier.") }
end
end