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) }
|
instructeurs.each { groupe_instructeur.add(_1) }
|
||||||
|
|
||||||
flash[:notice] = if procedure.routing_enabled?
|
flash[:notice] = if procedure.routing_enabled?
|
||||||
GroupeInstructeurMailer
|
|
||||||
.add_instructeurs(groupe_instructeur, instructeurs, current_administrateur.email)
|
|
||||||
.deliver_later
|
|
||||||
|
|
||||||
t('.assignment',
|
t('.assignment',
|
||||||
count: instructeurs.size,
|
count: instructeurs.size,
|
||||||
emails: instructeurs.map(&:email).join(', '),
|
emails: instructeurs.map(&:email).join(', '),
|
||||||
|
|
|
@ -22,9 +22,6 @@ module Instructeurs
|
||||||
else
|
else
|
||||||
groupe_instructeur.add(instructeur)
|
groupe_instructeur.add(instructeur)
|
||||||
flash[:notice] = "L’instructeur « #{instructeur_email} » a été affecté au groupe."
|
flash[:notice] = "L’instructeur « #{instructeur_email} » a été affecté au groupe."
|
||||||
GroupeInstructeurMailer
|
|
||||||
.add_instructeurs(groupe_instructeur, [instructeur], current_user.email)
|
|
||||||
.deliver_later
|
|
||||||
end
|
end
|
||||||
|
|
||||||
redirect_to instructeur_groupe_path(procedure, groupe_instructeur)
|
redirect_to instructeur_groupe_path(procedure, groupe_instructeur)
|
||||||
|
|
|
@ -26,12 +26,6 @@ module Mutations
|
||||||
result[:warnings] = [warning]
|
result[:warnings] = [warning]
|
||||||
end
|
end
|
||||||
|
|
||||||
if groupe_instructeur.procedure.routing_enabled? && instructeurs.present?
|
|
||||||
GroupeInstructeurMailer
|
|
||||||
.add_instructeurs(groupe_instructeur, instructeurs, current_administrateur.email)
|
|
||||||
.deliver_later
|
|
||||||
end
|
|
||||||
|
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,17 +1,6 @@
|
||||||
class GroupeInstructeurMailer < ApplicationMailer
|
class GroupeInstructeurMailer < ApplicationMailer
|
||||||
layout 'mailers/layout'
|
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)
|
def remove_instructeurs(group, removed_instructeurs, current_instructeur_email)
|
||||||
@removed_instructeur_emails = removed_instructeurs.map(&:email)
|
@removed_instructeur_emails = removed_instructeurs.map(&:email)
|
||||||
@group = group
|
@group = group
|
||||||
|
@ -22,15 +11,4 @@ class GroupeInstructeurMailer < ApplicationMailer
|
||||||
emails = @group.instructeurs.map(&:email)
|
emails = @group.instructeurs.map(&:email)
|
||||||
mail(bcc: emails, subject: subject)
|
mail(bcc: emails, subject: subject)
|
||||||
end
|
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
|
end
|
||||||
|
|
|
@ -263,12 +263,8 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
emails: new_instructeur_emails.to_json
|
emails: new_instructeur_emails.to_json
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
before do
|
|
||||||
gi_1_2.instructeurs << instructeur
|
|
||||||
|
|
||||||
allow(GroupeInstructeurMailer).to receive(:add_instructeurs)
|
before { gi_1_2.instructeurs << instructeur }
|
||||||
.and_return(double(deliver_later: true))
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'of a news instructeurs' do
|
context 'of a news instructeurs' do
|
||||||
let(:new_instructeur_emails) { ['new_i1@mail.com', 'new_i2@mail.com'] }
|
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(flash.notice).to be_present }
|
||||||
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
|
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
|
||||||
it { expect(procedure.routing_enabled?).to be_truthy }
|
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
|
end
|
||||||
|
|
||||||
context 'of an instructeur already in the group' do
|
context 'of an instructeur already in the group' do
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
RSpec.describe GroupeInstructeurMailer, type: :mailer do
|
RSpec.describe GroupeInstructeurMailer, type: :mailer do
|
||||||
describe '#add_instructeurs' do
|
describe '#remove_instructeurs' do
|
||||||
let(:groupe_instructeur) do
|
let(:groupe_instructeur) do
|
||||||
gi = GroupeInstructeur.create(label: 'gi1', procedure: create(:procedure))
|
gi = GroupeInstructeur.create(label: 'gi1', procedure: create(:procedure))
|
||||||
gi.instructeurs << create(:instructeur, email: 'int1@g')
|
gi.instructeurs << create(:instructeur, email: 'int1@g')
|
||||||
gi.instructeurs << create(:instructeur, email: 'int2@g')
|
gi.instructeurs << create(:instructeur, email: 'int2@g')
|
||||||
|
gi.instructeurs << instructeurs_to_remove
|
||||||
gi
|
gi
|
||||||
end
|
end
|
||||||
let(:instructeur_1) { create(:instructeur) }
|
let(:instructeur_1) { create(:instructeur, email: 'int3@g') }
|
||||||
let(:instructeur_2) { create(:instructeur) }
|
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' }
|
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.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']) }
|
it { expect(subject.bcc).to match_array(['int1@g', 'int2@g', 'int3@g', 'int4@g']) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
class GroupeInstructeurMailerPreview < ActionMailer::Preview
|
class GroupeInstructeurMailerPreview < ActionMailer::Preview
|
||||||
def add_instructeurs
|
def remove_instructeurs
|
||||||
procedure = Procedure.new(id: 1, libelle: 'une superbe procedure')
|
procedure = Procedure.new(id: 1, libelle: 'une superbe procedure')
|
||||||
groupe = GroupeInstructeur.new(id: 1, label: 'Val-De-Marne', procedure:)
|
groupe = GroupeInstructeur.new(id: 1, label: 'Val-De-Marne', procedure:)
|
||||||
current_instructeur_email = 'admin@dgfip.com'
|
current_instructeur_email = 'admin@dgfip.com'
|
||||||
instructeurs = Instructeur.limit(2)
|
instructeurs = Instructeur.limit(2)
|
||||||
GroupeInstructeurMailer.add_instructeurs(groupe, instructeurs, current_instructeur_email)
|
GroupeInstructeurMailer.remove_instructeurs(groupe, instructeurs, current_instructeur_email)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue