refactor(instructeur): cleanup destroy / restore routes

This commit is contained in:
Paul Chavard 2022-03-11 13:57:09 +01:00
parent 78bf1147d0
commit a50d07400e
7 changed files with 23 additions and 23 deletions

View file

@ -226,14 +226,25 @@ module Instructeurs
zipline(files, "dossier-#{dossier.id}.zip") zipline(files, "dossier-#{dossier.id}.zip")
end end
def delete_dossier def destroy
if dossier.termine? if dossier.termine?
dossier.hide_and_keep_track!(current_instructeur, :instructeur_request) dossier.hide_and_keep_track!(current_instructeur, :instructeur_request)
flash.notice = t('instructeurs.dossiers.deleted_by_instructeur') flash.notice = t('instructeurs.dossiers.deleted_by_instructeur')
redirect_to instructeur_procedure_path(procedure)
else else
flash.alert = t('instructeurs.dossiers.impossible_deletion') flash.alert = t('instructeurs.dossiers.impossible_deletion')
redirect_back(fallback_location: instructeur_procedures_url) end
redirect_back(fallback_location: instructeur_procedure_path(procedure))
end
def restore
dossier = current_instructeur.dossiers.find(params[:dossier_id])
dossier.restore(current_instructeur)
flash.notice = t('instructeurs.dossiers.restore')
if dossier.termine?
redirect_to instructeur_procedure_path(procedure, statut: :traites)
else
redirect_back(fallback_location: instructeur_procedure_path(procedure))
end end
end end

View file

@ -278,6 +278,8 @@ module Instructeurs
redirect_to instructeur_procedure_path(@procedure) redirect_to instructeur_procedure_path(@procedure)
end end
private
def create_bulk_message_mail(dossier_count, dossier_state) def create_bulk_message_mail(dossier_count, dossier_state)
BulkMessage.create( BulkMessage.create(
dossier_count: dossier_count, dossier_count: dossier_count,
@ -290,15 +292,6 @@ module Instructeurs
) )
end end
def restore
dossier = current_instructeur.dossiers.find(params[:dossier_id])
dossier.restore(current_instructeur)
flash.notice = t('instructeurs.dossiers.restore')
redirect_to instructeur_procedure_path(procedure)
end
private
def assign_to_params def assign_to_params
params.require(:assign_to) params.require(:assign_to)
.permit(:instant_email_dossier_notifications_enabled, :instant_email_message_notifications_enabled, :daily_email_notifications_enabled, :weekly_email_notifications_enabled) .permit(:instant_email_dossier_notifications_enabled, :instant_email_message_notifications_enabled, :daily_email_notifications_enabled, :weekly_email_notifications_enabled)

View file

@ -114,8 +114,7 @@
Lusager a supprimé son compte. Vous pouvez archiver puis supprimer le dossier. Lusager a supprimé son compte. Vous pouvez archiver puis supprimer le dossier.
%li %li
= link_to supprimer_dossier_instructeur_dossier_path(dossier.procedure, dossier), method: :patch, data: { confirm: "Voulez vous vraiment supprimer le dossier #{dossier.id} ? Cette action est irréversible. \nNous vous suggérons de télécharger le dossier au format PDF au préalable." } do = link_to instructeur_dossier_path(dossier.procedure, dossier), method: :delete do
%span.icon.delete %span.icon.delete
.dropdown-description .dropdown-description
%h4 Supprimer le dossier %h4 Supprimer le dossier
Lusager sera notifié que son dossier est supprimé.

View file

@ -23,7 +23,7 @@
Archiver le dossier Archiver le dossier
%li.danger %li.danger
= link_to supprimer_dossier_instructeur_dossier_path(procedure_id, dossier_id), method: :patch, data: { confirm: "Voulez vous vraiment supprimer le dossier #{dossier_id} ? Cette action est irréversible. \nNous vous suggérons de télécharger le dossier au format PDF au préalable." } do = link_to instructeur_dossier_path(procedure_id, dossier_id), method: :delete do
%span.icon.delete %span.icon.delete
.dropdown-description .dropdown-description
= t('views.instructeurs.dossiers.delete_dossier') = t('views.instructeurs.dossiers.delete_dossier')

View file

@ -359,7 +359,7 @@ Rails.application.routes.draw do
get 'email_usagers' get 'email_usagers'
post 'create_multiple_commentaire' post 'create_multiple_commentaire'
resources :dossiers, only: [:show], param: :dossier_id do resources :dossiers, only: [:show, :destroy], param: :dossier_id do
member do member do
resources :commentaires, only: [:destroy] resources :commentaires, only: [:destroy]
post 'repousser-expiration' => 'dossiers#extend_conservation' post 'repousser-expiration' => 'dossiers#extend_conservation'
@ -375,7 +375,7 @@ Rails.application.routes.draw do
patch 'unfollow' patch 'unfollow'
patch 'archive' patch 'archive'
patch 'unarchive' patch 'unarchive'
patch 'supprimer-dossier' => 'dossiers#delete_dossier' patch 'restore'
patch 'annotations' => 'dossiers#update_annotations' patch 'annotations' => 'dossiers#update_annotations'
post 'commentaire' => 'dossiers#create_commentaire' post 'commentaire' => 'dossiers#create_commentaire'
post 'passer-en-instruction' => 'dossiers#passer_en_instruction' post 'passer-en-instruction' => 'dossiers#passer_en_instruction'
@ -386,7 +386,6 @@ Rails.application.routes.draw do
post 'avis' => 'dossiers#create_avis' post 'avis' => 'dossiers#create_avis'
get 'print' => 'dossiers#print' get 'print' => 'dossiers#print'
get 'telecharger_pjs' => 'dossiers#telecharger_pjs' get 'telecharger_pjs' => 'dossiers#telecharger_pjs'
patch 'restore'
end end
end end

View file

@ -740,9 +740,9 @@ describe Instructeurs::DossiersController, type: :controller do
end end
end end
describe "#delete_dossier" do describe "#destroy" do
subject do subject do
patch :delete_dossier, params: { delete :destroy, params: {
procedure_id: procedure.id, procedure_id: procedure.id,
dossier_id: dossier.id dossier_id: dossier.id
} }

View file

@ -70,9 +70,7 @@ describe 'Instructing a dossier:', js: true do
click_on procedure.libelle click_on procedure.libelle
click_on 'traité' click_on 'traité'
click_on 'Actions' click_on 'Actions'
accept_confirm do click_on 'Supprimer le dossier'
click_on 'Supprimer le dossier'
end
click_on 'traité' click_on 'traité'
expect(page).not_to have_button('Actions') expect(page).not_to have_button('Actions')
end end