feat(DossierAssignment): create assignment when manual assignment by instructeur
This commit is contained in:
parent
c09655a07f
commit
ac2043e920
2 changed files with 27 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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 d’instructeurs « deuxième groupe ».")
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue