feat(DossierAssignment): create assignment when manual assignment by instructeur

This commit is contained in:
Eric Leroy-Terquem 2023-06-30 14:52:20 +02:00 committed by Paul Chavard
parent c09655a07f
commit ac2043e920
2 changed files with 27 additions and 1 deletions

View file

@ -358,6 +358,8 @@ module Instructeurs
def reaffecter
dossier = current_instructeur.dossiers.find(params[:dossier_id])
previous_groupe_instructeur = dossier.groupe_instructeur
new_group = dossier
.procedure
.groupe_instructeurs.find(params[:groupe_instructeur_id])
@ -366,6 +368,17 @@ module Instructeurs
dossier.update!(forced_groupe_instructeur: true)
DossierAssignment.create!(
dossier_id: dossier.id,
mode: :manual,
previous_groupe_instructeur_id: previous_groupe_instructeur&.id,
groupe_instructeur_id: new_group.id,
previous_groupe_instructeur_label: previous_groupe_instructeur&.label,
groupe_instructeur_label: new_group.label,
assigned_at: Time.zone.now,
assigned_by: current_instructeur.email
)
flash.notice = t('instructeurs.dossiers.reaffectation', dossier_id: dossier.id, label: new_group.label)
redirect_to instructeur_procedure_path(procedure)
end

View file

@ -1185,10 +1185,16 @@ describe Instructeurs::DossiersController, type: :controller do
end
describe '#reaffecter' do
let!(:gi_1) { procedure.groupe_instructeurs.first }
let!(:gi_2) { GroupeInstructeur.create(label: 'deuxième groupe', procedure: procedure) }
let!(:dossier) { create(:dossier, :en_construction, procedure: procedure, groupe_instructeur: procedure.groupe_instructeurs.first) }
let!(:dossier) { create(:dossier, :en_construction, procedure: procedure, groupe_instructeur: gi_1) }
let!(:new_instructeur) { create(:instructeur) }
before do
gi_1.instructeurs << new_instructeur
gi_1.dossiers << dossier
new_instructeur.followed_dossiers << dossier
post :reaffecter,
params: {
procedure_id: procedure.id,
@ -1200,6 +1206,13 @@ describe Instructeurs::DossiersController, type: :controller do
it do
expect(dossier.reload.groupe_instructeur.id).to eq(gi_2.id)
expect(dossier.forced_groupe_instructeur).to be_truthy
expect(dossier.followers_instructeurs).to eq []
expect(dossier.dossier_assignment.previous_groupe_instructeur_id).to eq(gi_1.id)
expect(dossier.dossier_assignment.previous_groupe_instructeur_label).to eq(gi_1.label)
expect(dossier.dossier_assignment.groupe_instructeur_id).to eq(gi_2.id)
expect(dossier.dossier_assignment.groupe_instructeur_label).to eq(gi_2.label)
expect(dossier.dossier_assignment.mode).to eq('manual')
expect(dossier.dossier_assignment.assigned_by).to eq(instructeur.email)
expect(response).to redirect_to(instructeur_procedure_path(procedure))
expect(flash.notice).to eq("Le dossier nº #{dossier.id} a été réaffecté au groupe dinstructeurs « deuxième groupe ».")
end