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
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}'"

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_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

View file

@ -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

View file

@ -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