[Emails] Améliore le titre des emails transactionnels (#4111)

Usager : améliore le titre des emails transactionnels
This commit is contained in:
Pierre de La Morinerie 2019-07-17 16:44:56 +02:00 committed by GitHub
commit 7946aa5de2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 38 additions and 57 deletions

View file

@ -4,14 +4,14 @@ class DossierMailer < ApplicationMailer
def notify_new_draft(dossier) def notify_new_draft(dossier)
@dossier = dossier @dossier = dossier
subject = "Retrouvez votre brouillon pour la démarche \"#{dossier.procedure.libelle}\"" subject = "Retrouvez votre brouillon pour la démarche « #{dossier.procedure.libelle} »"
mail(to: dossier.user.email, subject: subject) mail(to: dossier.user.email, subject: subject)
end end
def notify_new_answer(dossier) def notify_new_answer(dossier)
@dossier = dossier @dossier = dossier
subject = "Nouveau message pour votre dossier nº #{dossier.id}" subject = "Nouveau message pour votre dossier nº #{dossier.id} (#{dossier.procedure.libelle})"
mail(to: dossier.user.email, subject: subject) do |format| mail(to: dossier.user.email, subject: subject) do |format|
format.html { render layout: 'mailers/notification' } format.html { render layout: 'mailers/notification' }
@ -20,21 +20,21 @@ class DossierMailer < ApplicationMailer
def notify_deletion_to_user(deleted_dossier, to_email) def notify_deletion_to_user(deleted_dossier, to_email)
@deleted_dossier = deleted_dossier @deleted_dossier = deleted_dossier
subject = "Votre dossier n° #{@deleted_dossier.dossier_id} a bien été supprimé" subject = "Votre dossier nº #{@deleted_dossier.dossier_id} a bien été supprimé"
mail(to: to_email, subject: subject) mail(to: to_email, subject: subject)
end end
def notify_deletion_to_administration(deleted_dossier, to_email) def notify_deletion_to_administration(deleted_dossier, to_email)
@deleted_dossier = deleted_dossier @deleted_dossier = deleted_dossier
subject = "Le dossier n° #{@deleted_dossier.dossier_id} a été supprimé à la demande de l'usager" subject = "Le dossier nº #{@deleted_dossier.dossier_id} a été supprimé à la demande de l'usager"
mail(to: to_email, subject: subject) mail(to: to_email, subject: subject)
end end
def notify_unhide_to_user(dossier) def notify_unhide_to_user(dossier)
@dossier = dossier @dossier = dossier
subject = "Votre dossier n° #{@dossier.id} n'a pas pu être supprimé" subject = "Votre dossier nº #{@dossier.id} n'a pas pu être supprimé"
mail(to: dossier.user.email, subject: subject) mail(to: dossier.user.email, subject: subject)
end end
@ -42,23 +42,14 @@ class DossierMailer < ApplicationMailer
def notify_undelete_to_user(dossier) def notify_undelete_to_user(dossier)
@dossier = dossier @dossier = dossier
@dossier_kind = dossier.brouillon? ? 'brouillon' : 'dossier' @dossier_kind = dossier.brouillon? ? 'brouillon' : 'dossier'
@subject = "Votre #{@dossier_kind} #{@dossier.id} est à nouveau accessible" @subject = "Votre #{@dossier_kind} #{@dossier.id} est à nouveau accessible"
mail(to: dossier.user.email, subject: @subject)
end
def notify_unmigrated_to_user(dossier, new_procedure)
@dossier = dossier
@dossier_kind = dossier.brouillon? ? 'brouillon' : 'dossier'
@subject = "Changement de procédure pour votre #{@dossier_kind} #{@dossier.id}"
@new_procedure = new_procedure
mail(to: dossier.user.email, subject: @subject) mail(to: dossier.user.email, subject: @subject)
end end
def notify_revert_to_instruction(dossier) def notify_revert_to_instruction(dossier)
@dossier = dossier @dossier = dossier
@subject = "Votre dossier n° #{@dossier.id} est en train d'être réexaminé" @subject = "Votre dossier nº #{@dossier.id} est en train d'être réexaminé"
mail(to: dossier.user.email, subject: @subject) mail(to: dossier.user.email, subject: @subject)
end end

View file

@ -6,7 +6,7 @@ module Mails
SLUG = "closed_mail" SLUG = "closed_mail"
DISPLAYED_NAME = "Accusé d'acceptation" DISPLAYED_NAME = "Accusé d'acceptation"
DEFAULT_SUBJECT = 'Votre dossier demarches-simplifiees.fr nº --numéro du dossier-- a été accepté' DEFAULT_SUBJECT = 'Votre dossier nº --numéro du dossier-- a été accepté (--libellé démarche--)'
DOSSIER_STATE = Dossier.states.fetch(:accepte) DOSSIER_STATE = Dossier.states.fetch(:accepte)
def self.default_template_name_for_procedure(procedure) def self.default_template_name_for_procedure(procedure)

View file

@ -7,7 +7,7 @@ module Mails
SLUG = "initiated_mail" SLUG = "initiated_mail"
DEFAULT_TEMPLATE_NAME = "notification_mailer/initiated_mail" DEFAULT_TEMPLATE_NAME = "notification_mailer/initiated_mail"
DISPLAYED_NAME = 'Accusé de réception' DISPLAYED_NAME = 'Accusé de réception'
DEFAULT_SUBJECT = 'Votre dossier demarches-simplifiees.fr  --numéro du dossier-- a bien été reçu' DEFAULT_SUBJECT = 'Votre dossier  --numéro du dossier-- a bien été reçu (--libellé démarche--)'
DOSSIER_STATE = Dossier.states.fetch(:en_construction) DOSSIER_STATE = Dossier.states.fetch(:en_construction)
end end
end end

View file

@ -7,7 +7,7 @@ module Mails
SLUG = "received_mail" SLUG = "received_mail"
DEFAULT_TEMPLATE_NAME = "notification_mailer/received_mail" DEFAULT_TEMPLATE_NAME = "notification_mailer/received_mail"
DISPLAYED_NAME = 'Accusé de passage en instruction' DISPLAYED_NAME = 'Accusé de passage en instruction'
DEFAULT_SUBJECT = 'Votre dossier demarches-simplifiees.fr  --numéro du dossier-- va être instruit' DEFAULT_SUBJECT = 'Votre dossier  --numéro du dossier-- va être instruit (--libellé démarche--)'
DOSSIER_STATE = Dossier.states.fetch(:en_instruction) DOSSIER_STATE = Dossier.states.fetch(:en_instruction)
end end
end end

View file

@ -7,7 +7,7 @@ module Mails
SLUG = "refused_mail" SLUG = "refused_mail"
DEFAULT_TEMPLATE_NAME = "notification_mailer/refused_mail" DEFAULT_TEMPLATE_NAME = "notification_mailer/refused_mail"
DISPLAYED_NAME = 'Accusé de rejet du dossier' DISPLAYED_NAME = 'Accusé de rejet du dossier'
DEFAULT_SUBJECT = 'Votre dossier demarches-simplifiees.fr  --numéro du dossier-- a été refusé' DEFAULT_SUBJECT = 'Votre dossier  --numéro du dossier-- a été refusé (--libellé démarche--)'
DOSSIER_STATE = Dossier.states.fetch(:refuse) DOSSIER_STATE = Dossier.states.fetch(:refuse)
end end
end end

View file

@ -7,7 +7,7 @@ module Mails
SLUG = "without_continuation" SLUG = "without_continuation"
DEFAULT_TEMPLATE_NAME = "notification_mailer/without_continuation_mail" DEFAULT_TEMPLATE_NAME = "notification_mailer/without_continuation_mail"
DISPLAYED_NAME = 'Accusé de classement sans suite' DISPLAYED_NAME = 'Accusé de classement sans suite'
DEFAULT_SUBJECT = 'Votre dossier demarches-simplifiees.fr  --numéro du dossier-- a été classé sans suite' DEFAULT_SUBJECT = 'Votre dossier  --numéro du dossier-- a été classé sans suite (--libellé démarche--)'
DOSSIER_STATE = Dossier.states.fetch(:sans_suite) DOSSIER_STATE = Dossier.states.fetch(:sans_suite)
end end
end end

View file

@ -1,22 +0,0 @@
- content_for(:title, @subject)
%h1 Bonjour,
%p
Vous avez commencé un #{@dossier_kind},
= link_to("n° #{@dossier.id}", dossier_url(@dossier))
sur la procédure «&nbsp;#{@dossier.procedure.libelle}&nbsp;».
En raison dun changement dans la procédure, votre #{@dossier_kind} a été inaccessible pendant quelques jours.
Laccès est à présent à nouveau possible.
%p
Malheureusement, en raison des changements dans le procédure, vous ne pourrez pas mener à terme le #{@dossier_kind} commencé.
Si votre démarche est toujours dactualité, nous vous invitons à la recommencer sur
= link_to("la nouvelle procédure", commencer_url(@new_procedure.path))
\.
%p
Nous avons pris des mesures pour nous assurer quun tel désagrément ne se reproduise pas,
et vous présentons nos excuses pour la gène occasionnée.
= render partial: "layouts/mailers/signature"

View file

@ -1,5 +1,4 @@
%p %p
Bonne journée, Bonne journée,
%br
%p Léquipe demarches-simplifiees.fr
L'équipe demarches-simplifiees.fr

View file

@ -1,4 +1,4 @@
%p %p
Bonne journée, Bonne journée,
%br
%p --nom du service-- \ --nom du service--

View file

@ -9,7 +9,7 @@ FactoryBot.define do
end end
trait :with_file do trait :with_file do
file { Rack::Test::UploadedFile.new("./spec/fixtures/files/logo_test_procedure.png", 'application/pdf') } file { Rack::Test::UploadedFile.new("./spec/fixtures/files/logo_test_procedure.png", 'image/png') }
end end
end end
end end

View file

@ -42,7 +42,7 @@ FactoryBot.define do
end end
trait :with_logo do trait :with_logo do
logo { Rack::Test::UploadedFile.new("./spec/fixtures/files/logo_test_procedure.png", 'application/pdf') } logo { Rack::Test::UploadedFile.new("./spec/fixtures/files/logo_test_procedure.png", 'image/png') }
end end
trait :with_path do trait :with_path do

View file

@ -29,7 +29,7 @@ RSpec.describe DossierMailer, type: :mailer do
subject { described_class.notify_deletion_to_user(deleted_dossier, to_email) } subject { described_class.notify_deletion_to_user(deleted_dossier, to_email) }
it { expect(subject.subject).to eq("Votre dossier n° #{deleted_dossier.dossier_id} a bien été supprimé") } it { expect(subject.subject).to eq("Votre dossier nº #{deleted_dossier.dossier_id} a bien été supprimé") }
it { expect(subject.body).to include("Votre dossier") } it { expect(subject.body).to include("Votre dossier") }
it { expect(subject.body).to include(deleted_dossier.dossier_id) } it { expect(subject.body).to include(deleted_dossier.dossier_id) }
it { expect(subject.body).to include("a bien été supprimé") } it { expect(subject.body).to include("a bien été supprimé") }
@ -41,7 +41,7 @@ RSpec.describe DossierMailer, type: :mailer do
subject { described_class.notify_deletion_to_administration(deleted_dossier, to_email) } subject { described_class.notify_deletion_to_administration(deleted_dossier, to_email) }
it { expect(subject.subject).to eq("Le dossier n° #{deleted_dossier.dossier_id} a été supprimé à la demande de l'usager") } it { expect(subject.subject).to eq("Le dossier nº #{deleted_dossier.dossier_id} a été supprimé à la demande de l'usager") }
it { expect(subject.body).to include("À la demande de l'usager") } it { expect(subject.body).to include("À la demande de l'usager") }
it { expect(subject.body).to include(deleted_dossier.dossier_id) } it { expect(subject.body).to include(deleted_dossier.dossier_id) }
it { expect(subject.body).to include(deleted_dossier.procedure.libelle) } it { expect(subject.body).to include(deleted_dossier.procedure.libelle) }
@ -52,7 +52,7 @@ RSpec.describe DossierMailer, type: :mailer do
subject { described_class.notify_unhide_to_user(dossier) } subject { described_class.notify_unhide_to_user(dossier) }
it { expect(subject.subject).to eq("Votre dossier n° #{dossier.id} n'a pas pu être supprimé") } it { expect(subject.subject).to eq("Votre dossier nº #{dossier.id} n'a pas pu être supprimé") }
it { expect(subject.body).to include(dossier.id) } it { expect(subject.body).to include(dossier.id) }
it { expect(subject.body).to include("n'a pas pu être supprimé") } it { expect(subject.body).to include("n'a pas pu être supprimé") }
it { expect(subject.body).to include(dossier.procedure.libelle) } it { expect(subject.body).to include(dossier.procedure.libelle) }

View file

@ -1,7 +1,7 @@
# Preview all emails at http://localhost:3000/rails/mailers/dossier_mailer # Preview all emails at http://localhost:3000/rails/mailers/dossier_mailer
class DossierMailerPreview < ActionMailer::Preview class DossierMailerPreview < ActionMailer::Preview
def notify_new_draft def notify_new_draft
DossierMailer.notify_new_draft(dossier) DossierMailer.notify_new_draft(draft)
end end
def notify_new_answer def notify_new_answer
@ -26,11 +26,24 @@ class DossierMailerPreview < ActionMailer::Preview
DeletedDossier.new(dossier_id: 1, procedure: procedure) DeletedDossier.new(dossier_id: 1, procedure: procedure)
end end
def draft
Dossier.new(id: 47882, procedure: procedure, user: User.new(email: "usager@example.com"))
end
def dossier def dossier
Dossier.new(id: 1, procedure: procedure, user: User.new(email: "usager@example.com")) Dossier.new(id: 47882, state: :en_instruction, procedure: procedure, user: User.new(email: "usager@example.com"))
end end
def procedure def procedure
Procedure.new(libelle: 'Démarche pour des marches') Procedure.new(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'))
end
def service
Service.new(
nom: 'Direction du Territoire des Vosges',
email: 'prms@ddt.vosges.gouv.fr',
telephone: '01 34 22 33 85',
horaires: 'Du lundi au vendredi, de 9 h à 18 h'
)
end end
end end

View file

@ -449,7 +449,7 @@ describe Dossier do
end.to change(ActionMailer::Base.deliveries, :size).from(0).to(1) end.to change(ActionMailer::Base.deliveries, :size).from(0).to(1)
mail = ActionMailer::Base.deliveries.last mail = ActionMailer::Base.deliveries.last
expect(mail.subject).to eq("Retrouvez votre brouillon pour la démarche \"#{procedure.libelle}\"") expect(mail.subject).to eq("Retrouvez votre brouillon pour la démarche « #{procedure.libelle} »")
expect(mail.html_part.body).to include(dossier_url(dossier)) expect(mail.html_part.body).to include(dossier_url(dossier))
end end