envoie une notification à chaque follower_instructeur après un commentaire déposé
This commit is contained in:
parent
6d5709dbf5
commit
415d5c765e
5 changed files with 30 additions and 1 deletions
|
@ -197,6 +197,9 @@ module Users
|
|||
@commentaire = CommentaireService.build(current_user, dossier, commentaire_params)
|
||||
|
||||
if @commentaire.save
|
||||
dossier.followers_instructeurs.each do |instructeur|
|
||||
DossierMailer.notify_new_commentaire_to_instructeur(dossier, instructeur.email).deliver_later
|
||||
end
|
||||
flash.notice = "Votre message a bien été envoyé à l’instructeur en charge de votre dossier."
|
||||
redirect_to messagerie_dossier_path(dossier)
|
||||
else
|
||||
|
|
|
@ -29,6 +29,12 @@ class DossierMailer < ApplicationMailer
|
|||
end
|
||||
end
|
||||
|
||||
def notify_new_commentaire_to_instructeur(dossier, instructeur_email)
|
||||
@dossier = dossier
|
||||
@subject = default_i18n_subject(dossier_id: dossier.id, libelle_demarche: dossier.procedure.libelle)
|
||||
mail(from: NO_REPLY_EMAIL, to: instructeur_email, subject: @subject)
|
||||
end
|
||||
|
||||
def notify_revert_to_instruction(dossier)
|
||||
@dossier = dossier
|
||||
@service = dossier.procedure.service
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
- content_for(:title, "#{@subject}")
|
||||
|
||||
%p
|
||||
Bonjour,
|
||||
|
||||
%p
|
||||
= t('.body', dossier_id: @dossier.id, libelle_demarche: @dossier.procedure.libelle)
|
||||
%p= link_to("Messagerie du dossier n°#{@dossier.id}", messagerie_instructeur_dossier_url(procedure_id: @dossier.procedure.id, dossier_id: @dossier.id))
|
||||
|
||||
= render partial: "layouts/mailers/signature"
|
|
@ -0,0 +1,5 @@
|
|||
fr:
|
||||
dossier_mailer:
|
||||
notify_new_commentaire_to_instructeur:
|
||||
subject: Nouveau commentaire déposé sur le dossier n°%{dossier_id}
|
||||
body: Un nouveau commentaire a été déposé par l'usager sur le dossier n° %{dossier_id} de la démarche %{libelle_demarche}
|
|
@ -783,7 +783,9 @@ describe Users::DossiersController, type: :controller do
|
|||
end
|
||||
|
||||
describe "#create_commentaire" do
|
||||
let(:dossier) { create(:dossier, :en_construction, user: user) }
|
||||
let(:instructeur) { create(:instructeur) }
|
||||
let(:procedure) { create(:procedure, :published, instructeurs: [instructeur]) }
|
||||
let(:dossier) { create(:dossier, :en_construction, procedure: procedure, user: user) }
|
||||
let(:saved_commentaire) { dossier.commentaires.first }
|
||||
let(:body) { "avant\napres" }
|
||||
let(:file) { Rack::Test::UploadedFile.new("./spec/fixtures/files/piece_justificative_0.pdf", 'application/pdf') }
|
||||
|
@ -802,12 +804,15 @@ describe Users::DossiersController, type: :controller do
|
|||
before do
|
||||
sign_in(user)
|
||||
allow(ClamavService).to receive(:safe_file?).and_return(scan_result)
|
||||
allow(DossierMailer).to receive(:notify_new_commentaire_to_instructeur).with(dossier, instructeur.email).and_return(double(deliver_later: nil))
|
||||
instructeur.follow(dossier)
|
||||
end
|
||||
|
||||
it "creates a commentaire" do
|
||||
expect { subject }.to change(Commentaire, :count).by(1)
|
||||
|
||||
expect(response).to redirect_to(messagerie_dossier_path(dossier))
|
||||
expect(DossierMailer).to have_received(:notify_new_commentaire_to_instructeur).with(dossier, instructeur.email)
|
||||
expect(flash.notice).to be_present
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue