From de27ebffd1214f77a22d6e8c488c04419d6822fe Mon Sep 17 00:00:00 2001 From: John Pinto Date: Mon, 29 Jul 2024 12:20:07 +0100 Subject: [PATCH] Fix for bug in Plan duplication results in original plan identifier being copied. Change in class method Plan.deep_copy: - Firstly, on duplicating the Plan we set the plan identifier to nil and save. - Then we fill the identifier variable with the Plan id that was regenerated when the duplicate copy was save in the previous. - We then persist this change by saving the Plan again. --- app/models/plan.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/models/plan.rb b/app/models/plan.rb index 7626bba207..6dd7c76774 100644 --- a/app/models/plan.rb +++ b/app/models/plan.rb @@ -254,7 +254,12 @@ def self.deep_copy(plan) plan_copy = plan.dup plan_copy.title = "Copy of #{plan.title}" plan_copy.feedback_requested = false + # Don't copy the identifier as it will be regenerated + plan_copy.identifier = nil plan_copy.save! + # Copy newly generated Id to the identifier + plan_copy.identifier = plan_copy.id + plan.save! plan.answers.each do |answer| answer_copy = Answer.deep_copy(answer) answer_copy.plan_id = plan_copy.id