diff --git a/app/controllers/backoffice/dossiers_controller.rb b/app/controllers/backoffice/dossiers_controller.rb index 88b4fd83e..267b5cfee 100644 --- a/app/controllers/backoffice/dossiers_controller.rb +++ b/app/controllers/backoffice/dossiers_controller.rb @@ -159,6 +159,15 @@ class Backoffice::DossiersController < Backoffice::DossiersListController redirect_to backoffice_dossiers_path end + def reopen + create_dossier_facade params[:dossier_id] + + @facade.dossier.initiated! + flash.notice = 'Dossier réouvert.' + + redirect_to backoffice_dossiers_path + end + private def create_dossier_facade dossier_id diff --git a/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show.html.haml b/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show.html.haml index 13a482ccc..43dbfac81 100644 --- a/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show.html.haml +++ b/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show.html.haml @@ -17,6 +17,7 @@ = form_tag(url_for({controller: 'backoffice/dossiers', action: :refuse, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Refuser') do %button.action.refuse-dossier %i.fa.fa-times + = link_to 'Reouvrir', backoffice_dossier_reopen_path(@facade.dossier), method: :post, class: 'btn btn-default btn-block' - unless @facade.dossier.archived? = link_to 'Archiver', backoffice_dossier_archive_path(@facade.dossier), method: :post, class: 'btn btn-default btn-block' diff --git a/config/routes.rb b/config/routes.rb index dfffb56eb..1c3f99b72 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -163,6 +163,7 @@ Rails.application.routes.draw do post 'without_continuation' => 'dossiers#without_continuation' post 'close' => 'dossiers#close' post 'archive' => 'dossiers#archive' + post 'reopen' => 'dossiers#reopen' put 'follow' => 'dossiers#follow' resources :commentaires, only: [:index] diff --git a/spec/controllers/backoffice/dossiers_controller_spec.rb b/spec/controllers/backoffice/dossiers_controller_spec.rb index a73cfddff..3d0043ea6 100644 --- a/spec/controllers/backoffice/dossiers_controller_spec.rb +++ b/spec/controllers/backoffice/dossiers_controller_spec.rb @@ -357,6 +357,23 @@ describe Backoffice::DossiersController, type: :controller do end end + describe 'POST #reopen' do + before do + dossier.received! + sign_in gestionnaire + end + + subject { post :reopen, params: {dossier_id: dossier_id} } + + it 'change state to initiated' do + subject + + dossier.reload + expect(dossier.state).to eq('initiated') + end + + it { is_expected.to redirect_to backoffice_dossiers_path } + end describe 'POST #archive' do before do