Browse Source

Display fields relevant to specific logs

pull/1990/head
Kat 3 years ago
parent
commit
5f90451dce
  1. 31
      app/controllers/duplicate_logs_controller.rb
  2. 16
      app/models/lettings_log.rb
  3. 7
      app/models/log.rb
  4. 11
      app/models/sales_log.rb
  5. 2
      app/views/duplicate_logs/_duplicate_log_check_answers.erb
  6. 4
      spec/requests/duplicate_logs_controller_spec.rb

31
app/controllers/duplicate_logs_controller.rb

@ -11,10 +11,6 @@ class DuplicateLogsController < ApplicationController
def show def show
if @log if @log
@all_duplicates = [@log, *@duplicate_logs] @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 else
render_not_found render_not_found
end end
@ -59,33 +55,6 @@ private
@duplicates = duplicates_for_organisation(@organisation) @duplicates = duplicates_for_organisation(@organisation)
end 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 def find_original_log
query_params = URI.parse(request.url).query query_params = URI.parse(request.url).query
original_log_id = CGI.parse(query_params)["original_log_id"][0]&.to_i if query_params.present? original_log_id = CGI.parse(query_params)["original_log_id"][0]&.to_i if query_params.present?

16
app/models/lettings_log.rb

@ -594,6 +594,22 @@ class LettingsLog < Log
public_send("details_known_#{person_index}") == 1 public_send("details_known_#{person_index}") == 1
end 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 private
def reset_invalid_unresolved_log_fields! def reset_invalid_unresolved_log_fields!

7
app/models/log.rb

@ -193,6 +193,13 @@ class Log < ApplicationRecord
form.edit_end_date < Time.zone.now || older_than_previous_collection_year? form.edit_end_date < Time.zone.now || older_than_previous_collection_year?
end 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 private
# Handle logs that are older than previous collection start date # Handle logs that are older than previous collection start date

11
app/models/sales_log.rb

@ -436,4 +436,15 @@ class SalesLog < Log
self.pcodenk = nil if errors.attribute_names.include? :postcode_full self.pcodenk = nil if errors.attribute_names.include? :postcode_full
end 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 end

2
app/views/duplicate_logs/_duplicate_log_check_answers.erb

@ -1,7 +1,7 @@
<div class="x-govuk-summary-card govuk-!-margin-bottom-6"> <div class="x-govuk-summary-card govuk-!-margin-bottom-6">
<div class="x-govuk-summary-card__body"> <div class="x-govuk-summary-card__body">
<%= govuk_summary_list do |summary_list| %> <%= 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| %> <% summary_list.row do |row| %>
<% row.key { get_question_label(question) } %> <% row.key { get_question_label(question) } %>

4
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 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) 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[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}" 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("Q5 - Tenancy start date", count: 3)
expect(page).to have_content("Q7 - Tenant code", 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("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("Q33 - Lead tenant’s gender identity", count: 3)
expect(page).to have_content("Q37 - Lead tenant’s working situation", count: 3) expect(page).to have_content("Q37 - Lead tenant’s working situation", count: 3)

Loading…
Cancel
Save