From a462edb9bcefda33212c29b4097a04e551fc7c3d Mon Sep 17 00:00:00 2001 From: Pierre de La Morinerie Date: Tue, 15 Oct 2019 16:32:18 +0000 Subject: [PATCH] instructeurs: alias `instructeur.email` This also means we need to replace instances of `pluck` on the email column. --- app/controllers/instructeurs/dossiers_controller.rb | 4 ++-- app/mailers/groupe_instructeur_mailer.rb | 4 ++-- app/models/dossier.rb | 2 +- app/models/instructeur.rb | 4 ++++ app/serializers/dossier_serializer.rb | 2 +- .../instructeurs/groupe_instructeurs_controller_spec.rb | 2 +- .../new_administrateur/groupe_instructeurs_controller_spec.rb | 2 +- spec/models/procedure_spec.rb | 2 +- spec/views/admin/assigns/show.html.haml_spec.rb | 2 +- spec/views/admin/instructeurs/index.html.haml_spec.rb | 2 +- 10 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/controllers/instructeurs/dossiers_controller.rb b/app/controllers/instructeurs/dossiers_controller.rb index 551c4cb83..69bc65b34 100644 --- a/app/controllers/instructeurs/dossiers_controller.rb +++ b/app/controllers/instructeurs/dossiers_controller.rb @@ -44,9 +44,9 @@ module Instructeurs end def personnes_impliquees - @following_instructeurs_emails = dossier.followers_instructeurs.pluck(:email) + @following_instructeurs_emails = dossier.followers_instructeurs.map(&:email) previous_followers = dossier.previous_followers_instructeurs - dossier.followers_instructeurs - @previous_following_instructeurs_emails = previous_followers.pluck(:email) + @previous_following_instructeurs_emails = previous_followers.map(&:email) @avis_emails = dossier.avis.includes(:instructeur).map(&:email_to_display) @invites_emails = dossier.invites.map(&:email) @potential_recipients = dossier.groupe_instructeur.instructeurs.reject { |g| g == current_instructeur } diff --git a/app/mailers/groupe_instructeur_mailer.rb b/app/mailers/groupe_instructeur_mailer.rb index f5af9dd3c..612ac2fd5 100644 --- a/app/mailers/groupe_instructeur_mailer.rb +++ b/app/mailers/groupe_instructeur_mailer.rb @@ -8,7 +8,7 @@ class GroupeInstructeurMailer < ApplicationMailer subject = "Ajout d’un instructeur dans le groupe \"#{group.label}\"" - emails = @group.instructeurs.pluck(:email) + emails = @group.instructeurs.map(&:email) mail(bcc: emails, subject: subject) end @@ -19,7 +19,7 @@ class GroupeInstructeurMailer < ApplicationMailer subject = "Suppression d’un instructeur dans le groupe \"#{group.label}\"" - emails = @group.instructeurs.pluck(:email) + emails = @group.instructeurs.map(&:email) mail(bcc: emails, subject: subject) end end diff --git a/app/models/dossier.rb b/app/models/dossier.rb index 1b5c2a4f9..d7d25ad7f 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -365,7 +365,7 @@ class Dossier < ApplicationRecord update(hidden_at: deleted_dossier.deleted_at) if en_construction? - administration_emails = followers_instructeurs.present? ? followers_instructeurs.pluck(:email) : procedure.administrateurs.pluck(:email) + administration_emails = followers_instructeurs.present? ? followers_instructeurs.map(&:email) : procedure.administrateurs.pluck(:email) administration_emails.each do |email| DossierMailer.notify_deletion_to_administration(deleted_dossier, email).deliver_later end diff --git a/app/models/instructeur.rb b/app/models/instructeur.rb index 4c0511849..704818008 100644 --- a/app/models/instructeur.rb +++ b/app/models/instructeur.rb @@ -28,6 +28,10 @@ class Instructeur < ApplicationRecord Instructeur.eager_load(:user).find_by(users: { email: email }) end + def email + user.email + end + def follow(dossier) begin followed_dossiers << dossier diff --git a/app/serializers/dossier_serializer.rb b/app/serializers/dossier_serializer.rb index 5e32472ba..ba829d3e6 100644 --- a/app/serializers/dossier_serializer.rb +++ b/app/serializers/dossier_serializer.rb @@ -94,7 +94,7 @@ class DossierSerializer < ActiveModel::Serializer end def instructeurs - object.followers_instructeurs.pluck(:email) + object.followers_instructeurs.map(&:email) end def created_at diff --git a/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb index c10912227..c9855e498 100644 --- a/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb @@ -50,7 +50,7 @@ describe Instructeurs::GroupeInstructeursController, type: :controller do context 'of a new instructeur' do let(:new_instructeur_email) { 'new_instructeur@mail.com' } - it { expect(gi_1_2.instructeurs.pluck(:email)).to include(new_instructeur_email) } + it { expect(gi_1_2.instructeurs.map(&:email)).to include(new_instructeur_email) } it { expect(flash.notice).to be_present } it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2)) } end diff --git a/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb b/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb index d13e3d8b4..d821de26a 100644 --- a/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb @@ -100,7 +100,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do context 'of a new instructeur' do let(:new_instructeur_email) { 'new_instructeur@mail.com' } - it { expect(gi_1_1.instructeurs.pluck(:email)).to include(new_instructeur_email) } + it { expect(gi_1_1.instructeurs.map(&:email)).to include(new_instructeur_email) } it { expect(flash.notice).to be_present } it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_1)) } end diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index d63ff1670..a21fac1f7 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -401,7 +401,7 @@ describe Procedure do subject { @procedure } it { expect(subject.parent_procedure).to eq(procedure) } - it { expect(subject.defaut_groupe_instructeur.instructeurs.pluck(:email)).to eq([administrateur.email]) } + it { expect(subject.defaut_groupe_instructeur.instructeurs.map(&:email)).to eq([administrateur.email]) } it 'should duplicate specific objects with different id' do expect(subject.id).not_to eq(procedure.id) diff --git a/spec/views/admin/assigns/show.html.haml_spec.rb b/spec/views/admin/assigns/show.html.haml_spec.rb index 6c0342922..7ce691f77 100644 --- a/spec/views/admin/assigns/show.html.haml_spec.rb +++ b/spec/views/admin/assigns/show.html.haml_spec.rb @@ -9,7 +9,7 @@ describe 'admin/assigns/show.html.haml', type: :view do before do assign(:procedure, procedure) - assign(:instructeur, Instructeur.new) + assign(:instructeur, create(:instructeur)) assign(:instructeurs_assign, (smart_listing_create :instructeurs_assign, assign_instructeurs, diff --git a/spec/views/admin/instructeurs/index.html.haml_spec.rb b/spec/views/admin/instructeurs/index.html.haml_spec.rb index 60e351dbf..f40405451 100644 --- a/spec/views/admin/instructeurs/index.html.haml_spec.rb +++ b/spec/views/admin/instructeurs/index.html.haml_spec.rb @@ -8,7 +8,7 @@ describe 'admin/instructeurs/index.html.haml', type: :view do admin.instructeurs, partial: "admin/instructeurs/list", array: true)) - assign(:instructeur, Instructeur.new()) + assign(:instructeur, create(:instructeur)) end context 'Aucun instructeur' do