diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index 04ae580c1..b7d94302a 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -89,20 +89,22 @@ class Admin::ProceduresController < AdminController def publish procedure = current_administrateur.procedures.find(params[:procedure_id]) - test_procedure = ProcedurePath.new( + new_procedure_path = ProcedurePath.new( { path: params[:procedure_path], procedure: procedure, administrateur: procedure.administrateur }) - unless test_procedure.validate + if new_procedure_path.validate + new_procedure_path.delete + else flash.alert = 'Lien de la procédure invalide' return redirect_to admin_procedures_path end procedure_path = ProcedurePath.find_by_path(params[:procedure_path]) - if (procedure_path) - if (procedure_path.administrateur_id == current_administrateur.id) + if procedure_path + if procedure_path.administrateur_id == current_administrateur.id procedure_path.procedure.archive else @mine = false @@ -110,7 +112,8 @@ class Admin::ProceduresController < AdminController end end - procedure.publish(params[:procedure_path]) + procedure.publish!(params[:procedure_path]) + flash.notice = "Procédure publiée" render js: "window.location = '#{admin_procedures_path}'" diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 07505e2fd..ffbec6720 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -17,7 +17,6 @@ class Procedure < ActiveRecord::Base accepts_nested_attributes_for :types_de_champ,:reject_if => proc { |attributes| attributes['libelle'].blank? }, :allow_destroy => true accepts_nested_attributes_for :types_de_piece_justificative, :reject_if => proc { |attributes| attributes['libelle'].blank? }, :allow_destroy => true accepts_nested_attributes_for :module_api_carto - accepts_nested_attributes_for :procedure_path mount_uploader :logo, ProcedureLogoUploader @@ -76,7 +75,7 @@ class Procedure < ActiveRecord::Base return procedure if procedure.save end - def publish(path) + def publish!(path) self.update_attributes!({ published: true, archived: false }) ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur) end diff --git a/spec/factories/procedure.rb b/spec/factories/procedure.rb index 976a2bf50..d8d5dc8c1 100644 --- a/spec/factories/procedure.rb +++ b/spec/factories/procedure.rb @@ -58,7 +58,7 @@ FactoryGirl.define do trait :published do after(:create) do |procedure, _evaluator| - procedure.publish(generate(:published_path)) + procedure.publish!(generate(:published_path)) end end end diff --git a/spec/views/admin/procedures/show.html.haml_spec.rb b/spec/views/admin/procedures/show.html.haml_spec.rb index 92ad1d824..06c716479 100644 --- a/spec/views/admin/procedures/show.html.haml_spec.rb +++ b/spec/views/admin/procedures/show.html.haml_spec.rb @@ -27,7 +27,7 @@ describe 'admin/procedures/show.html.haml', type: :view do describe 'procedure is published' do before do - procedure.publish('fake_path') + procedure.publish!('fake_path') procedure.reload render end @@ -45,7 +45,7 @@ describe 'admin/procedures/show.html.haml', type: :view do describe 'procedure is archived' do before do - procedure.publish('fake_path') + procedure.publish!('fake_path') procedure.archive procedure.reload render