From 18ad227df5b4f80ee853a32d1d956dba30b90c46 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Thu, 31 May 2018 11:15:44 +0200 Subject: [PATCH] [fix #1897] Procedure: can delete a deliberation --- app/controllers/admin/procedures_controller.rb | 9 +++++++++ app/views/admin/procedures/_informations.html.haml | 2 ++ config/routes.rb | 1 + spec/controllers/admin/procedures_controller_spec.rb | 12 ++++++++++++ 4 files changed, 24 insertions(+) diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index bd1c3c38d..6d8a3cd9e 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -217,6 +217,15 @@ class Admin::ProceduresController < AdminController render json: json_path_list end + def delete_deliberation + procedure = Procedure.find(params[:id]) + + procedure.deliberation.purge_later + + flash.notice = 'la délibération a bien été supprimée' + redirect_to edit_admin_procedure_path(procedure) + end + private def cloned_from_library? diff --git a/app/views/admin/procedures/_informations.html.haml b/app/views/admin/procedures/_informations.html.haml index 9270d749f..9187a4540 100644 --- a/app/views/admin/procedures/_informations.html.haml +++ b/app/views/admin/procedures/_informations.html.haml @@ -35,6 +35,8 @@ - else %a{ href: url_for(deliberation), target: '_blank' } = deliberation.filename.to_s + = link_to 'supprimer', delete_deliberation_admin_procedure_path(@procedure), + method: :delete %br Modifier : = f.file_field :deliberation, diff --git a/config/routes.rb b/config/routes.rb index be7433006..a6816f131 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -147,6 +147,7 @@ Rails.application.routes.draw do member do post :hide + delete :delete_deliberation end resources :types_de_champ, only: [:destroy] diff --git a/spec/controllers/admin/procedures_controller_spec.rb b/spec/controllers/admin/procedures_controller_spec.rb index 9c790afdd..900f5eaf2 100644 --- a/spec/controllers/admin/procedures_controller_spec.rb +++ b/spec/controllers/admin/procedures_controller_spec.rb @@ -637,4 +637,16 @@ describe Admin::ProceduresController, type: :controller do end end end + + describe "DELETE #delete_deliberation" do + let(:procedure) { create(:procedure, :with_deliberation) } + + before do + delete :delete_deliberation, params: { id: procedure.id } + procedure.reload + end + + it { expect(procedure.deliberation.attached?).to eq(false) } + it { expect(response).to redirect_to(edit_admin_procedure_path(procedure)) } + end end