Merge pull request #1785 from betagouv/frederic/fix_1563/mail_admins_for_existing_procedures

#1563 – mail admins for existing procedures
This commit is contained in:
Frederic Merizen 2018-04-06 10:29:54 +02:00 committed by GitHub
commit 498b01541d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 94 additions and 0 deletions

View file

@ -0,0 +1,83 @@
module Mailers
class AttestationClosedMailDiscrepancyMailer < ApplicationMailer
include Rails.application.routes.url_helpers
def missing_attestation_tag_email(admin, procedures)
procedures = procedures.sort_by(&:id)
mail(to: admin.email, subject: subject(procedures), body: body(procedures))
end
private
def subject(procedures)
if procedures.count == 1
procedure_ids = "votre procédure nº #{procedures.first.id}"
else
procedure_ids = 'vos procédures nº ' + procedures.map{ |p| p.id }.join(', ')
end
"demarches-simplifiees.fr mise à jour nécessaire de laccusé dacceptation de #{procedure_ids}"
end
def body(procedures)
<<~HEREDOC
Bonjour,
Pour des raisons de confidentialité, le mode de transmission des attestations aux usagers évolue.
À compter du 30 avril, les mails daccusé dacceptation émis par demarches-simplifiees.fr ne
comporteront plus dattestation en pièce jointe comme cest le cas aujourdhui.
À la place, le mail contiendra un lien permettant à lusager de télécharger son
attestation dirctement dans son espace sécurisé sur demarches-simplifiees.fr.
Ce lien de téléchargement est généré par la balise --lien attestation--.
#{detail_procedures(procedures)}
Pour toute question vous pouvez nous joindre par téléphone au 01 76 42 02 87
ou sur ladresse email contact@demarches-simplifiees.fr.
-- \nLéquipe demarches-simplifiees.fr
HEREDOC
end
def detail_procedures(procedures)
if procedures.count == 1
p = procedures.first
<<~HEREDOC.chomp
Vous êtes administrateur de la procédure suivante :
#{p.libelle} (nº #{p.id})
Cette procédure donne lieu à lémission dune attestation, et son accusé
dacceptation a é personnalisé. Pour respecter la rédaction de votre accusé
dacceptation, nous ne prendrons pas linitiative dy ajouter la balise --lien attestation--.
Afin que vos usagers puissent continuer à accéder facilement à leurs attestations
dans leurs démarches futures, nous vous invitons à ajouter à votre convenance la
balise --lien attestation-- dans votre accusé dacceptation. Vous pouvez le faire en
cliquant sur le lien suivant :
#{edit_admin_procedure_mail_template_url(p, Mails::ClosedMail::SLUG)}
HEREDOC
else
liste_procedures = procedures.map { |p| "- #{p.libelle} (nº #{p.id}) #{edit_admin_procedure_mail_template_url(p, Mails::ClosedMail::SLUG)}" }.join("\n")
<<~HEREDOC.chomp
Vous êtes administrateur sur plusieurs procédures qui donnent lieu à lémission
dune attestation, et dont laccusé dacceptation a é personnalisé. Pour respecter
la rédaction de vos accusés dacceptation, nous ne prendrons pas linitiative dy
ajouter de balise --lien attestation--.
Afin que vos usagers puissent continuer à accéder facilement à leurs attestations
dans leurs démarches futures, nous vous invitons à ajouter à votre convenance la
balise --lien attestation-- dans vos accusés dacceptation.
Vous trouverez ci-après la liste des démarches concernées, ainsi que les liens vous
permettant déditer les accusés dacceptation correspondants.
#{liste_procedures}
HEREDOC
end
end
end
end

View file

@ -0,0 +1,11 @@
namespace :'2018_04_03_attestation_closed_mail_discrepancy' do
task mail_adminstrators: :environment do
Administrateur.includes(:procedures).find_each(batch_size: 10) do |admin|
procedures = admin.procedures.where(archived_at: nil).select { |p| p.closed_mail_template_attestation_inconsistency_state == :missing_tag }
if procedures.any?
Mailers::AttestationClosedMailDiscrepancyMailer.missing_attestation_tag_email(admin, procedures).deliver_later
print "#{admin.email}\n"
end
end
end
end