Merge pull request #8581 from E-L-T/do-not-notify-instructeurs-when-adding-other-instructeurs
feat(groupe instructeurs): remove mailing when adding instructeurs
This commit is contained in:
commit
453732257d
7 changed files with 11 additions and 56 deletions
|
@ -123,10 +123,6 @@ module Administrateurs
|
|||
instructeurs.each { groupe_instructeur.add(_1) }
|
||||
|
||||
flash[:notice] = if procedure.routing_enabled?
|
||||
GroupeInstructeurMailer
|
||||
.add_instructeurs(groupe_instructeur, instructeurs, current_administrateur.email)
|
||||
.deliver_later
|
||||
|
||||
t('.assignment',
|
||||
count: instructeurs.size,
|
||||
emails: instructeurs.map(&:email).join(', '),
|
||||
|
|
|
@ -22,9 +22,6 @@ module Instructeurs
|
|||
else
|
||||
groupe_instructeur.add(instructeur)
|
||||
flash[:notice] = "L’instructeur « #{instructeur_email} » a été affecté au groupe."
|
||||
GroupeInstructeurMailer
|
||||
.add_instructeurs(groupe_instructeur, [instructeur], current_user.email)
|
||||
.deliver_later
|
||||
end
|
||||
|
||||
redirect_to instructeur_groupe_path(procedure, groupe_instructeur)
|
||||
|
|
|
@ -26,12 +26,6 @@ module Mutations
|
|||
result[:warnings] = [warning]
|
||||
end
|
||||
|
||||
if groupe_instructeur.procedure.routing_enabled? && instructeurs.present?
|
||||
GroupeInstructeurMailer
|
||||
.add_instructeurs(groupe_instructeur, instructeurs, current_administrateur.email)
|
||||
.deliver_later
|
||||
end
|
||||
|
||||
result
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,17 +1,6 @@
|
|||
class GroupeInstructeurMailer < ApplicationMailer
|
||||
layout 'mailers/layout'
|
||||
|
||||
def add_instructeurs(group, new_instructeurs, current_instructeur_email)
|
||||
@new_instructeur_emails = new_instructeurs.map(&:email)
|
||||
@group = group
|
||||
@current_instructeur_email = current_instructeur_email
|
||||
|
||||
subject = "Ajout d’un instructeur dans le groupe \"#{group.label}\""
|
||||
|
||||
emails = @group.instructeurs.map(&:email)
|
||||
mail(bcc: emails, subject: subject)
|
||||
end
|
||||
|
||||
def remove_instructeurs(group, removed_instructeurs, current_instructeur_email)
|
||||
@removed_instructeur_emails = removed_instructeurs.map(&:email)
|
||||
@group = group
|
||||
|
@ -22,15 +11,4 @@ class GroupeInstructeurMailer < ApplicationMailer
|
|||
emails = @group.instructeurs.map(&:email)
|
||||
mail(bcc: emails, subject: subject)
|
||||
end
|
||||
|
||||
def remove_instructeur(group, instructeur, current_instructeur_email)
|
||||
@email = instructeur.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
|
||||
end
|
||||
|
|
|
@ -263,12 +263,8 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
|||
emails: new_instructeur_emails.to_json
|
||||
}
|
||||
end
|
||||
before do
|
||||
gi_1_2.instructeurs << instructeur
|
||||
|
||||
allow(GroupeInstructeurMailer).to receive(:add_instructeurs)
|
||||
.and_return(double(deliver_later: true))
|
||||
end
|
||||
before { gi_1_2.instructeurs << instructeur }
|
||||
|
||||
context 'of a news instructeurs' do
|
||||
let(:new_instructeur_emails) { ['new_i1@mail.com', 'new_i2@mail.com'] }
|
||||
|
@ -277,13 +273,6 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
|||
it { expect(flash.notice).to be_present }
|
||||
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
|
||||
it { expect(procedure.routing_enabled?).to be_truthy }
|
||||
it "calls GroupeInstructeurMailer with the right groupe and instructeurs" do
|
||||
expect(GroupeInstructeurMailer).to have_received(:add_instructeurs).with(
|
||||
gi_1_2,
|
||||
satisfy { |instructeurs| instructeurs.all? { |i| new_instructeur_emails.include?(i.email) } },
|
||||
admin.email
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'of an instructeur already in the group' do
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
RSpec.describe GroupeInstructeurMailer, type: :mailer do
|
||||
describe '#add_instructeurs' do
|
||||
describe '#remove_instructeurs' do
|
||||
let(:groupe_instructeur) do
|
||||
gi = GroupeInstructeur.create(label: 'gi1', procedure: create(:procedure))
|
||||
gi.instructeurs << create(:instructeur, email: 'int1@g')
|
||||
gi.instructeurs << create(:instructeur, email: 'int2@g')
|
||||
gi.instructeurs << instructeurs_to_remove
|
||||
gi
|
||||
end
|
||||
let(:instructeur_1) { create(:instructeur) }
|
||||
let(:instructeur_2) { create(:instructeur) }
|
||||
let(:instructeur_1) { create(:instructeur, email: 'int3@g') }
|
||||
let(:instructeur_2) { create(:instructeur, email: 'int4@g') }
|
||||
|
||||
let(:instructeurs) { [instructeur_1, instructeur_2] }
|
||||
let(:instructeurs_to_remove) { [instructeur_1, instructeur_2] }
|
||||
let(:current_instructeur_email) { 'toto@email.com' }
|
||||
|
||||
subject { described_class.add_instructeurs(groupe_instructeur, instructeurs, current_instructeur_email) }
|
||||
subject { described_class.remove_instructeurs(groupe_instructeur, instructeurs_to_remove, current_instructeur_email) }
|
||||
|
||||
it { expect(subject.body).to include('Bonjour') }
|
||||
it { expect(subject.bcc).to match_array(['int1@g', 'int2@g']) }
|
||||
it { expect(subject.body).to include('Les instructeurs int3@g, int4@g ont été retirés du groupe') }
|
||||
it { expect(subject.bcc).to match_array(['int1@g', 'int2@g', 'int3@g', 'int4@g']) }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
class GroupeInstructeurMailerPreview < ActionMailer::Preview
|
||||
def add_instructeurs
|
||||
def remove_instructeurs
|
||||
procedure = Procedure.new(id: 1, libelle: 'une superbe procedure')
|
||||
groupe = GroupeInstructeur.new(id: 1, label: 'Val-De-Marne', procedure:)
|
||||
current_instructeur_email = 'admin@dgfip.com'
|
||||
instructeurs = Instructeur.limit(2)
|
||||
GroupeInstructeurMailer.add_instructeurs(groupe, instructeurs, current_instructeur_email)
|
||||
GroupeInstructeurMailer.remove_instructeurs(groupe, instructeurs, current_instructeur_email)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue