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
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?

16
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!

7
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

11
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

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__body">
<%= 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) } %>

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
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)

Loading…
Cancel
Save