From 5f90451dceae25748a66fc9f8cb69445e3d2c84b Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 20 Oct 2023 09:46:15 +0100 Subject: [PATCH] Display fields relevant to specific logs --- app/controllers/duplicate_logs_controller.rb | 31 ------------------- app/models/lettings_log.rb | 16 ++++++++++ app/models/log.rb | 7 +++++ app/models/sales_log.rb | 11 +++++++ .../_duplicate_log_check_answers.erb | 2 +- .../duplicate_logs_controller_spec.rb | 4 +-- 6 files changed, 37 insertions(+), 34 deletions(-) diff --git a/app/controllers/duplicate_logs_controller.rb b/app/controllers/duplicate_logs_controller.rb index 97306df3a..d5ba94130 100644 --- a/app/controllers/duplicate_logs_controller.rb +++ b/app/controllers/duplicate_logs_controller.rb @@ -11,10 +11,6 @@ class DuplicateLogsController < ApplicationController def show if @log @all_duplicates = [@log, *@duplicate_logs] - @duplicate_check_questions = duplicate_check_question_ids.map { |question_id| - question = @log.form.get_question(question_id, @log) - question if question.page.routed_to?(@log, current_user) - }.compact else render_not_found end @@ -59,33 +55,6 @@ private @duplicates = duplicates_for_organisation(@organisation) end - def duplicate_check_question_ids - if @log.lettings? - ["owning_organisation_id", - "startdate", - "tenancycode", - @log.form.start_date.year < 2023 || @log.uprn.blank? ? "postcode_full" : nil, - @log.form.start_date.year >= 2023 && @log.uprn.present? ? "uprn" : nil, - "scheme_id", - "location_id", - "age1", - "sex1", - "ecstat1", - @log.household_charge == 1 ? "household_charge" : nil, - "tcharge", - @log.is_carehome? ? "chcharge" : nil].compact - else - ["owning_organisation_id", - "saledate", - "purchid", - "age1", - "sex1", - "ecstat1", - @log.form.start_date.year < 2023 || @log.uprn.blank? ? "postcode_full" : nil, - @log.form.start_date.year >= 2023 && @log.uprn.present? ? "uprn" : nil].compact - end - end - def find_original_log query_params = URI.parse(request.url).query original_log_id = CGI.parse(query_params)["original_log_id"][0]&.to_i if query_params.present? diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index d9712ea52..c6d7e6858 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -594,6 +594,22 @@ class LettingsLog < Log public_send("details_known_#{person_index}") == 1 end + def duplicate_check_question_ids + ["owning_organisation_id", + "startdate", + "tenancycode", + form.start_date.year < 2023 || uprn.blank? ? "postcode_full" : nil, + form.start_date.year >= 2023 && uprn.present? ? "uprn" : nil, + "scheme_id", + "location_id", + "age1", + "sex1", + "ecstat1", + household_charge == 1 ? "household_charge" : nil, + "tcharge", + is_carehome? ? "chcharge" : nil].compact + end + private def reset_invalid_unresolved_log_fields! diff --git a/app/models/log.rb b/app/models/log.rb index 5ba887c7a..7870076da 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -193,6 +193,13 @@ class Log < ApplicationRecord form.edit_end_date < Time.zone.now || older_than_previous_collection_year? end + def duplicate_check_questions(current_user) + duplicate_check_question_ids.map { |question_id| + question = form.get_question(question_id, self) + question if question.page.routed_to?(self, current_user) + }.compact + end + private # Handle logs that are older than previous collection start date diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index f144336bf..905b7d5a1 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -436,4 +436,15 @@ class SalesLog < Log self.pcodenk = nil if errors.attribute_names.include? :postcode_full end + + def duplicate_check_question_ids + ["owning_organisation_id", + "saledate", + "purchid", + "age1", + "sex1", + "ecstat1", + form.start_date.year < 2023 || uprn.blank? ? "postcode_full" : nil, + form.start_date.year >= 2023 && uprn.present? ? "uprn" : nil].compact + end end diff --git a/app/views/duplicate_logs/_duplicate_log_check_answers.erb b/app/views/duplicate_logs/_duplicate_log_check_answers.erb index ee350545b..c2e7eafae 100644 --- a/app/views/duplicate_logs/_duplicate_log_check_answers.erb +++ b/app/views/duplicate_logs/_duplicate_log_check_answers.erb @@ -1,7 +1,7 @@
<%= govuk_summary_list do |summary_list| %> - <% @duplicate_check_questions.each do |question| %> + <% log.duplicate_check_questions(current_user).each do |question| %> <% summary_list.row do |row| %> <% row.key { get_question_label(question) } %> diff --git a/spec/requests/duplicate_logs_controller_spec.rb b/spec/requests/duplicate_logs_controller_spec.rb index 2db59c09c..f04e4ff80 100644 --- a/spec/requests/duplicate_logs_controller_spec.rb +++ b/spec/requests/duplicate_logs_controller_spec.rb @@ -88,12 +88,12 @@ RSpec.describe DuplicateLogsController, type: :request do it "displays check your answers for each log with correct questions where UPRN is given" do lettings_log.update!(uprn: "123", uprn_known: 1, uprn_confirmed: 1) duplicate_logs[0].update!(uprn: "123", uprn_known: 1, uprn_confirmed: 1) - duplicate_logs[1].update!(uprn: "123", uprn_known: 1, uprn_confirmed: 1) get "/lettings-logs/#{lettings_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}" expect(page).to have_content("Q5 - Tenancy start date", count: 3) expect(page).to have_content("Q7 - Tenant code", count: 3) - expect(page).to have_content("Q11 - UPRN", count: 3) + expect(page).to have_content("Q12 - Postcode", count: 1) + expect(page).to have_content("Q11 - UPRN", count: 2) expect(page).to have_content("Q32 - Lead tenant’s age", count: 3) expect(page).to have_content("Q33 - Lead tenant’s gender identity", count: 3) expect(page).to have_content("Q37 - Lead tenant’s working situation", count: 3)