From c0bbfa42b7817e04dcfbfa064151fae3fb07dcff Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 1 Apr 2020 11:10:25 +0200 Subject: [PATCH] Reassign discarded dossiers on group_instructeur fix #4851 --- .../groupe_instructeurs_controller.rb | 2 +- app/models/dossier.rb | 4 +++- .../groupe_instructeurs_controller_spec.rb | 11 ++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/controllers/new_administrateur/groupe_instructeurs_controller.rb b/app/controllers/new_administrateur/groupe_instructeurs_controller.rb index 8732b2bb1..b07b844b6 100644 --- a/app/controllers/new_administrateur/groupe_instructeurs_controller.rb +++ b/app/controllers/new_administrateur/groupe_instructeurs_controller.rb @@ -71,7 +71,7 @@ module NewAdministrateur def reaffecter target_group = procedure.groupe_instructeurs.find(params[:target_group]) - groupe_instructeur.dossiers.find_each do |dossier| + groupe_instructeur.dossiers.with_discarded.find_each do |dossier| dossier.assign_to_groupe_instructeur(target_group, current_administrateur) end diff --git a/app/models/dossier.rb b/app/models/dossier.rb index 81e871f61..c8e13c658 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -759,7 +759,9 @@ class Dossier < ApplicationRecord followers_instructeurs.each do |instructeur| if instructeur.groupe_instructeurs.exclude?(groupe_instructeur) instructeur.unfollow(self) - DossierMailer.notify_groupe_instructeur_changed(instructeur, self).deliver_later + if kept? + DossierMailer.notify_groupe_instructeur_changed(instructeur, self).deliver_later + end end end end diff --git a/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb b/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb index 93d02b5fe..86b760787 100644 --- a/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb @@ -121,7 +121,12 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do describe '#reaffecter' do let!(:gi_1_2) { procedure.groupe_instructeurs.create(label: 'groupe instructeur 2') } - let!(:dossier12) { create(:dossier, procedure: procedure, state: Dossier.states.fetch(:en_construction), groupe_instructeur: gi_1_1) } + let!(:dossier12) { create(:dossier, :en_construction, procedure: procedure, groupe_instructeur: gi_1_1) } + let!(:dossier_discarded) do + dossier = create(:dossier, :en_construction, procedure: procedure, groupe_instructeur: gi_1_1) + dossier.discard! + dossier + end describe 'when the new group is a group of the procedure' do before do @@ -135,8 +140,8 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do end it { expect(response).to redirect_to(procedure_groupe_instructeurs_path(procedure)) } - it { expect(gi_1_1.dossiers.count).to be(0) } - it { expect(gi_1_2.dossiers.count).to be(1) } + it { expect(gi_1_1.dossiers.with_discarded.count).to be(0) } + it { expect(gi_1_2.dossiers.with_discarded.count).to be(2) } it { expect(gi_1_2.dossiers.last.id).to be(dossier12.id) } it { expect(dossier12.groupe_instructeur.id).to be(gi_1_2.id) } end