From f49a1baeec56249d9adf1d32510e1d8f22493707 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Thu, 1 Dec 2022 09:14:08 +0100 Subject: [PATCH] refactor(groupe_instructeur): remove mailer should take a list of instructeurs --- app/mailers/groupe_instructeur_mailer.rb | 11 +++++++++++ .../add_instructeurs.html.haml | 2 +- .../remove_instructeur.html.haml | 2 +- .../remove_instructeurs.html.haml | 11 +++++++++++ .../administrateurs/groupe_instructeurs/en.yml | 15 +++++++++++---- .../administrateurs/groupe_instructeurs/fr.yml | 15 +++++++++++---- 6 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 app/views/groupe_instructeur_mailer/remove_instructeurs.html.haml diff --git a/app/mailers/groupe_instructeur_mailer.rb b/app/mailers/groupe_instructeur_mailer.rb index e045169bf..e0d0712ef 100644 --- a/app/mailers/groupe_instructeur_mailer.rb +++ b/app/mailers/groupe_instructeur_mailer.rb @@ -12,6 +12,17 @@ class GroupeInstructeurMailer < ApplicationMailer mail(bcc: emails, subject: subject) end + def remove_instructeurs(group, removed_instructeurs, current_instructeur_email) + @removed_instructeur_emails = removed_instructeurs.map(&:email) + @group = group + @current_instructeur_email = current_instructeur_email + + subject = "Suppression d’un instructeur dans le groupe \"#{group.label}\"" + + emails = @group.instructeurs.map(&:email) + mail(bcc: emails, subject: subject) + end + def remove_instructeur(group, instructeur, current_instructeur_email) @email = instructeur.email @group = group diff --git a/app/views/groupe_instructeur_mailer/add_instructeurs.html.haml b/app/views/groupe_instructeur_mailer/add_instructeurs.html.haml index 31a5f3c10..ee899f212 100644 --- a/app/views/groupe_instructeur_mailer/add_instructeurs.html.haml +++ b/app/views/groupe_instructeur_mailer/add_instructeurs.html.haml @@ -2,7 +2,7 @@ Bonjour, %p - #{t('administrateurs.groupe_instructeurs.add_instructeur.assignment', count: @new_instructeur_emails.count, value: @new_instructeur_emails.join(', '), groupe: @group.label).chomp('.')} par « #{@current_instructeur_email} », en charge de la démarche « #{@group.procedure.libelle} ». + = t('administrateurs.groupe_instructeurs.add_instructeur.email_body', count: @new_instructeur_emails.size, emails: @new_instructeur_emails.join(', '), groupe: @group.label, email: @current_instructeur_email, procedure: @group.procedure.libelle) %p Cliquez sur le lien ci-dessous pour voir la liste des instructeurs de ce groupe : diff --git a/app/views/groupe_instructeur_mailer/remove_instructeur.html.haml b/app/views/groupe_instructeur_mailer/remove_instructeur.html.haml index 6a8e1cc94..9e7770919 100644 --- a/app/views/groupe_instructeur_mailer/remove_instructeur.html.haml +++ b/app/views/groupe_instructeur_mailer/remove_instructeur.html.haml @@ -2,7 +2,7 @@ Bonjour, %p - L’instructeur « #{@email} » a été retiré du groupe « #{@group.label} » par « #{@current_instructeur_email} », en charge de la démarche « #{@group.procedure.libelle} ». + = t('administrateurs.groupe_instructeurs.remove_instructeur.email_body', count: 1, emails: @email, groupe: @group.label, email: @current_instructeur_email, procedure: @group.procedure.libelle) %p Cliquez sur le lien ci-dessous pour voir la liste des instructeurs de ce groupe : diff --git a/app/views/groupe_instructeur_mailer/remove_instructeurs.html.haml b/app/views/groupe_instructeur_mailer/remove_instructeurs.html.haml new file mode 100644 index 000000000..d5a73e165 --- /dev/null +++ b/app/views/groupe_instructeur_mailer/remove_instructeurs.html.haml @@ -0,0 +1,11 @@ +%p + Bonjour, + +%p + = t('administrateurs.groupe_instructeurs.remove_instructeur.email_body', count: @removed_instructeur_emails.size, emails: @removed_instructeur_emails.join(', '), groupe: @group.label, email: @current_instructeur_email, procedure: @group.procedure.libelle) + +%p + Cliquez sur le lien ci-dessous pour voir la liste des instructeurs de ce groupe : + = link_to(@group.label, admin_procedure_groupe_instructeur_url(@group.procedure, @group)) + += render partial: "layouts/mailers/signature" diff --git a/config/locales/views/administrateurs/groupe_instructeurs/en.yml b/config/locales/views/administrateurs/groupe_instructeurs/en.yml index 3f7d89d42..c9c85e230 100644 --- a/config/locales/views/administrateurs/groupe_instructeurs/en.yml +++ b/config/locales/views/administrateurs/groupe_instructeurs/en.yml @@ -11,11 +11,18 @@ en: instructors_group: Group of instructors add_instructeur: wrong_address: - one: "%{value} is not a valid email address" - other: "%{value} are not valid email addresses" + one: "%{emails} is not a valid email address" + other: "%{emails} are not valid email addresses" assignment: - one: "The instructor %{value} was assigned to the group « %{groupe} »." - other: "The instructors %{value} were assigned to the group « %{groupe} »." + one: "The instructor %{emails} was assigned to the group « %{groupe} »." + other: "The instructors %{emails} were assigned to the group « %{groupe} »." + email_body: + one: "The instructor %{emails} was assigned to the group « %{groupe} » by « %{email} », in charge of procedure « %{procedure} »." + other: "The instructors %{emails} were assigned to the group « %{groupe} » by « %{email} », in charge of procedure « %{procedure} »." + remove_instructeur: + email_body: + one: "The instructor %{emails} was removed from the group « %{groupe} » by « %{email} », in charge of procedure « %{procedure} »." + other: "The instructors %{emails} were removed from the group « %{groupe} » by « %{email} », in charge of procedure « %{procedure} »." reaffecter_dossiers: existing_groupe: one: "%{count} group exist" diff --git a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml index f92ac1567..4f38d70dc 100644 --- a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml +++ b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml @@ -17,11 +17,18 @@ fr: other: "%{count} groupes existent" add_instructeur: wrong_address: - one: "%{value} n’est pas une adresse email valide" - other: "%{value} ne sont pas des adresses emails valides" + one: "%{emails} n’est pas une adresse email valide" + other: "%{emails} ne sont pas des adresses emails valides" assignment: - one: "L’instructeur %{value} a été affecté au groupe « %{groupe} »." - other: "Les instructeurs %{value} ont été affectés au groupe « %{groupe} »." + one: "L’instructeur %{emails} a été affecté au groupe « %{groupe} »." + other: "Les instructeurs %{emails} ont été affectés au groupe « %{groupe} »." + email_body: + one: "L’instructeur %{emails} a été affecté au groupe « %{groupe} » par « %{email} », en charge de la démarche « %{procedure} »." + other: "Les instructeurs %{emails} ont été affectés au groupe « %{groupe} » par « %{email} », en charge de la démarche « %{procedure} »." + remove_instructeur: + email_body: + one: "L’instructeur %{emails} a été retiré du groupe « %{groupe} » par « %{email} », en charge de la démarche « %{procedure} »." + other: "Les instructeurs %{emails} ont été retirés du groupe « %{groupe} » par « %{email} », en charge de la démarche « %{procedure} »." reaffecter_dossiers: existing_groupe: one: "%{count} groupe existe"