Fix bug double procedure path publish

This commit is contained in:
Xavier J 2016-07-12 15:20:10 +02:00
parent 9669fee7fe
commit 7281ee74b2
4 changed files with 12 additions and 10 deletions

View file

@ -89,20 +89,22 @@ class Admin::ProceduresController < AdminController
def publish def publish
procedure = current_administrateur.procedures.find(params[:procedure_id]) procedure = current_administrateur.procedures.find(params[:procedure_id])
test_procedure = ProcedurePath.new( new_procedure_path = ProcedurePath.new(
{ {
path: params[:procedure_path], path: params[:procedure_path],
procedure: procedure, procedure: procedure,
administrateur: procedure.administrateur 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' flash.alert = 'Lien de la procédure invalide'
return redirect_to admin_procedures_path return redirect_to admin_procedures_path
end end
procedure_path = ProcedurePath.find_by_path(params[:procedure_path]) procedure_path = ProcedurePath.find_by_path(params[:procedure_path])
if (procedure_path) if procedure_path
if (procedure_path.administrateur_id == current_administrateur.id) if procedure_path.administrateur_id == current_administrateur.id
procedure_path.procedure.archive procedure_path.procedure.archive
else else
@mine = false @mine = false
@ -110,7 +112,8 @@ class Admin::ProceduresController < AdminController
end end
end end
procedure.publish(params[:procedure_path]) procedure.publish!(params[:procedure_path])
flash.notice = "Procédure publiée" flash.notice = "Procédure publiée"
render js: "window.location = '#{admin_procedures_path}'" render js: "window.location = '#{admin_procedures_path}'"

View file

@ -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_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 :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 :module_api_carto
accepts_nested_attributes_for :procedure_path
mount_uploader :logo, ProcedureLogoUploader mount_uploader :logo, ProcedureLogoUploader
@ -76,7 +75,7 @@ class Procedure < ActiveRecord::Base
return procedure if procedure.save return procedure if procedure.save
end end
def publish(path) def publish!(path)
self.update_attributes!({ published: true, archived: false }) self.update_attributes!({ published: true, archived: false })
ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur) ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur)
end end

View file

@ -58,7 +58,7 @@ FactoryGirl.define do
trait :published do trait :published do
after(:create) do |procedure, _evaluator| after(:create) do |procedure, _evaluator|
procedure.publish(generate(:published_path)) procedure.publish!(generate(:published_path))
end end
end end
end end

View file

@ -27,7 +27,7 @@ describe 'admin/procedures/show.html.haml', type: :view do
describe 'procedure is published' do describe 'procedure is published' do
before do before do
procedure.publish('fake_path') procedure.publish!('fake_path')
procedure.reload procedure.reload
render render
end end
@ -45,7 +45,7 @@ describe 'admin/procedures/show.html.haml', type: :view do
describe 'procedure is archived' do describe 'procedure is archived' do
before do before do
procedure.publish('fake_path') procedure.publish!('fake_path')
procedure.archive procedure.archive
procedure.reload procedure.reload
render render