feat(routing): add reaffecter_un_dossier

This commit is contained in:
Eric Leroy-Terquem 2023-05-17 14:02:44 +02:00
parent ce1429b850
commit e7e702a574
4 changed files with 41 additions and 0 deletions

View file

@ -331,6 +331,21 @@ module Instructeurs
end
end
def reaffecter_un_dossier
dossier = current_instructeur.dossiers.find(params[:dossier_id])
new_group = dossier
.procedure
.groupe_instructeurs.find(params[:groupe_instructeur_id])
dossier.assign_to_groupe_instructeur(new_group)
dossier.update!(forced_groupe_instructeur: true)
flash.notice = t('instructeurs.dossiers.reaffectation', dossier_id: dossier.id, label: new_group.label)
redirect_to instructeur_procedure_path(procedure)
end
private
def dossier_scope

View file

@ -785,6 +785,10 @@ fr:
deleted_by_instructeur: "Le dossier a bien été supprimé de votre interface"
impossible_deletion: "Supression impossible : le dossier nest pas traité"
restore: "Le dossier a bien été restauré"
reaffectation: "Le dossier nº %{dossier_id} a été réaffecté au groupe dinstructeurs « %{label} »."
existing_groupe:
one: "%{count} groupe existe"
other: "%{count} groupes existent"
labels:
to_follow: à suivre
total: dossiers

View file

@ -450,6 +450,7 @@ Rails.application.routes.draw do
post 'avis' => 'dossiers#create_avis'
get 'print' => 'dossiers#print'
get 'telecharger_pjs' => 'dossiers#telecharger_pjs'
post 'reaffecter_un_dossier'
end
end

View file

@ -1151,4 +1151,25 @@ describe Instructeurs::DossiersController, type: :controller do
it { expect(flash.alert).to eq("Votre action n'a pas été effectuée, ce dossier fait parti d'un traitement de masse.") }
end
end
describe '#reaffecter_un_dossier' do
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) }
before do
post :reaffecter,
params: {
procedure_id: procedure.id,
dossier_id: dossier.id,
groupe_instructeur_id: gi_2.id
}
end
it do
expect(dossier.reload.groupe_instructeur.id).to eq(gi_2.id)
expect(dossier.forced_groupe_instructeur).to be_truthy
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
end
end