From c9adfc3bfa83dd4c5846197757e4af36191ce5a1 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Tue, 1 Nov 2022 15:53:58 +0100 Subject: [PATCH] fix(procedure): only set replaced_by if the procedure is effectively published --- .../administrateurs/procedures_controller.rb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/controllers/administrateurs/procedures_controller.rb b/app/controllers/administrateurs/procedures_controller.rb index 54bbb4ccb..21798085a 100644 --- a/app/controllers/administrateurs/procedures_controller.rb +++ b/app/controllers/administrateurs/procedures_controller.rb @@ -258,11 +258,6 @@ module Administrateurs end def publish - if params[:old_procedure].present? - old_procedure = current_administrateur.procedures.with_discarded.closes.find(params[:old_procedure]) - old_procedure.update!(replaced_by_procedure_id: @procedure.id) - end - @procedure.assign_attributes(publish_params) if @procedure.draft_changed? @@ -282,6 +277,16 @@ module Administrateurs else flash.alert = @procedure.errors.full_messages end + + if params[:old_procedure].present? && @procedure.errors.empty? + current_administrateur + .procedures + .with_discarded + .closes + .find(params[:old_procedure]) + .update!(replaced_by_procedure: @procedure) + end + redirect_to admin_procedure_path(@procedure) end