From 83330abad8d528ddb1b732fcec0313746b944715 Mon Sep 17 00:00:00 2001 From: Kat Date: Mon, 29 Jan 2024 12:10:30 +0000 Subject: [PATCH] correctly update duplicate set IDs when answer is changed through normal form flow --- app/controllers/form_controller.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index 45725c807..dec45aa4b 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -175,10 +175,9 @@ private if dynamic_duplicates.any? saved_duplicates = @log.duplicates if saved_duplicates.none? || duplicates_changed?(dynamic_duplicates, saved_duplicates) - @log.update!(duplicate_set_id: new_duplicate_set_id(@log)) if @log.duplicate_set_id.blank? - dynamic_duplicates.each do |duplicate| - duplicate.update!(duplicate_set_id: @log.duplicate_set_id) if duplicate.duplicate_set_id != @log.duplicate_set_id - end + duplicate_set_id = dynamic_duplicates.first.duplicate_set_id || new_duplicate_set_id(@log) + update_logs_with_duplicate_set_id(@log, dynamic_duplicates, duplicate_set_id) + saved_duplicates.first.update!(duplicate_set_id: nil) if saved_duplicates.count == 1 end return send("#{@log.class.name.underscore}_duplicate_logs_path", @log, original_log_id: @log.id) end