Add commencer/test/:procedure_path route
This commit is contained in:
parent
ffef1a644c
commit
94d253c6dc
6 changed files with 45 additions and 30 deletions
|
@ -63,11 +63,6 @@ class Admin::ProceduresController < AdminController
|
||||||
def hide
|
def hide
|
||||||
procedure = current_administrateur.procedures.find(params[:id])
|
procedure = current_administrateur.procedures.find(params[:id])
|
||||||
procedure.hide!
|
procedure.hide!
|
||||||
# procedure should no longer be reachable so we delete its procedure_path
|
|
||||||
# that way it is also available for another procedure
|
|
||||||
# however, sometimes the path has already been deleted (ex: stolen by another procedure),
|
|
||||||
# so we're not certain the procedure has a procedure_path anymore
|
|
||||||
procedure.procedure_path.try(:destroy)
|
|
||||||
|
|
||||||
flash.notice = "Procédure supprimée, en cas d'erreur contactez nous : contact@demarches-simplifiees.fr"
|
flash.notice = "Procédure supprimée, en cas d'erreur contactez nous : contact@demarches-simplifiees.fr"
|
||||||
redirect_to admin_procedures_draft_path
|
redirect_to admin_procedures_draft_path
|
||||||
|
|
|
@ -41,28 +41,34 @@ class Users::DossiersController < UsersController
|
||||||
array: true
|
array: true
|
||||||
end
|
end
|
||||||
|
|
||||||
def commencer
|
def commencer_test
|
||||||
if params[:procedure_path].present?
|
procedure_path = ProcedurePath.find_by(path: params[:procedure_path])
|
||||||
procedure_path = ProcedurePath.where(path: params[:procedure_path]).last
|
procedure = procedure_path.test_procedure
|
||||||
|
|
||||||
if procedure_path.nil? || procedure_path.procedure.nil?
|
if procedure.present?
|
||||||
flash.alert = "Procédure inconnue"
|
redirect_to new_users_dossier_path(procedure_id: procedure.id)
|
||||||
return redirect_to root_path
|
|
||||||
else
|
else
|
||||||
|
flash.alert = "Procédure inconnue"
|
||||||
|
redirect_to root_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def commencer
|
||||||
|
procedure_path = ProcedurePath.find_by(path: params[:procedure_path])
|
||||||
procedure = procedure_path.procedure
|
procedure = procedure_path.procedure
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
if procedure.present?
|
||||||
if procedure.archivee?
|
if procedure.archivee?
|
||||||
|
|
||||||
@dossier = Dossier.new(procedure: procedure)
|
@dossier = Dossier.new(procedure: procedure)
|
||||||
|
|
||||||
return render 'commencer/archived'
|
render 'commencer/archived'
|
||||||
end
|
else
|
||||||
|
|
||||||
redirect_to new_users_dossier_path(procedure_id: procedure.id)
|
redirect_to new_users_dossier_path(procedure_id: procedure.id)
|
||||||
rescue ActiveRecord::RecordNotFound
|
end
|
||||||
error_procedure
|
else
|
||||||
|
flash.alert = "Procédure inconnue"
|
||||||
|
redirect_to root_path
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
|
|
|
@ -65,8 +65,9 @@ class Procedure < ApplicationRecord
|
||||||
|
|
||||||
def hide!
|
def hide!
|
||||||
now = DateTime.now
|
now = DateTime.now
|
||||||
self.update(hidden_at: now, aasm_state: :hidden)
|
update(hidden_at: now, aasm_state: :hidden)
|
||||||
self.dossiers.update_all(hidden_at: now)
|
procedure_path&.hide!(self)
|
||||||
|
dossiers.update_all(hidden_at: now)
|
||||||
end
|
end
|
||||||
|
|
||||||
def path
|
def path
|
||||||
|
|
|
@ -10,4 +10,16 @@ class ProcedurePath < ApplicationRecord
|
||||||
def self.find_with_procedure(procedure)
|
def self.find_with_procedure(procedure)
|
||||||
where(procedure: procedure).or(where(test_procedure: procedure)).last
|
where(procedure: procedure).or(where(test_procedure: procedure)).last
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def hide!(procedure)
|
||||||
|
if self.procedure == procedure
|
||||||
|
update(procedure: nil)
|
||||||
|
end
|
||||||
|
if self.test_procedure == procedure
|
||||||
|
update(test_procedure: nil)
|
||||||
|
end
|
||||||
|
if procedure.nil? && test_procedure.nil?
|
||||||
|
destroy
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -211,6 +211,7 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
|
|
||||||
namespace :commencer do
|
namespace :commencer do
|
||||||
|
get '/test/:procedure_path' => '/users/dossiers#commencer_test', as: :test
|
||||||
get '/:procedure_path' => '/users/dossiers#commencer'
|
get '/:procedure_path' => '/users/dossiers#commencer'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -547,7 +547,7 @@ describe Admin::ProceduresController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'POST transfer' do
|
describe 'POST #transfer' do
|
||||||
let!(:procedure) { create :procedure, administrateur: admin }
|
let!(:procedure) { create :procedure, administrateur: admin }
|
||||||
|
|
||||||
subject { post :transfer, params: { email_admin: email_admin, procedure_id: procedure.id } }
|
subject { post :transfer, params: { email_admin: email_admin, procedure_id: procedure.id } }
|
||||||
|
@ -587,17 +587,17 @@ describe Admin::ProceduresController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "POST hide" do
|
describe "POST #hide" do
|
||||||
subject { post :hide, params: { id: procedure.id } }
|
subject { post :hide, params: { id: procedure.id } }
|
||||||
|
|
||||||
context "when procedure is not owned by administrateur" do
|
context "when procedure is not owned by administrateur" do
|
||||||
let!(:procedure) { create :procedure, administrateur: create(:administrateur) }
|
let(:procedure) { create :procedure, administrateur: create(:administrateur) }
|
||||||
|
|
||||||
it { expect{ subject }.to raise_error(ActiveRecord::RecordNotFound) }
|
it { expect{ subject }.to raise_error(ActiveRecord::RecordNotFound) }
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when procedure is owned by administrateur" do
|
context "when procedure is owned by administrateur" do
|
||||||
let!(:procedure) { create :procedure, :published, administrateur: admin }
|
let(:procedure) { create :procedure, :published, administrateur: admin }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
subject
|
subject
|
||||||
|
@ -605,11 +605,11 @@ describe Admin::ProceduresController, type: :controller do
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(procedure.hidden_at).not_to be_nil }
|
it { expect(procedure.hidden_at).not_to be_nil }
|
||||||
it { expect(procedure.procedure_path).to be_nil }
|
it { expect(procedure.procedure_path.procedure).to be_nil }
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when procedure has no path" do
|
context "when procedure has no path" do
|
||||||
let!(:procedure) { create :procedure, administrateur: admin }
|
let(:procedure) { create :procedure, administrateur: admin }
|
||||||
|
|
||||||
it { expect{ subject }.not_to raise_error }
|
it { expect{ subject }.not_to raise_error }
|
||||||
it do
|
it do
|
||||||
|
|
Loading…
Add table
Reference in a new issue