diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index 8ed367e93..8a95464a7 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -194,7 +194,13 @@ private params[@log.model_name.param_key]["interruption_page_referrer_type"].presence end + def page_has_duplicate_check_question + @page.questions.any? { |q| @log.duplicate_check_question_ids.include?(q.id) } + end + def update_duplication_tracking + return unless page_has_duplicate_check_question + class_name = @log.class.name.underscore dynamic_duplicates = current_user.send(class_name.pluralize).duplicate_logs(@log) @@ -217,7 +223,7 @@ private original_log = current_user.send(class_name.pluralize).find_by(id: from_referrer_query("original_log_id")) if original_log.present? && current_user.send(class_name.pluralize).duplicate_logs(original_log).any? - if @log.duplicates.none? + if @log.duplicate_set_id.nil? flash[:notice] = deduplication_success_banner end return send("#{class_name}_duplicate_logs_path", original_log, original_log_id: original_log.id, referrer: params[:referrer], organisation_id: params[:organisation_id]) @@ -227,7 +233,7 @@ private end end - if @log.duplicates.any? + unless @log.duplicate_set_id.nil? return send("#{@log.class.name.underscore}_duplicate_logs_path", @log, original_log_id: @log.id) end diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 10ab612cd..7bf963212 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -701,7 +701,9 @@ class LettingsLog < Log end def duplicates - LettingsLog.where.not(duplicate_set_id: nil).where(duplicate_set_id:).where.not(id:) + return LettingsLog.none if duplicate_set_id.nil? + + LettingsLog.where(duplicate_set_id:).where.not(id:) end def address_search_given? diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index 6ac2979c8..6cfb0622e 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -514,7 +514,9 @@ class SalesLog < Log end def duplicates - SalesLog.where.not(duplicate_set_id: nil).where(duplicate_set_id:).where.not(id:) + return SalesLog.none if duplicate_set_id.nil? + + SalesLog.where(duplicate_set_id:).where.not(id:) end def nationality2_uk_or_prefers_not_to_say?