feat(DossierAssignment): create assignments when admin reaffect all dossiers

This commit is contained in:
Eric Leroy-Terquem 2023-07-05 11:31:37 +02:00 committed by Paul Chavard
parent 082db0ed02
commit 96d17d03ec
2 changed files with 33 additions and 1 deletions

View file

@ -215,9 +215,17 @@ module Administrateurs
end
def reaffecter_all_dossiers_to_defaut_groupe
defaut_groupe = procedure.defaut_groupe_instructeur
procedure.groupe_instructeurs_but_defaut.each do |gi|
gi.dossiers.find_each do |dossier|
dossier.assign_to_groupe_instructeur(procedure.defaut_groupe_instructeur, current_administrateur)
previous_group = dossier.groupe_instructeur
dossier.assign_to_groupe_instructeur(defaut_groupe, current_administrateur)
dossier.create_assignment(
DossierAssignment.modes.fetch(:manual),
previous_group,
defaut_groupe,
current_administrateur.email
)
end
end
end

View file

@ -234,6 +234,30 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
end
end
describe '#destroy_all_groups_but_defaut' do
let!(:dossierA) { create(:dossier, :en_construction, :with_individual, procedure: procedure, groupe_instructeur: gi_1_2) }
let!(:dossierB) { create(:dossier, :en_construction, :with_individual, procedure: procedure, groupe_instructeur: gi_1_2) }
before do
post :destroy_all_groups_but_defaut,
params: {
procedure_id: procedure.id
}
dossierA.reload
dossierB.reload
end
it do
expect(dossierA.groupe_instructeur.id).to be(procedure.defaut_groupe_instructeur.id)
expect(dossierB.groupe_instructeur.id).to be(procedure.defaut_groupe_instructeur.id)
expect(dossierA.dossier_assignment.dossier_id).to be(dossierA.id)
expect(dossierB.dossier_assignment.dossier_id).to be(dossierB.id)
expect(dossierA.dossier_assignment.groupe_instructeur_id).to be(procedure.defaut_groupe_instructeur.id)
expect(dossierB.dossier_assignment.groupe_instructeur_id).to be(procedure.defaut_groupe_instructeur.id)
expect(dossierA.dossier_assignment.assigned_by).to eq(admin.email)
expect(dossierB.dossier_assignment.assigned_by).to eq(admin.email)
end
end
describe '#update' do
let(:new_name) { 'nouveau nom du groupe' }
let!(:procedure_non_routee) { create(:procedure, :published, :for_individual, administrateurs: [admin]) }