Notifie tous les instructeurs lors dépôt dossier
- envoie un mail à tous les instructeurs d'une procédure après le dépôt d'un nouveau dossier
This commit is contained in:
parent
f618ab5ba2
commit
ae18ff6627
6 changed files with 41 additions and 0 deletions
|
@ -153,6 +153,9 @@ module Users
|
||||||
if passage_en_construction? && errors.blank?
|
if passage_en_construction? && errors.blank?
|
||||||
@dossier.en_construction!
|
@dossier.en_construction!
|
||||||
NotificationMailer.send_initiated_notification(@dossier).deliver_later
|
NotificationMailer.send_initiated_notification(@dossier).deliver_later
|
||||||
|
@dossier.procedure.instructeurs.each do |instructeur|
|
||||||
|
DossierMailer.notify_new_dossier_depose_to_instructeur(@dossier, instructeur.email).deliver_later
|
||||||
|
end
|
||||||
return redirect_to(merci_dossier_path(@dossier))
|
return redirect_to(merci_dossier_path(@dossier))
|
||||||
elsif errors.present?
|
elsif errors.present?
|
||||||
flash.now.alert = errors
|
flash.now.alert = errors
|
||||||
|
|
|
@ -35,6 +35,12 @@ class DossierMailer < ApplicationMailer
|
||||||
mail(from: NO_REPLY_EMAIL, to: instructeur_email, subject: @subject)
|
mail(from: NO_REPLY_EMAIL, to: instructeur_email, subject: @subject)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def notify_new_dossier_depose_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)
|
def notify_revert_to_instruction(dossier)
|
||||||
@dossier = dossier
|
@dossier = dossier
|
||||||
@service = dossier.procedure.service
|
@service = dossier.procedure.service
|
||||||
|
|
|
@ -26,6 +26,7 @@ class Procedure < ApplicationRecord
|
||||||
has_many :administrateurs_procedures
|
has_many :administrateurs_procedures
|
||||||
has_many :administrateurs, through: :administrateurs_procedures, after_remove: -> (procedure, _admin) { procedure.validate! }
|
has_many :administrateurs, through: :administrateurs_procedures, after_remove: -> (procedure, _admin) { procedure.validate! }
|
||||||
has_many :groupe_instructeurs, dependent: :destroy
|
has_many :groupe_instructeurs, dependent: :destroy
|
||||||
|
has_many :instructeurs, through: :groupe_instructeurs
|
||||||
|
|
||||||
has_many :dossiers, through: :groupe_instructeurs, dependent: :restrict_with_exception
|
has_many :dossiers, through: :groupe_instructeurs, dependent: :restrict_with_exception
|
||||||
|
|
||||||
|
|
|
@ -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("Consulter le dossier n°#{@dossier.id}", 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_dossier_depose_to_instructeur:
|
||||||
|
subject: Nouveau dossier déposé pour la démarche %{libelle_demarche}
|
||||||
|
body: Un nouveau dossier a été déposé (n° %{dossier_id}) pour la démarche %{libelle_demarche}
|
|
@ -421,6 +421,22 @@ describe Users::DossiersController, type: :controller do
|
||||||
expect(dossier.reload.state).to eq(Dossier.states.fetch(:en_construction))
|
expect(dossier.reload.state).to eq(Dossier.states.fetch(:en_construction))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with instructeurs for the procedure' do
|
||||||
|
let!(:instructeur) { create(:instructeur, groupe_instructeurs: [dossier.procedure.defaut_groupe_instructeur]) }
|
||||||
|
let!(:instructeur2) { create(:instructeur, groupe_instructeurs: [dossier.procedure.defaut_groupe_instructeur]) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
allow(DossierMailer).to receive(:notify_new_dossier_depose_to_instructeur).and_return(double(deliver_later: nil))
|
||||||
|
end
|
||||||
|
|
||||||
|
it "sends notification mail to instructeurs" do
|
||||||
|
subject
|
||||||
|
|
||||||
|
expect(DossierMailer).to have_received(:notify_new_dossier_depose_to_instructeur).with(dossier, instructeur.email)
|
||||||
|
expect(DossierMailer).to have_received(:notify_new_dossier_depose_to_instructeur).with(dossier, instructeur2.email)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "on an closed procedure" do
|
context "on an closed procedure" do
|
||||||
before { dossier.procedure.close! }
|
before { dossier.procedure.close! }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue