Skip to content

Commit

Permalink
Fix for bug in Plan duplication results in original plan identifier b…
Browse files Browse the repository at this point in the history
…eing 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.
  • Loading branch information
John Pinto committed Jul 29, 2024
1 parent 56759df commit de27ebf
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions app/models/plan.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit de27ebf

Please sign in to comment.