From e6485603c4412d67a0c51e7dfb6dc6efa7bd21b9 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Fri, 7 Sep 2018 17:39:41 +0100 Subject: [PATCH] Add ProcedurePath#valid? --- app/controllers/admin/procedures_controller.rb | 12 +----------- app/models/procedure_path.rb | 5 +++++ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index fe4309449..a413e3d4d 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -94,17 +94,7 @@ class Admin::ProceduresController < AdminController def publish procedure = current_administrateur.procedures.find(params[:procedure_id]) - new_procedure_path = ProcedurePath.new( - { - path: params[:procedure_path], - procedure: procedure, - administrateur: procedure.administrateur - } - ) - - if new_procedure_path.validate - new_procedure_path.delete - else + if !ProcedurePath.valid?(procedure, params[:procedure_path]) flash.alert = 'Lien de la démarche invalide' return redirect_to admin_procedures_path end diff --git a/app/models/procedure_path.rb b/app/models/procedure_path.rb index 418e74345..77a6e9403 100644 --- a/app/models/procedure_path.rb +++ b/app/models/procedure_path.rb @@ -6,6 +6,11 @@ class ProcedurePath < ApplicationRecord belongs_to :procedure belongs_to :administrateur + def self.valid?(procedure, path) + create_with(procedure: procedure, administrateur: procedure.administrateur) + .find_or_initialize_by(path: path).validate + end + def self.find_with_path(path) joins(:procedure) .where.not(procedures: { aasm_state: :archivee })