feat(routing): add view for dossier a reaffecter

This commit is contained in:
Eric Leroy-Terquem 2023-05-17 14:49:20 +02:00
parent e7e702a574
commit 18054fe346
4 changed files with 58 additions and 3 deletions

View file

@ -331,7 +331,17 @@ module Instructeurs
end
end
def reaffecter_un_dossier
def reaffectation
@dossier = current_instructeur.dossiers.find(params[:dossier_id])
@groupe_instructeur = @dossier.groupe_instructeur
@groupes_instructeurs = Kaminari.paginate_array(@groupe_instructeur.other_groupe_instructeurs)
.page(params[:page])
.per(ITEMS_PER_PAGE)
end
def reaffecter
dossier = current_instructeur.dossiers.find(params[:dossier_id])
new_group = dossier

View file

@ -0,0 +1,24 @@
- content_for(:title, "Réaffectation · Dossier nº #{@dossier.id} (#{@dossier.owner_name})")
= render partial: "header", locals: { dossier: @dossier }
.container.groupe-instructeur
.card
.card-title Réaffectation du dossier nº #{@dossier.id} du groupe « #{@groupe_instructeur.label} »
%p
Vous pouvez réaffecter le dossier nº #{@dossier.id} à l'un des groupes d'instructeurs suivants.
%table.table.mt-2
%thead
%tr
%th{ colspan: 2 }= t("instructeurs.dossiers.existing_groupe", count: @groupes_instructeurs.total_count)
%tbody
- @groupes_instructeurs.each do |group|
%tr
%td= group.label
%td.actions= button_to 'Réaffecter le dossier à ce groupe',
reaffecter_instructeur_dossier_path(procedure_id: @dossier.procedure.id, dossier_id: @dossier.id, groupe_instructeur_id: group.id),
{ class: 'button',
data: { confirm: "Êtes-vous sûr de vouloir réaffecter le dossier nº #{@dossier.id} du groupe « #{@groupe_instructeur.label} » vers le groupe  « #{group.label} » ?" } }
= paginate @groupes_instructeurs, views_prefix: 'shared'

View file

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

View file

@ -1152,7 +1152,27 @@ describe Instructeurs::DossiersController, type: :controller do
end
end
describe '#reaffecter_un_dossier' do
describe '#reaffectation' do
let!(:gi_2) { GroupeInstructeur.create(label: 'deuxième groupe', procedure: procedure) }
let!(:gi_3) { GroupeInstructeur.create(label: 'troisième groupe', procedure: procedure) }
let!(:dossier) { create(:dossier, :en_construction, procedure: procedure, groupe_instructeur: procedure.groupe_instructeurs.first) }
before do
post :reaffectation,
params: {
procedure_id: procedure.id,
dossier_id: dossier.id
}
end
it do
expect(response).to have_http_status(:ok)
expect(response.body).to include("Vous pouvez réaffecter le dossier nº #{dossier.id} à l'un des groupes d'instructeurs suivants.")
expect(response.body).to include('2 groupes existent')
end
end
describe '#reaffecter' 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) }