From ff3f789acc96cfa636cd7c46ba16a12272ed4f50 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:54:45 +0000 Subject: [PATCH 1/6] CLDC-3681 Extract lettings household characteristics copy (#2728) * Extract lettings household characteristics copy * Update cya labels for age known * Update missing keys and copy --- .../form/lettings/pages/lead_tenant_age.rb | 1 + .../lead_tenant_ethnic_background_arab.rb | 1 + .../lead_tenant_ethnic_background_asian.rb | 1 + .../lead_tenant_ethnic_background_black.rb | 1 + .../lead_tenant_ethnic_background_mixed.rb | 1 + .../lead_tenant_ethnic_background_white.rb | 1 + .../lettings/pages/lead_tenant_nationality.rb | 1 + app/models/form/lettings/pages/person_age.rb | 9 +- .../form/lettings/pages/person_known.rb | 1 - app/models/form/lettings/questions/age.rb | 8 +- app/models/form/lettings/questions/age1.rb | 3 +- .../form/lettings/questions/age1_known.rb | 11 +- .../form/lettings/questions/age_known.rb | 4 +- .../form/lettings/questions/declaration.rb | 2 - .../form/lettings/questions/details_known.rb | 3 - .../form/lettings/questions/ethnic_arab.rb | 4 +- .../form/lettings/questions/ethnic_asian.rb | 4 +- .../form/lettings/questions/ethnic_black.rb | 4 +- .../form/lettings/questions/ethnic_group.rb | 3 - .../form/lettings/questions/ethnic_mixed.rb | 4 +- .../form/lettings/questions/ethnic_white.rb | 4 +- .../lettings/questions/gender_identity1.rb | 10 - app/models/form/lettings/questions/hhmemb.rb | 3 - .../form/lettings/questions/nationality.rb | 3 - .../lettings/questions/nationality_all.rb | 3 +- .../questions/nationality_all_group.rb | 4 +- .../questions/person_gender_identity.rb | 10 - .../lettings/questions/person_relationship.rb | 3 - .../questions/person_working_situation.rb | 3 - .../lettings/questions/working_situation1.rb | 3 - .../subsections/household_characteristics.rb | 7 - .../lettings/household_characteristics.en.yml | 323 ++++++++++++++++++ .../lettings/household_characteristics.en.yml | 322 +++++++++++++++++ .../form/lettings/pages/person_age_spec.rb | 35 +- .../form/lettings/questions/age_spec.rb | 3 +- .../household_characteristics_spec.rb | 42 +-- 36 files changed, 692 insertions(+), 153 deletions(-) create mode 100644 config/locales/forms/2023/lettings/household_characteristics.en.yml create mode 100644 config/locales/forms/2024/sales/lettings/household_characteristics.en.yml diff --git a/app/models/form/lettings/pages/lead_tenant_age.rb b/app/models/form/lettings/pages/lead_tenant_age.rb index 640d23142..3058d8a77 100644 --- a/app/models/form/lettings/pages/lead_tenant_age.rb +++ b/app/models/form/lettings/pages/lead_tenant_age.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::LeadTenantAge < ::Form::Page def initialize(id, hsh, subsection) super @id = "lead_tenant_age" + @copy_key = "lettings.household_characteristics.age1" @depends_on = [{ "declaration" => 1 }] end diff --git a/app/models/form/lettings/pages/lead_tenant_ethnic_background_arab.rb b/app/models/form/lettings/pages/lead_tenant_ethnic_background_arab.rb index 89d73fd34..fe038aa78 100644 --- a/app/models/form/lettings/pages/lead_tenant_ethnic_background_arab.rb +++ b/app/models/form/lettings/pages/lead_tenant_ethnic_background_arab.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::LeadTenantEthnicBackgroundArab < ::Form::Page def initialize(id, hsh, subsection) super @id = "lead_tenant_ethnic_background_arab" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_arab" @depends_on = [{ "ethnic_group" => 4 }] end diff --git a/app/models/form/lettings/pages/lead_tenant_ethnic_background_asian.rb b/app/models/form/lettings/pages/lead_tenant_ethnic_background_asian.rb index d55ce9837..9f01300d1 100644 --- a/app/models/form/lettings/pages/lead_tenant_ethnic_background_asian.rb +++ b/app/models/form/lettings/pages/lead_tenant_ethnic_background_asian.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::LeadTenantEthnicBackgroundAsian < ::Form::Page def initialize(id, hsh, subsection) super @id = "lead_tenant_ethnic_background_asian" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_asian" @depends_on = [{ "ethnic_group" => 2 }] end diff --git a/app/models/form/lettings/pages/lead_tenant_ethnic_background_black.rb b/app/models/form/lettings/pages/lead_tenant_ethnic_background_black.rb index 7ce2ef9c4..68bcffb1c 100644 --- a/app/models/form/lettings/pages/lead_tenant_ethnic_background_black.rb +++ b/app/models/form/lettings/pages/lead_tenant_ethnic_background_black.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::LeadTenantEthnicBackgroundBlack < ::Form::Page def initialize(id, hsh, subsection) super @id = "lead_tenant_ethnic_background_black" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_black" @depends_on = [{ "ethnic_group" => 3 }] end diff --git a/app/models/form/lettings/pages/lead_tenant_ethnic_background_mixed.rb b/app/models/form/lettings/pages/lead_tenant_ethnic_background_mixed.rb index a4c225083..fd1e52c11 100644 --- a/app/models/form/lettings/pages/lead_tenant_ethnic_background_mixed.rb +++ b/app/models/form/lettings/pages/lead_tenant_ethnic_background_mixed.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::LeadTenantEthnicBackgroundMixed < ::Form::Page def initialize(id, hsh, subsection) super @id = "lead_tenant_ethnic_background_mixed" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_mixed" @depends_on = [{ "ethnic_group" => 1 }] end diff --git a/app/models/form/lettings/pages/lead_tenant_ethnic_background_white.rb b/app/models/form/lettings/pages/lead_tenant_ethnic_background_white.rb index 994e6e159..e457c39fe 100644 --- a/app/models/form/lettings/pages/lead_tenant_ethnic_background_white.rb +++ b/app/models/form/lettings/pages/lead_tenant_ethnic_background_white.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::LeadTenantEthnicBackgroundWhite < ::Form::Page def initialize(id, hsh, subsection) super @id = "lead_tenant_ethnic_background_white" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_white" @depends_on = [{ "ethnic_group" => 0 }] end diff --git a/app/models/form/lettings/pages/lead_tenant_nationality.rb b/app/models/form/lettings/pages/lead_tenant_nationality.rb index 9fc78644f..d4845f8f9 100644 --- a/app/models/form/lettings/pages/lead_tenant_nationality.rb +++ b/app/models/form/lettings/pages/lead_tenant_nationality.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::LeadTenantNationality < ::Form::Page def initialize(id, hsh, subsection) super @id = "lead_tenant_nationality" + @copy_key = "lettings.household_characteristics.#{form.start_year_after_2024? ? 'nationality_all' : 'national'}" @depends_on = [{ "declaration" => 1 }] end diff --git a/app/models/form/lettings/pages/person_age.rb b/app/models/form/lettings/pages/person_age.rb index bbb5da01e..3e6a73e14 100644 --- a/app/models/form/lettings/pages/person_age.rb +++ b/app/models/form/lettings/pages/person_age.rb @@ -1,13 +1,12 @@ class Form::Lettings::Pages::PersonAge < ::Form::Page - def initialize(id, hsh, subsection, person_index:, person_type: "non_child") + def initialize(id, hsh, subsection, person_index:) super(id, hsh, subsection) - @id = "person_#{person_index}_age_#{person_type}" + @id = "person_#{person_index}_age" + @copy_key = "lettings.household_characteristics.age#{person_index}" @person_index = person_index - @person_type = person_type @depends_on = [ { "details_known_#{person_index}" => 0, - "person_#{person_index}_child_relation?" => (person_type == "child"), }, ] end @@ -15,7 +14,7 @@ class Form::Lettings::Pages::PersonAge < ::Form::Page def questions @questions ||= [ Form::Lettings::Questions::AgeKnown.new(nil, nil, self, person_index: @person_index), - Form::Lettings::Questions::Age.new(nil, nil, self, person_index: @person_index, person_type: @person_type), + Form::Lettings::Questions::Age.new(nil, nil, self, person_index: @person_index), ] end end diff --git a/app/models/form/lettings/pages/person_known.rb b/app/models/form/lettings/pages/person_known.rb index b864ab708..6e699926d 100644 --- a/app/models/form/lettings/pages/person_known.rb +++ b/app/models/form/lettings/pages/person_known.rb @@ -2,7 +2,6 @@ class Form::Lettings::Pages::PersonKnown < ::Form::Page def initialize(id, hsh, subsection, person_index:) super(id, hsh, subsection) @id = "person_#{person_index}_known" - @header = "You’ve given us the details for #{person_index - 1} person in the household" @depends_on = (person_index..8).map { |index| { "hhmemb" => index } } @person_index = person_index end diff --git a/app/models/form/lettings/questions/age.rb b/app/models/form/lettings/questions/age.rb index 0a457203c..b861cb39f 100644 --- a/app/models/form/lettings/questions/age.rb +++ b/app/models/form/lettings/questions/age.rb @@ -1,9 +1,8 @@ class Form::Lettings::Questions::Age < ::Form::Question - def initialize(id, hsh, page, person_index:, person_type:) + def initialize(id, hsh, page, person_index:) super(id, hsh, page) @id = "age#{person_index}" - @check_answer_label = "Person #{person_index}’s age" - @header = "Age" + @copy_key = "lettings.household_characteristics.age#{person_index}.age#{person_index}" @type = "numeric" @width = 2 @inferred_check_answers_value = [{ "condition" => { "age#{person_index}_known" => 1 }, "value" => "Not known" }] @@ -13,7 +12,6 @@ class Form::Lettings::Questions::Age < ::Form::Question @step = 1 @person_index = person_index @question_number = question_number - @person_type = person_type @hint_text = hint_text end @@ -31,8 +29,6 @@ class Form::Lettings::Questions::Age < ::Form::Question def hint_text if form.start_year_after_2024? "Answer 1 for children aged under 1 year old" - elsif @person_type == "child" - "For a child under 1, enter 1" end end end diff --git a/app/models/form/lettings/questions/age1.rb b/app/models/form/lettings/questions/age1.rb index 922345e65..72d89096c 100644 --- a/app/models/form/lettings/questions/age1.rb +++ b/app/models/form/lettings/questions/age1.rb @@ -2,8 +2,7 @@ class Form::Lettings::Questions::Age1 < ::Form::Question def initialize(id, hsh, page) super @id = "age1" - @check_answer_label = "Lead tenant’s age" - @header = "Age" + @copy_key = "lettings.household_characteristics.age1.age1" @type = "numeric" @width = 2 @inferred_check_answers_value = [{ "condition" => { "age1_known" => 1 }, "value" => "Not known" }] diff --git a/app/models/form/lettings/questions/age1_known.rb b/app/models/form/lettings/questions/age1_known.rb index 27c185de4..e54d7993b 100644 --- a/app/models/form/lettings/questions/age1_known.rb +++ b/app/models/form/lettings/questions/age1_known.rb @@ -2,8 +2,7 @@ class Form::Lettings::Questions::Age1Known < ::Form::Question def initialize(id, hsh, page) super @id = "age1_known" - @check_answer_label = "" - @header = "Do you know the lead tenant’s age?" + @copy_key = "lettings.household_characteristics.age1.age1_known" @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS @@ -14,13 +13,5 @@ class Form::Lettings::Questions::Age1Known < ::Form::Question ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze - def hint_text - if form.start_year_after_2024? - "The ’lead’ or ’main’ tenant is the person in the household who does the most paid work. If several people do the same amount of paid work, the lead tenant is whoever is the oldest." - else - "The ’lead’ or ’main’ tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." - end - end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31 }.freeze end diff --git a/app/models/form/lettings/questions/age_known.rb b/app/models/form/lettings/questions/age_known.rb index 10ae7dad5..2f5d7ce0b 100644 --- a/app/models/form/lettings/questions/age_known.rb +++ b/app/models/form/lettings/questions/age_known.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::AgeKnown < ::Form::Question def initialize(id, hsh, page, person_index:) super(id, hsh, page) @id = "age#{person_index}_known" - @check_answer_label = "" - @header = "Do you know person #{person_index}’s age?" + @copy_key = "lettings.household_characteristics.age#{person_index}.age#{person_index}_known" @type = "radio" @check_answers_card_number = person_index - @hint_text = "" @answer_options = ANSWER_OPTIONS @conditional_for = { "age#{person_index}" => [0] } @hidden_in_check_answers = { diff --git a/app/models/form/lettings/questions/declaration.rb b/app/models/form/lettings/questions/declaration.rb index 5d3f6d76b..c88c7cf3c 100644 --- a/app/models/form/lettings/questions/declaration.rb +++ b/app/models/form/lettings/questions/declaration.rb @@ -2,8 +2,6 @@ class Form::Lettings::Questions::Declaration < ::Form::Question def initialize(id, hsh, page) super @id = "declaration" - @check_answer_label = "Tenant has seen the privacy notice" - @header = "Declaration" @type = "checkbox" @check_answers_card_number = 0 unless form.start_year_after_2024? @top_guidance_partial = form.start_year_after_2024? ? "privacy_notice_tenant_2024" : "privacy_notice_tenant" diff --git a/app/models/form/lettings/questions/details_known.rb b/app/models/form/lettings/questions/details_known.rb index f2850b65e..fda7a2eb7 100644 --- a/app/models/form/lettings/questions/details_known.rb +++ b/app/models/form/lettings/questions/details_known.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::DetailsKnown < ::Form::Question def initialize(id, hsh, page, person_index:) super(id, hsh, page) @id = "details_known_#{person_index}" - @check_answer_label = "Details known for person #{person_index}" - @header = "Do you know details for person #{person_index}?" @type = "radio" @check_answers_card_number = person_index - @hint_text = "You must provide details for everyone in the household if you know them." @answer_options = ANSWER_OPTIONS end diff --git a/app/models/form/lettings/questions/ethnic_arab.rb b/app/models/form/lettings/questions/ethnic_arab.rb index 380de645f..d642c1a1b 100644 --- a/app/models/form/lettings/questions/ethnic_arab.rb +++ b/app/models/form/lettings/questions/ethnic_arab.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::EthnicArab < ::Form::Question def initialize(id, hsh, page) super @id = "ethnic" - @check_answer_label = "Lead tenant’s ethnic background" - @header = "Which of the following best describes the lead tenant’s Arab background?" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_arab" @type = "radio" @check_answers_card_number = 1 - @hint_text = form.start_year_after_2024? ? "" : "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/ethnic_asian.rb b/app/models/form/lettings/questions/ethnic_asian.rb index 33002533b..7fb309bba 100644 --- a/app/models/form/lettings/questions/ethnic_asian.rb +++ b/app/models/form/lettings/questions/ethnic_asian.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::EthnicAsian < ::Form::Question def initialize(id, hsh, page) super @id = "ethnic" - @check_answer_label = "Lead tenant’s ethnic background" - @header = "Which of the following best describes the lead tenant’s Asian or Asian British background?" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_asian" @type = "radio" @check_answers_card_number = 1 - @hint_text = form.start_year_after_2024? ? "" : "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/ethnic_black.rb b/app/models/form/lettings/questions/ethnic_black.rb index 16a886eb3..e3a88259e 100644 --- a/app/models/form/lettings/questions/ethnic_black.rb +++ b/app/models/form/lettings/questions/ethnic_black.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::EthnicBlack < ::Form::Question def initialize(id, hsh, page) super @id = "ethnic" - @check_answer_label = "Lead tenant’s ethnic background" - @header = "Which of the following best describes the lead tenant’s Black, African, Caribbean or Black British background?" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_black" @type = "radio" @check_answers_card_number = 1 - @hint_text = form.start_year_after_2024? ? "" : "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/ethnic_group.rb b/app/models/form/lettings/questions/ethnic_group.rb index c3093d48e..16bdfc4ba 100644 --- a/app/models/form/lettings/questions/ethnic_group.rb +++ b/app/models/form/lettings/questions/ethnic_group.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::EthnicGroup < ::Form::Question def initialize(id, hsh, page) super @id = "ethnic_group" - @check_answer_label = "Lead tenant’s ethnic group" - @header = "What is the lead tenant’s ethnic group?" @type = "radio" @check_answers_card_number = 1 - @hint_text = form.start_year_after_2024? ? "" : "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/ethnic_mixed.rb b/app/models/form/lettings/questions/ethnic_mixed.rb index cd7d7a4bb..14d1f213b 100644 --- a/app/models/form/lettings/questions/ethnic_mixed.rb +++ b/app/models/form/lettings/questions/ethnic_mixed.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::EthnicMixed < ::Form::Question def initialize(id, hsh, page) super @id = "ethnic" - @check_answer_label = "Lead tenant’s ethnic background" - @header = "Which of the following best describes the lead tenant’s Mixed or Multiple ethnic groups background?" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_mixed" @type = "radio" @check_answers_card_number = 1 - @hint_text = form.start_year_after_2024? ? "" : "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/ethnic_white.rb b/app/models/form/lettings/questions/ethnic_white.rb index 9c042b576..40b99bc9f 100644 --- a/app/models/form/lettings/questions/ethnic_white.rb +++ b/app/models/form/lettings/questions/ethnic_white.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::EthnicWhite < ::Form::Question def initialize(id, hsh, page) super @id = "ethnic" - @check_answer_label = "Lead tenant’s ethnic background" - @header = "Which of the following best describes the lead tenant’s White background?" + @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_white" @type = "radio" @check_answers_card_number = 1 - @hint_text = form.start_year_after_2024? ? "" : "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/gender_identity1.rb b/app/models/form/lettings/questions/gender_identity1.rb index eefe20e15..411bcd3d0 100644 --- a/app/models/form/lettings/questions/gender_identity1.rb +++ b/app/models/form/lettings/questions/gender_identity1.rb @@ -2,8 +2,6 @@ class Form::Lettings::Questions::GenderIdentity1 < ::Form::Question def initialize(id, hsh, page) super @id = "sex1" - @check_answer_label = "Lead tenant’s gender identity" - @header = "Which of these best describes the lead tenant’s gender identity?" @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS @@ -18,13 +16,5 @@ class Form::Lettings::Questions::GenderIdentity1 < ::Form::Question "R" => { "value" => "Tenant prefers not to say" }, }.freeze - def hint_text - if form.start_year_after_2024? - "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." - else - "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." - end - end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 33, 2024 => 32 }.freeze end diff --git a/app/models/form/lettings/questions/hhmemb.rb b/app/models/form/lettings/questions/hhmemb.rb index bd874d544..61fad98ef 100644 --- a/app/models/form/lettings/questions/hhmemb.rb +++ b/app/models/form/lettings/questions/hhmemb.rb @@ -2,14 +2,11 @@ class Form::Lettings::Questions::Hhmemb < ::Form::Question def initialize(id, hsh, page) super @id = "hhmemb" - @check_answer_label = "Number of household members" - @header = "How many people live in the household for this letting?" @type = "numeric" @width = 2 @check_answers_card_number = 0 @max = 8 @min = 1 - @hint_text = "You can provide details for a maximum of 8 people." @step = 1 @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/nationality.rb b/app/models/form/lettings/questions/nationality.rb index 51cbec936..8c4a700c1 100644 --- a/app/models/form/lettings/questions/nationality.rb +++ b/app/models/form/lettings/questions/nationality.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::Nationality < ::Form::Question def initialize(id, hsh, page) super @id = "national" - @check_answer_label = "Lead tenant’s nationality" - @header = "What is the nationality of the lead tenant?" @type = "radio" @check_answers_card_number = 1 - @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/nationality_all.rb b/app/models/form/lettings/questions/nationality_all.rb index a8324595f..8a0e3d1d9 100644 --- a/app/models/form/lettings/questions/nationality_all.rb +++ b/app/models/form/lettings/questions/nationality_all.rb @@ -2,8 +2,7 @@ class Form::Lettings::Questions::NationalityAll < ::Form::Question def initialize(id, hsh, page) super @id = "nationality_all" - @check_answer_label = "Lead tenant’s nationality" - @header = "Enter a nationality" + @copy_key = "lettings.household_characteristics.nationality_all.nationality_all" @type = "select" @check_answers_card_number = 1 @answer_options = GlobalConstants::COUNTRIES_ANSWER_OPTIONS diff --git a/app/models/form/lettings/questions/nationality_all_group.rb b/app/models/form/lettings/questions/nationality_all_group.rb index 53534851b..559b1c9a0 100644 --- a/app/models/form/lettings/questions/nationality_all_group.rb +++ b/app/models/form/lettings/questions/nationality_all_group.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::NationalityAllGroup < ::Form::Question def initialize(id, hsh, page) super @id = "nationality_all_group" - @check_answer_label = "Lead tenant’s nationality" - @header = "What is the nationality of the lead tenant?" + @copy_key = "lettings.household_characteristics.nationality_all.nationality_all_group" @type = "radio" @check_answers_card_number = 1 - @hint_text = "If the lead tenant is a dual national of the United Kingdom and another country, enter United Kingdom. If they are a dual national of two other countries, the tenant should decide which country to enter." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @conditional_for = { "nationality_all" => [12] } diff --git a/app/models/form/lettings/questions/person_gender_identity.rb b/app/models/form/lettings/questions/person_gender_identity.rb index 21244938d..0d76d23e3 100644 --- a/app/models/form/lettings/questions/person_gender_identity.rb +++ b/app/models/form/lettings/questions/person_gender_identity.rb @@ -2,8 +2,6 @@ class Form::Lettings::Questions::PersonGenderIdentity < ::Form::Question def initialize(id, hsh, page, person_index:) super(id, hsh, page) @id = "sex#{person_index}" - @check_answer_label = "Person #{person_index}’s gender identity" - @header = "Which of these best describes person #{person_index}’s gender identity?" @type = "radio" @check_answers_card_number = person_index @answer_options = ANSWER_OPTIONS @@ -19,14 +17,6 @@ class Form::Lettings::Questions::PersonGenderIdentity < ::Form::Question "R" => { "value" => "Person prefers not to say" }, }.freeze - def hint_text - if form.start_year_after_2024? - "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." - else - "" - end - end - def question_number base_question_number = case form.start_date.year when 2023 diff --git a/app/models/form/lettings/questions/person_relationship.rb b/app/models/form/lettings/questions/person_relationship.rb index c20ec9f2c..ec7a78969 100644 --- a/app/models/form/lettings/questions/person_relationship.rb +++ b/app/models/form/lettings/questions/person_relationship.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::PersonRelationship < ::Form::Question def initialize(id, hsh, page, person_index:) super(id, hsh, page) @id = "relat#{person_index}" - @check_answer_label = "Person #{person_index}’s relationship to the lead tenant" - @header = "What is person #{person_index}’s relationship to the lead tenant?" @type = "radio" @check_answers_card_number = person_index - @hint_text = "" @answer_options = answer_options @person_index = person_index @question_number = question_number diff --git a/app/models/form/lettings/questions/person_working_situation.rb b/app/models/form/lettings/questions/person_working_situation.rb index 3d223a943..cc4644f48 100644 --- a/app/models/form/lettings/questions/person_working_situation.rb +++ b/app/models/form/lettings/questions/person_working_situation.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::PersonWorkingSituation < ::Form::Question def initialize(id, hsh, page, person_index:) super(id, hsh, page) @id = "ecstat#{person_index}" - @check_answer_label = "Person #{person_index}’s working situation" - @header = "Which of these best describes person #{person_index}’s working situation?" @type = "radio" @check_answers_card_number = person_index - @hint_text = "" @person_index = person_index @question_number = question_number @answer_options = answer_options diff --git a/app/models/form/lettings/questions/working_situation1.rb b/app/models/form/lettings/questions/working_situation1.rb index b2facdf01..dbaf4fc7a 100644 --- a/app/models/form/lettings/questions/working_situation1.rb +++ b/app/models/form/lettings/questions/working_situation1.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::WorkingSituation1 < ::Form::Question def initialize(id, hsh, page) super @id = "ecstat1" - @check_answer_label = "Lead tenant’s working situation" - @header = "Which of these best describes the lead tenant’s working situation?" @type = "radio" @check_answers_card_number = 1 - @hint_text = form.start_year_after_2024? ? "" : "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/subsections/household_characteristics.rb b/app/models/form/lettings/subsections/household_characteristics.rb index b74cc3792..e95cdf19c 100644 --- a/app/models/form/lettings/subsections/household_characteristics.rb +++ b/app/models/form/lettings/subsections/household_characteristics.rb @@ -35,7 +35,6 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 2), (Form::Lettings::Pages::PartnerUnder16ValueCheck.new("relationship_2_partner_under_16_value_check", nil, self, person_index: 2) if form.start_year_after_2024?), (Form::Lettings::Pages::MultiplePartnersValueCheck.new("relationship_2_multiple_partners_value_check", nil, self, person_index: 2) if form.start_year_after_2024?), - Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 2, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 2), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 2), @@ -56,7 +55,6 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 3), (Form::Lettings::Pages::PartnerUnder16ValueCheck.new("relationship_3_partner_under_16_value_check", nil, self, person_index: 3) if form.start_year_after_2024?), (Form::Lettings::Pages::MultiplePartnersValueCheck.new("relationship_3_multiple_partners_value_check", nil, self, person_index: 3) if form.start_year_after_2024?), - Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 3, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 3), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 3), @@ -77,7 +75,6 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 4), (Form::Lettings::Pages::PartnerUnder16ValueCheck.new("relationship_4_partner_under_16_value_check", nil, self, person_index: 4) if form.start_year_after_2024?), (Form::Lettings::Pages::MultiplePartnersValueCheck.new("relationship_4_multiple_partners_value_check", nil, self, person_index: 4) if form.start_year_after_2024?), - Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 4, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 4), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 4), @@ -98,7 +95,6 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 5), (Form::Lettings::Pages::PartnerUnder16ValueCheck.new("relationship_5_partner_under_16_value_check", nil, self, person_index: 5) if form.start_year_after_2024?), (Form::Lettings::Pages::MultiplePartnersValueCheck.new("relationship_5_multiple_partners_value_check", nil, self, person_index: 5) if form.start_year_after_2024?), - Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 5, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 5), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 5), @@ -119,7 +115,6 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 6), (Form::Lettings::Pages::PartnerUnder16ValueCheck.new("relationship_6_partner_under_16_value_check", nil, self, person_index: 6) if form.start_year_after_2024?), (Form::Lettings::Pages::MultiplePartnersValueCheck.new("relationship_6_multiple_partners_value_check", nil, self, person_index: 6) if form.start_year_after_2024?), - Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 6, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 6), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 6), @@ -140,7 +135,6 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 7), (Form::Lettings::Pages::PartnerUnder16ValueCheck.new("relationship_7_partner_under_16_value_check", nil, self, person_index: 7) if form.start_year_after_2024?), (Form::Lettings::Pages::MultiplePartnersValueCheck.new("relationship_7_multiple_partners_value_check", nil, self, person_index: 7) if form.start_year_after_2024?), - Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 7, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 7), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 7), @@ -161,7 +155,6 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 8), (Form::Lettings::Pages::PartnerUnder16ValueCheck.new("relationship_8_partner_under_16_value_check", nil, self, person_index: 8) if form.start_year_after_2024?), (Form::Lettings::Pages::MultiplePartnersValueCheck.new("relationship_8_multiple_partners_value_check", nil, self, person_index: 8) if form.start_year_after_2024?), - Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 8, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 8), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 8), diff --git a/config/locales/forms/2023/lettings/household_characteristics.en.yml b/config/locales/forms/2023/lettings/household_characteristics.en.yml new file mode 100644 index 000000000..1f175adbc --- /dev/null +++ b/config/locales/forms/2023/lettings/household_characteristics.en.yml @@ -0,0 +1,323 @@ +en: + forms: + 2023: + lettings: + household_characteristics: + declaration: + page_header: "Ministry of Housing, Communities and Local Government privacy notice" + check_answer_label: "Tenant has seen the privacy notice" + hint_text: "" + question_text: "Declaration" + + hhmemb: + page_header: "" + check_answer_label: "Number of household members" + hint_text: "You can provide details for a maximum of 8 people." + question_text: "How many people live in the household for this letting?" + + age1: + page_header: "" + age1_known: + check_answer_label: "" + hint_text: "The ’lead’ or ’main’ tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Do you know the lead tenant’s age?" + age1: + check_answer_label: "Lead tenant’s age" + hint_text: "" + question_text: "Age" + + sex1: + page_header: "" + check_answer_label: "Lead tenant’s gender identity" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Which of these best describes the lead tenant’s gender identity?" + + ethnic_group: + page_header: "" + check_answer_label: "Lead tenant’s ethnic group" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "What is the lead tenant’s ethnic group?" + + ethnic: + ethnic_background_black: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Which of the following best describes lead tenant’s Black, African, Caribbean or Black British background?" + ethnic_background_asian: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Which of the following best describes lead tenant’s Asian or Asian British background?" + ethnic_background_arab: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Which of the following best describes the lead tenant’s Arab background?" + ethnic_background_mixed: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Which of the following best describes lead tenant’s Mixed or Multiple ethnic groups background?" + ethnic_background_white: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Which of the following best describes lead tenant’s White background?" + + national: + page_header: "" + check_answer_label: "Lead tenant’s nationality" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "What is the nationality of the lead tenant?" + + ecstat1: + page_header: "" + check_answer_label: "Lead tenant’s working situation" + hint_text: "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." + question_text: "Which of these best describes the lead tenant’s working situation?" + + details_known_2: + page_header: "You’ve given us the details for 1 person in the household" + check_answer_label: "Details known for person 2" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 2?" + + relat2: + page_header: "" + check_answer_label: "Person 2’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 2’s relationship to the lead tenant?" + + age2: + page_header: "" + age2_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 2’s age?" + age2: + check_answer_label: "Person 2’s age" + hint_text: "" + question_text: "Age" + + sex2: + page_header: "" + check_answer_label: "Person 2’s gender identity" + hint_text: "" + question_text: "Which of these best describes person 2’s gender identity?" + + ecstat2: + page_header: "" + check_answer_label: "Person 2’s working situation" + hint_text: "" + question_text: "Which of these best describes person 2’s working situation?" + + details_known_3: + page_header: "You’ve given us the details for 2 people in the household" + check_answer_label: "Details known for person 3" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 3?" + + relat3: + page_header: "" + check_answer_label: "Person 3’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 3’s relationship to the lead tenant?" + + age3: + page_header: "" + age3_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 3’s age?" + age3: + check_answer_label: "Person 3’s age" + hint_text: "" + question_text: "Age" + + sex3: + page_header: "" + check_answer_label: "Person 3’s gender identity" + hint_text: "" + question_text: "Which of these best describes person 3’s gender identity?" + + ecstat3: + page_header: "" + check_answer_label: "Person 3’s working situation" + hint_text: "" + question_text: "Which of these best describes person 3’s working situation?" + + details_known_4: + page_header: "You’ve given us the details for 3 people in the household" + check_answer_label: "Details known for person 4" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 4?" + + relat4: + page_header: "" + check_answer_label: "Person 4’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 4’s relationship to the lead tenant?" + + age4: + page_header: "" + age4_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 4’s age?" + age4: + check_answer_label: "Person 4’s age" + hint_text: "" + question_text: "Age" + + sex4: + page_header: "" + check_answer_label: "Person 4’s gender identity" + hint_text: "" + question_text: "Which of these best describes person 4’s gender identity?" + + ecstat4: + page_header: "" + check_answer_label: "Person 4’s working situation" + hint_text: "" + question_text: "Which of these best describes person 4’s working situation?" + + details_known_5: + page_header: "You’ve given us the details for 4 people in the household" + check_answer_label: "Details known for person 5" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 5?" + + relat5: + page_header: "" + check_answer_label: "Person 5’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 5’s relationship to the lead tenant?" + + age5: + page_header: "" + age5_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 5’s age?" + age5: + check_answer_label: "Person 5’s age" + hint_text: "" + question_text: "Age" + + sex5: + page_header: "" + check_answer_label: "Person 5’s gender identity" + hint_text: "" + question_text: "Which of these best describes person 5’s gender identity?" + + ecstat5: + page_header: "" + check_answer_label: "Person 5’s working situation" + hint_text: "" + question_text: "Which of these best describes person 5’s working situation?" + + details_known_6: + page_header: "You’ve given us the details for 5 people in the household" + check_answer_label: "Details known for person 6" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 6?" + + relat6: + page_header: "" + check_answer_label: "Person 6’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 6’s relationship to the lead tenant?" + + age6: + page_header: "" + age6_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 6’s age?" + age6: + check_answer_label: "Person 6’s age" + hint_text: "" + question_text: "Age" + + sex6: + page_header: "" + check_answer_label: "Person 6’s gender identity" + hint_text: "" + question_text: "Which of these best describes person 6’s gender identity?" + + ecstat6: + page_header: "" + check_answer_label: "Person 6’s working situation" + hint_text: "" + question_text: "Which of these best describes person 6’s working situation?" + + details_known_7: + page_header: "You’ve given us the details for 6 people in the household" + check_answer_label: "Details known for person 7" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 7?" + + relat7: + page_header: "" + check_answer_label: "Person 7’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 7’s relationship to the lead tenant?" + + age7: + page_header: "" + age7_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 7’s age?" + age7: + check_answer_label: "Person 7’s age" + hint_text: "" + question_text: "Age" + + sex7: + page_header: "" + check_answer_label: "Person 7’s gender identity" + hint_text: "" + question_text: "Which of these best describes person 7’s gender identity?" + + ecstat7: + page_header: "" + check_answer_label: "Person 7’s working situation" + hint_text: "" + question_text: "Which of these best describes person 7’s working situation?" + + details_known_8: + page_header: "You’ve given us the details for 7 people in the household" + check_answer_label: "Details known for person 8" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 8?" + + relat8: + page_header: "" + check_answer_label: "Person 8’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 8’s relationship to the lead tenant?" + + age8: + page_header: "" + age8_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 8’s age?" + age8: + check_answer_label: "Person 8’s age" + hint_text: "" + question_text: "Age" + + sex8: + page_header: "" + check_answer_label: "Person 8’s gender identity" + hint_text: "" + question_text: "Which of these best describes person 8’s gender identity?" + + ecstat8: + page_header: "" + check_answer_label: "Person 8’s working situation" + hint_text: "" + question_text: "Which of these best describes person 8’s working situation?" \ No newline at end of file diff --git a/config/locales/forms/2024/sales/lettings/household_characteristics.en.yml b/config/locales/forms/2024/sales/lettings/household_characteristics.en.yml new file mode 100644 index 000000000..04a311f06 --- /dev/null +++ b/config/locales/forms/2024/sales/lettings/household_characteristics.en.yml @@ -0,0 +1,322 @@ +en: + forms: + 2024: + lettings: + household_characteristics: + hhmemb: + page_header: "" + check_answer_label: "Number of household members" + hint_text: "You can provide details for a maximum of 8 people." + question_text: "How many people live in the household for this letting?" + + age1: + page_header: "" + age1_known: + check_answer_label: "" + hint_text: "The ’lead’ or ’main’ tenant is the person in the household who does the most paid work. If several people do the same amount of paid work, the lead tenant is whoever is the oldest." + question_text: "Do you know the lead tenant’s age?" + age1: + check_answer_label: "Lead tenant’s age" + hint_text: "" + question_text: "Age" + + sex1: + page_header: "" + check_answer_label: "Lead tenant’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes the lead tenant’s gender identity?" + + ethnic_group: + page_header: "" + check_answer_label: "Lead tenant’s ethnic group" + hint_text: "" + question_text: "What is the lead tenant’s ethnic group?" + + ethnic: + ethnic_background_black: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "" + question_text: "Which of the following best describes lead tenant’s Black, African, Caribbean or Black British background?" + ethnic_background_asian: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "" + question_text: "Which of the following best describes lead tenant’s Asian or Asian British background?" + ethnic_background_arab: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "" + question_text: "Which of the following best describes the lead tenant’s Arab background?" + ethnic_background_mixed: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "" + question_text: "Which of the following best describes lead tenant’s Mixed or Multiple ethnic groups background?" + ethnic_background_white: + page_header: "" + check_answer_label: "Lead tenant’s ethnic background" + hint_text: "" + question_text: "Which of the following best describes lead tenant’s White background?" + + nationality_all: + page_header: "" + nationality_all: + check_answer_label: "Lead tenant’s nationality" + hint_text: "" + question_text: "Enter a nationality" + nationality_all_group: + check_answer_label: "Lead tenant’s nationality" + hint_text: "If the lead tenant is a dual national of the United Kingdom and another country, enter United Kingdom. If they are a dual national of two other countries, the tenant should decide which country to enter." + question_text: "What is the nationality of the lead tenant?" + + ecstat1: + page_header: "" + check_answer_label: "Lead tenant’s working situation" + hint_text: "" + question_text: "Which of these best describes the lead tenant’s working situation?" + + details_known_2: + page_header: "You’ve given us the details for 1 person in the household" + check_answer_label: "Details known for person 2" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 2?" + + relat2: + page_header: "" + check_answer_label: "Person 2’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 2’s relationship to the lead tenant?" + + age2: + page_header: "" + age2_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 2’s age?" + age2: + check_answer_label: "Person 2’s age" + hint_text: "Answer 1 for children aged under 1 year old" + question_text: "Age" + + sex2: + page_header: "" + check_answer_label: "Person 2’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes person 2’s gender identity?" + + ecstat2: + page_header: "" + check_answer_label: "Person 2’s working situation" + hint_text: "" + question_text: "Which of these best describes person 2’s working situation?" + + details_known_3: + page_header: "You’ve given us the details for 2 people in the household" + check_answer_label: "Details known for person 3" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 3?" + + relat3: + page_header: "" + check_answer_label: "Person 3’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 3’s relationship to the lead tenant?" + + age3: + page_header: "" + age3_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 3’s age?" + age3: + check_answer_label: "Person 3’s age" + hint_text: "Answer 1 for children aged under 1 year old" + question_text: "Age" + + sex3: + page_header: "" + check_answer_label: "Person 3’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes person 3’s gender identity?" + + ecstat3: + page_header: "" + check_answer_label: "Person 3’s working situation" + hint_text: "" + question_text: "Which of these best describes person 3’s working situation?" + + details_known_4: + page_header: "You’ve given us the details for 3 people in the household" + check_answer_label: "Details known for person 4" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 4?" + + relat4: + page_header: "" + check_answer_label: "Person 4’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 4’s relationship to the lead tenant?" + + age4: + page_header: "" + age4_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 4’s age?" + age4: + check_answer_label: "Person 4’s age" + hint_text: "Answer 1 for children aged under 1 year old" + question_text: "Age" + + sex4: + page_header: "" + check_answer_label: "Person 4’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes person 4’s gender identity?" + + ecstat4: + page_header: "" + check_answer_label: "Person 4’s working situation" + hint_text: "" + question_text: "Which of these best describes person 4’s working situation?" + + details_known_5: + page_header: "You’ve given us the details for 4 people in the household" + check_answer_label: "Details known for person 5" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 5?" + + relat5: + page_header: "" + check_answer_label: "Person 5’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 5’s relationship to the lead tenant?" + + age5: + page_header: "" + age5_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 5’s age?" + age5: + check_answer_label: "Person 5’s age" + hint_text: "Answer 1 for children aged under 1 year old" + question_text: "Age" + + sex5: + page_header: "" + check_answer_label: "Person 5’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes person 5’s gender identity?" + + ecstat5: + page_header: "" + check_answer_label: "Person 5’s working situation" + hint_text: "" + question_text: "Which of these best describes person 5’s working situation?" + + details_known_6: + page_header: "You’ve given us the details for 5 people in the household" + check_answer_label: "Details known for person 6" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 6?" + + relat6: + page_header: "" + check_answer_label: "Person 6’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 6’s relationship to the lead tenant?" + + age6: + page_header: "" + age6_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 6’s age?" + age6: + check_answer_label: "Person 6’s age" + hint_text: "Answer 1 for children aged under 1 year old" + question_text: "Age" + + sex6: + page_header: "" + check_answer_label: "Person 6’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes person 6’s gender identity?" + + ecstat6: + page_header: "" + check_answer_label: "Person 6’s working situation" + hint_text: "" + question_text: "Which of these best describes person 6’s working situation?" + + details_known_7: + page_header: "You’ve given us the details for 6 people in the household" + check_answer_label: "Details known for person 7" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 7?" + + relat7: + page_header: "" + check_answer_label: "Person 7’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 7’s relationship to the lead tenant?" + + age7: + page_header: "" + age7_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 7’s age?" + age7: + check_answer_label: "Person 7’s age" + hint_text: "Answer 1 for children aged under 1 year old" + question_text: "Age" + + sex7: + page_header: "" + check_answer_label: "Person 7’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes person 7’s gender identity?" + + ecstat7: + page_header: "" + check_answer_label: "Person 7’s working situation" + hint_text: "" + question_text: "Which of these best describes person 7’s working situation?" + + details_known_8: + page_header: "You’ve given us the details for 7 people in the household" + check_answer_label: "Details known for person 8" + hint_text: "You must provide details for everyone in the household if you know them." + question_text: "Do you know details for person 8?" + + relat8: + page_header: "" + check_answer_label: "Person 8’s relationship to the lead tenant" + hint_text: "" + question_text: "What is person 8’s relationship to the lead tenant?" + + age8: + page_header: "" + age8_known: + check_answer_label: "" + hint_text: "" + question_text: "Do you know person 8’s age?" + age8: + check_answer_label: "Person 8’s age" + hint_text: "Answer 1 for children aged under 1 year old" + question_text: "Age" + + sex8: + page_header: "" + check_answer_label: "Person 8’s gender identity" + hint_text: "This should be however they personally choose to identify from the options below. This may or may not be the same as their biological sex or the sex they were assigned at birth." + question_text: "Which of these best describes person 8’s gender identity?" + + ecstat8: + page_header: "" + check_answer_label: "Person 8’s working situation" + hint_text: "" + question_text: "Which of these best describes person 8’s working situation?" \ No newline at end of file diff --git a/spec/models/form/lettings/pages/person_age_spec.rb b/spec/models/form/lettings/pages/person_age_spec.rb index c9a57c138..dfcc82406 100644 --- a/spec/models/form/lettings/pages/person_age_spec.rb +++ b/spec/models/form/lettings/pages/person_age_spec.rb @@ -1,12 +1,11 @@ require "rails_helper" RSpec.describe Form::Lettings::Pages::PersonAge, type: :model do - subject(:page) { described_class.new(nil, page_definition, subsection, person_index:, person_type:) } + subject(:page) { described_class.new(nil, page_definition, subsection, person_index:) } let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_after_2024?: false)) } let(:person_index) { 2 } - let(:person_type) { "non_child" } it "has correct subsection" do expect(page.subsection).to eq(subsection) @@ -21,30 +20,14 @@ RSpec.describe Form::Lettings::Pages::PersonAge, type: :model do expect(page.questions.map(&:id)).to eq(%w[age2_known age2]) end - context "when child" do - let(:person_type) { "child" } - - it "has the correct id" do - expect(page.id).to eq("person_2_age_child") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq( - [{ "details_known_2" => 0, "person_2_child_relation?" => true }], - ) - end + it "has the correct id" do + expect(page.id).to eq("person_2_age") end - context "when not child" do - it "has the correct id" do - expect(page.id).to eq("person_2_age_non_child") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq( - [{ "details_known_2" => 0, "person_2_child_relation?" => false }], - ) - end + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "details_known_2" => 0 }], + ) end end @@ -56,12 +39,12 @@ RSpec.describe Form::Lettings::Pages::PersonAge, type: :model do end it "has the correct id" do - expect(page.id).to eq("person_3_age_non_child") + expect(page.id).to eq("person_3_age") end it "has correct depends_on" do expect(page.depends_on).to eq( - [{ "details_known_3" => 0, "person_3_child_relation?" => false }], + [{ "details_known_3" => 0 }], ) end end diff --git a/spec/models/form/lettings/questions/age_spec.rb b/spec/models/form/lettings/questions/age_spec.rb index 4ec1ee985..e456007f7 100644 --- a/spec/models/form/lettings/questions/age_spec.rb +++ b/spec/models/form/lettings/questions/age_spec.rb @@ -1,12 +1,11 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::Age, type: :model do - subject(:question) { described_class.new(nil, question_definition, page, person_index:, person_type:) } + subject(:question) { described_class.new(nil, question_definition, page, person_index:) } let(:question_definition) { nil } let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 4), start_year_after_2024?: false))) } let(:person_index) { 2 } - let(:person_type) { "non_child" } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/lettings/subsections/household_characteristics_spec.rb b/spec/models/form/lettings/subsections/household_characteristics_spec.rb index c71ee165c..e199f55d3 100644 --- a/spec/models/form/lettings/subsections/household_characteristics_spec.rb +++ b/spec/models/form/lettings/subsections/household_characteristics_spec.rb @@ -49,8 +49,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod working_situation_lead_tenant_over_retirement_value_check person_2_known person_2_relationship_to_lead - person_2_age_child - person_2_age_non_child + person_2_age no_females_pregnant_household_person_2_age_value_check females_in_soft_age_range_in_pregnant_household_person_2_age_value_check age_2_under_retirement_value_check @@ -64,8 +63,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod working_situation_2_over_retirement_value_check person_3_known person_3_relationship_to_lead - person_3_age_child - person_3_age_non_child + person_3_age no_females_pregnant_household_person_3_age_value_check females_in_soft_age_range_in_pregnant_household_person_3_age_value_check age_3_under_retirement_value_check @@ -79,8 +77,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod working_situation_3_over_retirement_value_check person_4_known person_4_relationship_to_lead - person_4_age_child - person_4_age_non_child + person_4_age no_females_pregnant_household_person_4_age_value_check females_in_soft_age_range_in_pregnant_household_person_4_age_value_check age_4_under_retirement_value_check @@ -94,8 +91,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod working_situation_4_over_retirement_value_check person_5_known person_5_relationship_to_lead - person_5_age_child - person_5_age_non_child + person_5_age no_females_pregnant_household_person_5_age_value_check females_in_soft_age_range_in_pregnant_household_person_5_age_value_check age_5_under_retirement_value_check @@ -109,8 +105,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod working_situation_5_over_retirement_value_check person_6_known person_6_relationship_to_lead - person_6_age_child - person_6_age_non_child + person_6_age no_females_pregnant_household_person_6_age_value_check females_in_soft_age_range_in_pregnant_household_person_6_age_value_check age_6_under_retirement_value_check @@ -124,8 +119,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod working_situation_6_over_retirement_value_check person_7_known person_7_relationship_to_lead - person_7_age_child - person_7_age_non_child + person_7_age no_females_pregnant_household_person_7_age_value_check females_in_soft_age_range_in_pregnant_household_person_7_age_value_check age_7_under_retirement_value_check @@ -139,8 +133,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod working_situation_7_over_retirement_value_check person_8_known person_8_relationship_to_lead - person_8_age_child - person_8_age_non_child + person_8_age no_females_pregnant_household_person_8_age_value_check females_in_soft_age_range_in_pregnant_household_person_8_age_value_check age_8_under_retirement_value_check @@ -191,8 +184,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_2_relationship_to_lead relationship_2_partner_under_16_value_check relationship_2_multiple_partners_value_check - person_2_age_child - person_2_age_non_child + person_2_age no_females_pregnant_household_person_2_age_value_check females_in_soft_age_range_in_pregnant_household_person_2_age_value_check age_2_under_retirement_value_check @@ -209,8 +201,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_3_relationship_to_lead relationship_3_partner_under_16_value_check relationship_3_multiple_partners_value_check - person_3_age_child - person_3_age_non_child + person_3_age no_females_pregnant_household_person_3_age_value_check females_in_soft_age_range_in_pregnant_household_person_3_age_value_check age_3_under_retirement_value_check @@ -227,8 +218,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_4_relationship_to_lead relationship_4_partner_under_16_value_check relationship_4_multiple_partners_value_check - person_4_age_child - person_4_age_non_child + person_4_age no_females_pregnant_household_person_4_age_value_check females_in_soft_age_range_in_pregnant_household_person_4_age_value_check age_4_under_retirement_value_check @@ -245,8 +235,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_5_relationship_to_lead relationship_5_partner_under_16_value_check relationship_5_multiple_partners_value_check - person_5_age_child - person_5_age_non_child + person_5_age no_females_pregnant_household_person_5_age_value_check females_in_soft_age_range_in_pregnant_household_person_5_age_value_check age_5_under_retirement_value_check @@ -263,8 +252,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_6_relationship_to_lead relationship_6_partner_under_16_value_check relationship_6_multiple_partners_value_check - person_6_age_child - person_6_age_non_child + person_6_age no_females_pregnant_household_person_6_age_value_check females_in_soft_age_range_in_pregnant_household_person_6_age_value_check age_6_under_retirement_value_check @@ -281,8 +269,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_7_relationship_to_lead relationship_7_partner_under_16_value_check relationship_7_multiple_partners_value_check - person_7_age_child - person_7_age_non_child + person_7_age no_females_pregnant_household_person_7_age_value_check females_in_soft_age_range_in_pregnant_household_person_7_age_value_check age_7_under_retirement_value_check @@ -299,8 +286,7 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_8_relationship_to_lead relationship_8_partner_under_16_value_check relationship_8_multiple_partners_value_check - person_8_age_child - person_8_age_non_child + person_8_age no_females_pregnant_household_person_8_age_value_check females_in_soft_age_range_in_pregnant_household_person_8_age_value_check age_8_under_retirement_value_check From 3424cbc550ab9b82d98144a16bd9a688a13e6545 Mon Sep 17 00:00:00 2001 From: Rachael Booth Date: Wed, 30 Oct 2024 11:45:26 +0000 Subject: [PATCH 2/6] CLDC-3366: Use single page for rent soft validation (#2724) * CLDC-3366: Use single page for rent soft validation * Fix tests --- .../lettings/pages/max_rent_value_check.rb | 24 ----------- .../lettings/pages/min_rent_value_check.rb | 24 ----------- .../form/lettings/pages/rent_value_check.rb | 35 ++++++++++++++++ .../questions/max_rent_value_check.rb | 15 ------- ...ent_value_check.rb => rent_value_check.rb} | 4 +- .../subsections/income_and_benefits.rb | 3 +- .../subsections/property_information.rb | 6 +-- app/models/validations/soft_validations.rb | 8 ++++ .../pages/max_rent_value_check_spec.rb | 33 --------------- .../pages/min_rent_value_check_spec.rb | 42 ------------------- .../questions/max_rent_value_check_spec.rb | 32 -------------- .../questions/min_rent_value_check_spec.rb | 32 -------------- .../subsections/income_and_benefits_spec.rb | 3 +- .../subsections/property_information_spec.rb | 42 ++----------------- spec/services/documentation_generator_spec.rb | 4 +- 15 files changed, 55 insertions(+), 252 deletions(-) delete mode 100644 app/models/form/lettings/pages/max_rent_value_check.rb delete mode 100644 app/models/form/lettings/pages/min_rent_value_check.rb create mode 100644 app/models/form/lettings/pages/rent_value_check.rb delete mode 100644 app/models/form/lettings/questions/max_rent_value_check.rb rename app/models/form/lettings/questions/{min_rent_value_check.rb => rent_value_check.rb} (77%) delete mode 100644 spec/models/form/lettings/pages/max_rent_value_check_spec.rb delete mode 100644 spec/models/form/lettings/pages/min_rent_value_check_spec.rb delete mode 100644 spec/models/form/lettings/questions/max_rent_value_check_spec.rb delete mode 100644 spec/models/form/lettings/questions/min_rent_value_check_spec.rb diff --git a/app/models/form/lettings/pages/max_rent_value_check.rb b/app/models/form/lettings/pages/max_rent_value_check.rb deleted file mode 100644 index f3280420b..000000000 --- a/app/models/form/lettings/pages/max_rent_value_check.rb +++ /dev/null @@ -1,24 +0,0 @@ -class Form::Lettings::Pages::MaxRentValueCheck < ::Form::Page - def initialize(id, hsh, subsection, check_answers_card_number: nil) - super(id, hsh, subsection) - @depends_on = [{ "rent_in_soft_max_range?" => true }] - @title_text = { - "translation" => "soft_validations.rent.outside_range_title", - "arguments" => [{ - "key" => "brent", - "label" => true, - "i18n_template" => "brent", - }], - } - @informative_text = I18n.t("soft_validations.rent.informative_text", higher_or_lower: "higher") - @check_answers_card_number = check_answers_card_number - end - - def questions - @questions ||= [Form::Lettings::Questions::MaxRentValueCheck.new(nil, nil, self, check_answers_card_number: @check_answers_card_number)] - end - - def interruption_screen_question_ids - %w[brent period startdate uprn postcode_full la beds rent_type needstype] - end -end diff --git a/app/models/form/lettings/pages/min_rent_value_check.rb b/app/models/form/lettings/pages/min_rent_value_check.rb deleted file mode 100644 index ee26b4d7e..000000000 --- a/app/models/form/lettings/pages/min_rent_value_check.rb +++ /dev/null @@ -1,24 +0,0 @@ -class Form::Lettings::Pages::MinRentValueCheck < ::Form::Page - def initialize(id, hsh, subsection, check_answers_card_number: nil) - super(id, hsh, subsection) - @depends_on = [{ "rent_in_soft_min_range?" => true }] - @title_text = { - "translation" => "soft_validations.rent.outside_range_title", - "arguments" => [{ - "key" => "brent", - "label" => true, - "i18n_template" => "brent", - }], - } - @informative_text = I18n.t("soft_validations.rent.informative_text", higher_or_lower: "lower") - @check_answers_card_number = check_answers_card_number - end - - def questions - @questions ||= [Form::Lettings::Questions::MinRentValueCheck.new(nil, nil, self, check_answers_card_number: @check_answers_card_number)] - end - - def interruption_screen_question_ids - %w[brent period startdate uprn postcode_full la beds rent_type needstype] - end -end diff --git a/app/models/form/lettings/pages/rent_value_check.rb b/app/models/form/lettings/pages/rent_value_check.rb new file mode 100644 index 000000000..a80dc7339 --- /dev/null +++ b/app/models/form/lettings/pages/rent_value_check.rb @@ -0,0 +1,35 @@ +class Form::Lettings::Pages::RentValueCheck < ::Form::Page + def initialize(id, hsh, subsection, check_answers_card_number: nil) + super(id, hsh, subsection) + @depends_on = [{ "rent_soft_validation_triggered?" => true }] + @title_text = { + "translation" => "soft_validations.rent.outside_range_title", + "arguments" => [ + { + "key" => "brent", + "label" => true, + "i18n_template" => "brent", + }, + ], + } + @informative_text = { + "translation" => "soft_validations.rent.informative_text", + "arguments" => [ + { + "key" => "rent_soft_validation_higher_or_lower_text", + "label" => false, + "i18n_template" => "higher_or_lower", + }, + ], + } + @check_answers_card_number = check_answers_card_number + end + + def questions + @questions ||= [Form::Lettings::Questions::RentValueCheck.new(nil, nil, self, check_answers_card_number: @check_answers_card_number)] + end + + def interruption_screen_question_ids + %w[brent period startdate uprn postcode_full la beds rent_type needstype] + end +end diff --git a/app/models/form/lettings/questions/max_rent_value_check.rb b/app/models/form/lettings/questions/max_rent_value_check.rb deleted file mode 100644 index 6936e9e36..000000000 --- a/app/models/form/lettings/questions/max_rent_value_check.rb +++ /dev/null @@ -1,15 +0,0 @@ -class Form::Lettings::Questions::MaxRentValueCheck < ::Form::Question - def initialize(id, hsh, page, check_answers_card_number:) - super(id, hsh, page) - @id = "rent_value_check" - @check_answer_label = "Total rent confirmation" - @header = "Are you sure this is correct?" - @type = "interruption_screen" - @hint_text = I18n.t("soft_validations.rent.hint_text", higher_or_lower: "higher") - @check_answers_card_number = check_answers_card_number - @answer_options = ANSWER_OPTIONS - @hidden_in_check_answers = { "depends_on" => [{ "rent_value_check" => 0 }, { "rent_value_check" => 1 }] } - end - - ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze -end diff --git a/app/models/form/lettings/questions/min_rent_value_check.rb b/app/models/form/lettings/questions/rent_value_check.rb similarity index 77% rename from app/models/form/lettings/questions/min_rent_value_check.rb rename to app/models/form/lettings/questions/rent_value_check.rb index ad4111c61..688499259 100644 --- a/app/models/form/lettings/questions/min_rent_value_check.rb +++ b/app/models/form/lettings/questions/rent_value_check.rb @@ -1,11 +1,11 @@ -class Form::Lettings::Questions::MinRentValueCheck < ::Form::Question +class Form::Lettings::Questions::RentValueCheck < ::Form::Question def initialize(id, hsh, page, check_answers_card_number:) super(id, hsh, page) @id = "rent_value_check" @check_answer_label = "Total rent confirmation" @header = "Are you sure this is correct?" @type = "interruption_screen" - @hint_text = I18n.t("soft_validations.rent.hint_text", higher_or_lower: "lower") + @hint_text = I18n.t("soft_validations.rent.hint_text") @check_answers_card_number = check_answers_card_number @answer_options = ANSWER_OPTIONS @hidden_in_check_answers = { "depends_on" => [{ "rent_value_check" => 0 }, { "rent_value_check" => 1 }] } diff --git a/app/models/form/lettings/subsections/income_and_benefits.rb b/app/models/form/lettings/subsections/income_and_benefits.rb index 1404ebf04..2be2fb9a5 100644 --- a/app/models/form/lettings/subsections/income_and_benefits.rb +++ b/app/models/form/lettings/subsections/income_and_benefits.rb @@ -24,8 +24,7 @@ class Form::Lettings::Subsections::IncomeAndBenefits < ::Form::Subsection Form::Lettings::Pages::RentBiWeekly.new(nil, nil, self), Form::Lettings::Pages::Rent4Weekly.new(nil, nil, self), Form::Lettings::Pages::RentMonthly.new(nil, nil, self), - Form::Lettings::Pages::MinRentValueCheck.new("brent_min_rent_value_check", nil, self, check_answers_card_number: 0), - Form::Lettings::Pages::MaxRentValueCheck.new("brent_max_rent_value_check", nil, self, check_answers_card_number: 0), + Form::Lettings::Pages::RentValueCheck.new("brent_rent_value_check", nil, self, check_answers_card_number: 0), Form::Lettings::Pages::SchargeValueCheck.new(nil, nil, self), Form::Lettings::Pages::PschargeValueCheck.new(nil, nil, self), Form::Lettings::Pages::SupchargValueCheck.new(nil, nil, self), diff --git a/app/models/form/lettings/subsections/property_information.rb b/app/models/form/lettings/subsections/property_information.rb index 67a22c7f5..3068faf92 100644 --- a/app/models/form/lettings/subsections/property_information.rb +++ b/app/models/form/lettings/subsections/property_information.rb @@ -10,8 +10,7 @@ class Form::Lettings::Subsections::PropertyInformation < ::Form::Subsection @pages ||= [ uprn_questions, Form::Lettings::Pages::PropertyLocalAuthority.new(nil, nil, self), - Form::Lettings::Pages::MinRentValueCheck.new("local_authority_min_rent_value_check", nil, self, check_answers_card_number: nil), - Form::Lettings::Pages::MaxRentValueCheck.new("local_authority_max_rent_value_check", nil, self, check_answers_card_number: nil), + Form::Lettings::Pages::RentValueCheck.new("local_authority_rent_value_check", nil, self, check_answers_card_number: nil), Form::Lettings::Pages::FirstTimePropertyLetAsSocialHousing.new(nil, nil, self), Form::Lettings::Pages::PropertyLetType.new(nil, nil, self), Form::Lettings::Pages::PropertyVacancyReasonNotFirstLet.new(nil, nil, self), @@ -21,8 +20,7 @@ class Form::Lettings::Subsections::PropertyInformation < ::Form::Subsection Form::Lettings::Pages::PropertyBuildingType.new(nil, nil, self), Form::Lettings::Pages::PropertyWheelchairAccessible.new(nil, nil, self), Form::Lettings::Pages::PropertyNumberOfBedrooms.new(nil, nil, self), - Form::Lettings::Pages::MinRentValueCheck.new("beds_min_rent_value_check", nil, self, check_answers_card_number: 0), - Form::Lettings::Pages::MaxRentValueCheck.new("beds_max_rent_value_check", nil, self, check_answers_card_number: 0), + Form::Lettings::Pages::RentValueCheck.new("beds_rent_value_check", nil, self, check_answers_card_number: 0), Form::Lettings::Pages::VoidDate.new(nil, nil, self), Form::Lettings::Pages::VoidDateValueCheck.new(nil, nil, self), Form::Lettings::Pages::PropertyMajorRepairs.new(nil, nil, self), diff --git a/app/models/validations/soft_validations.rb b/app/models/validations/soft_validations.rb index 41309cef0..0b76f792b 100644 --- a/app/models/validations/soft_validations.rb +++ b/app/models/validations/soft_validations.rb @@ -27,6 +27,14 @@ module Validations::SoftValidations weekly_net_income.between?(applicable_income_range.hard_min, applicable_income_range.soft_min) end + def rent_soft_validation_triggered? + rent_in_soft_min_range? || rent_in_soft_max_range? + end + + def rent_soft_validation_higher_or_lower_text + rent_in_soft_min_range? ? "lower" : "higher" + end + def rent_in_soft_min_range? return unless brent && weekly_value(brent) && startdate diff --git a/spec/models/form/lettings/pages/max_rent_value_check_spec.rb b/spec/models/form/lettings/pages/max_rent_value_check_spec.rb deleted file mode 100644 index 273272d8b..000000000 --- a/spec/models/form/lettings/pages/max_rent_value_check_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Lettings::Pages::MaxRentValueCheck, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } - - let(:page_id) { "max_rent_value_check" } - let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1))) } - - it "has correct subsection" do - expect(page.subsection).to eq(subsection) - end - - it "has correct questions" do - expect(page.questions.map(&:id)).to eq(%w[rent_value_check]) - end - - it "has the correct id" do - expect(page.id).to eq("max_rent_value_check") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq([{ "rent_in_soft_max_range?" => true }]) - end - - it "has the correct title_text" do - expect(page.title_text).to eq({ "arguments" => [{ "i18n_template" => "brent", "key" => "brent", "label" => true }], "translation" => "soft_validations.rent.outside_range_title" }) - end - - it "has the correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[brent period startdate uprn postcode_full la beds rent_type needstype]) - end -end diff --git a/spec/models/form/lettings/pages/min_rent_value_check_spec.rb b/spec/models/form/lettings/pages/min_rent_value_check_spec.rb deleted file mode 100644 index 950f2f43f..000000000 --- a/spec/models/form/lettings/pages/min_rent_value_check_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Lettings::Pages::MinRentValueCheck, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } - - let(:page_id) { "min_rent_value_check" } - let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1))) } - - it "has correct subsection" do - expect(page.subsection).to eq(subsection) - end - - it "has the correct description" do - expect(page.description).to be nil - end - - it "has correct questions" do - expect(page.questions.map(&:id)).to eq(%w[rent_value_check]) - end - - it "has the correct id" do - expect(page.id).to eq("min_rent_value_check") - end - - it "has correct depends_on" do - expect(page.depends_on).to eq( - [{ "rent_in_soft_min_range?" => true }], - ) - end - - it "has the correct title_text" do - expect(page.title_text).to eq({ - "translation" => "soft_validations.rent.outside_range_title", - "arguments" => [{ "i18n_template" => "brent", "key" => "brent", "label" => true }], - }) - end - - it "has the correct interruption_screen_question_ids" do - expect(page.interruption_screen_question_ids).to eq(%w[brent period startdate uprn postcode_full la beds rent_type needstype]) - end -end diff --git a/spec/models/form/lettings/questions/max_rent_value_check_spec.rb b/spec/models/form/lettings/questions/max_rent_value_check_spec.rb deleted file mode 100644 index 6fa0784e4..000000000 --- a/spec/models/form/lettings/questions/max_rent_value_check_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Lettings::Questions::MaxRentValueCheck, type: :model do - subject(:question) { described_class.new(nil, question_definition, page, check_answers_card_number:) } - - let(:question_definition) { nil } - let(:check_answers_card_number) { nil } - let(:page) { instance_double(Form::Page) } - - it "has correct page" do - expect(question.page).to eq(page) - end - - it "has the correct id" do - expect(question.id).to eq("rent_value_check") - end - - it "has the correct type" do - expect(question.type).to eq("interruption_screen") - end - - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "0" => { "value" => "Yes" }, - "1" => { "value" => "No" }, - }) - end - - it "has the correct hidden_in_check_answers" do - expect(question.hidden_in_check_answers).to eq({ "depends_on" => [{ "rent_value_check" => 0 }, { "rent_value_check" => 1 }] }) - end -end diff --git a/spec/models/form/lettings/questions/min_rent_value_check_spec.rb b/spec/models/form/lettings/questions/min_rent_value_check_spec.rb deleted file mode 100644 index c3d8a16bc..000000000 --- a/spec/models/form/lettings/questions/min_rent_value_check_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Lettings::Questions::MinRentValueCheck, type: :model do - subject(:question) { described_class.new(nil, question_definition, page, check_answers_card_number:) } - - let(:question_definition) { nil } - let(:check_answers_card_number) { nil } - let(:page) { instance_double(Form::Page) } - - it "has correct page" do - expect(question.page).to eq(page) - end - - it "has the correct id" do - expect(question.id).to eq("rent_value_check") - end - - it "has the correct type" do - expect(question.type).to eq("interruption_screen") - end - - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "0" => { "value" => "Yes" }, - "1" => { "value" => "No" }, - }) - end - - it "has the correct hidden_in_check_answers" do - expect(question.hidden_in_check_answers).to eq({ "depends_on" => [{ "rent_value_check" => 0 }, { "rent_value_check" => 1 }] }) - end -end diff --git a/spec/models/form/lettings/subsections/income_and_benefits_spec.rb b/spec/models/form/lettings/subsections/income_and_benefits_spec.rb index c260ff56d..4c92faaf6 100644 --- a/spec/models/form/lettings/subsections/income_and_benefits_spec.rb +++ b/spec/models/form/lettings/subsections/income_and_benefits_spec.rb @@ -30,8 +30,7 @@ RSpec.describe Form::Lettings::Subsections::IncomeAndBenefits, type: :model do rent_bi_weekly rent_4_weekly rent_monthly - brent_min_rent_value_check - brent_max_rent_value_check + brent_rent_value_check scharge_value_check pscharge_value_check supcharg_value_check diff --git a/spec/models/form/lettings/subsections/property_information_spec.rb b/spec/models/form/lettings/subsections/property_information_spec.rb index 7d406d1a7..d333ff669 100644 --- a/spec/models/form/lettings/subsections/property_information_spec.rb +++ b/spec/models/form/lettings/subsections/property_information_spec.rb @@ -17,36 +17,6 @@ RSpec.describe Form::Lettings::Subsections::PropertyInformation, type: :model do allow(form).to receive(:start_year_after_2024?).and_return(false) end - context "when 2022" do - let(:start_date) { Time.utc(2022, 2, 8) } - - it "has correct pages" do - expect(property_information.pages.compact.map(&:id)).to eq( - %w[ - property_postcode - property_local_authority - local_authority_min_rent_value_check - local_authority_max_rent_value_check - first_time_property_let_as_social_housing - property_let_type - property_vacancy_reason_not_first_let - property_vacancy_reason_first_let - property_number_of_times_relet - property_unit_type - property_building_type - property_wheelchair_accessible - property_number_of_bedrooms - beds_min_rent_value_check - beds_max_rent_value_check - void_date - void_date_value_check - property_major_repairs - property_major_repairs_value_check - ], - ) - end - end - context "when 2023" do let(:start_date) { Time.utc(2023, 2, 8) } @@ -57,8 +27,7 @@ RSpec.describe Form::Lettings::Subsections::PropertyInformation, type: :model do uprn_confirmation address property_local_authority - local_authority_min_rent_value_check - local_authority_max_rent_value_check + local_authority_rent_value_check first_time_property_let_as_social_housing property_let_type property_vacancy_reason_not_first_let @@ -68,8 +37,7 @@ RSpec.describe Form::Lettings::Subsections::PropertyInformation, type: :model do property_building_type property_wheelchair_accessible property_number_of_bedrooms - beds_min_rent_value_check - beds_max_rent_value_check + beds_rent_value_check void_date void_date_value_check property_major_repairs @@ -96,8 +64,7 @@ RSpec.describe Form::Lettings::Subsections::PropertyInformation, type: :model do uprn_selection address property_local_authority - local_authority_min_rent_value_check - local_authority_max_rent_value_check + local_authority_rent_value_check first_time_property_let_as_social_housing property_let_type property_vacancy_reason_not_first_let @@ -106,8 +73,7 @@ RSpec.describe Form::Lettings::Subsections::PropertyInformation, type: :model do property_building_type property_wheelchair_accessible property_number_of_bedrooms - beds_min_rent_value_check - beds_max_rent_value_check + beds_rent_value_check void_date void_date_value_check property_major_repairs diff --git a/spec/services/documentation_generator_spec.rb b/spec/services/documentation_generator_spec.rb index 47bc813f7..6f4714d01 100644 --- a/spec/services/documentation_generator_spec.rb +++ b/spec/services/documentation_generator_spec.rb @@ -89,7 +89,7 @@ describe DocumentationGenerator do end describe ":describe_soft_validations" do - let(:all_validation_methods) { ["rent_in_soft_min_range?"] } + let(:all_validation_methods) { ["rent_soft_validation_triggered?"] } let(:response) do { "choices" => [{ "message" => { "tool_calls" => [{ "function" => { "arguments" => "{\n \"description\": \"Validates the format.\",\n \"validation_type\": \"format\",\n \"other_validated_models\": \"User\"}" } }] } }] } @@ -100,7 +100,7 @@ describe DocumentationGenerator do it "creates new validation documentation records" do expect { described_class.new.describe_soft_validations(client, all_validation_methods, all_helper_methods, log_type) }.to change(LogValidation, :count) - expect(LogValidation.where(validation_name: "rent_in_soft_min_range?").count).to be_positive + expect(LogValidation.where(validation_name: "rent_soft_validation_triggered?").count).to be_positive any_validation = LogValidation.first expect(any_validation.description).to eq("Validates the format.") expect(any_validation.field).not_to be_empty From a00489b7d78ce7ac39e613050b8e576d9c826a14 Mon Sep 17 00:00:00 2001 From: Rachael Booth Date: Wed, 30 Oct 2024 12:18:51 +0000 Subject: [PATCH 3/6] CLDC-3659: Pull sales household situation questions copy into translation file (#2701) * CLDC-3659: Pull sales household situation questions copy into translation file * Fix header->question_text --- .../form/sales/pages/last_accommodation.rb | 1 + .../form/sales/pages/last_accommodation_la.rb | 1 + .../sales/questions/buyer1_previous_tenure.rb | 2 - .../form/sales/questions/buyer2_living_in.rb | 3 -- .../sales/questions/buyers_organisations.rb | 7 --- .../form/sales/questions/previous_la_known.rb | 4 +- .../form/sales/questions/previous_postcode.rb | 3 +- .../questions/previous_postcode_known.rb | 4 +- .../sales/questions/previous_tenure_buyer2.rb | 3 -- app/models/form/sales/questions/prevloc.rb | 3 +- .../2023/sales/household_situation.en.yml | 50 +++++++++++++++++++ .../2024/sales/household_situation.en.yml | 50 +++++++++++++++++++ 12 files changed, 106 insertions(+), 25 deletions(-) create mode 100644 config/locales/forms/2023/sales/household_situation.en.yml create mode 100644 config/locales/forms/2024/sales/household_situation.en.yml diff --git a/app/models/form/sales/pages/last_accommodation.rb b/app/models/form/sales/pages/last_accommodation.rb index 457da99b1..f9d167028 100644 --- a/app/models/form/sales/pages/last_accommodation.rb +++ b/app/models/form/sales/pages/last_accommodation.rb @@ -2,6 +2,7 @@ class Form::Sales::Pages::LastAccommodation < ::Form::Page def initialize(id, hsh, subsection) super @id = "last_accommodation" + @copy_key = "sales.household_situation.last_accommodation" end def questions diff --git a/app/models/form/sales/pages/last_accommodation_la.rb b/app/models/form/sales/pages/last_accommodation_la.rb index 1c126a28d..9cae326bf 100644 --- a/app/models/form/sales/pages/last_accommodation_la.rb +++ b/app/models/form/sales/pages/last_accommodation_la.rb @@ -2,6 +2,7 @@ class Form::Sales::Pages::LastAccommodationLa < ::Form::Page def initialize(id, hsh, subsection) super @id = "last_accommodation_la" + @copy_key = "sales.household_situation.last_accommodation_la" @depends_on = [{ "is_previous_la_inferred" => false, }] diff --git a/app/models/form/sales/questions/buyer1_previous_tenure.rb b/app/models/form/sales/questions/buyer1_previous_tenure.rb index 4f560f10d..aea90af30 100644 --- a/app/models/form/sales/questions/buyer1_previous_tenure.rb +++ b/app/models/form/sales/questions/buyer1_previous_tenure.rb @@ -2,8 +2,6 @@ class Form::Sales::Questions::Buyer1PreviousTenure < ::Form::Question def initialize(id, hsh, page) super @id = "prevten" - @check_answer_label = "Buyer 1’s previous tenure" - @header = "What was buyer 1’s previous tenure?" @type = "radio" @answer_options = answer_options @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] diff --git a/app/models/form/sales/questions/buyer2_living_in.rb b/app/models/form/sales/questions/buyer2_living_in.rb index 83b1712fe..0939d119f 100644 --- a/app/models/form/sales/questions/buyer2_living_in.rb +++ b/app/models/form/sales/questions/buyer2_living_in.rb @@ -2,10 +2,7 @@ class Form::Sales::Questions::Buyer2LivingIn < ::Form::Question def initialize(id, hsh, page) super @id = "buy2living" - @check_answer_label = "Buyer 2 living at the same address" - @header = "At the time of purchase, was buyer 2 living at the same address as buyer 1?" @type = "radio" - @hint_text = "" @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/sales/questions/buyers_organisations.rb b/app/models/form/sales/questions/buyers_organisations.rb index 714f7a2e3..727a65ad0 100644 --- a/app/models/form/sales/questions/buyers_organisations.rb +++ b/app/models/form/sales/questions/buyers_organisations.rb @@ -2,10 +2,7 @@ class Form::Sales::Questions::BuyersOrganisations < ::Form::Question def initialize(id, hsh, page) super @id = "buyers_organisations" - @check_answer_label = "Organisations buyers were registered with" - @header = "What organisations were the buyers registered with?" @type = "checkbox" - @hint_text = "Select all that apply. This question is optional. If no options are applicable, leave the options blank, and select save and continue." @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end @@ -27,9 +24,5 @@ class Form::Sales::Questions::BuyersOrganisations < ::Form::Question } end - def unanswered_error_message - "At least one option must be selected of these four" - end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 59, 2024 => 61 }.freeze end diff --git a/app/models/form/sales/questions/previous_la_known.rb b/app/models/form/sales/questions/previous_la_known.rb index 7a31fbd74..a54a98d11 100644 --- a/app/models/form/sales/questions/previous_la_known.rb +++ b/app/models/form/sales/questions/previous_la_known.rb @@ -2,11 +2,9 @@ class Form::Sales::Questions::PreviousLaKnown < ::Form::Question def initialize(id, hsh, page) super @id = "previous_la_known" - @check_answer_label = "Local authority of buyer 1’s last settled accommodation" - @header = "Do you know the local authority of buyer 1’s last settled accommodation?" + @copy_key = "sales.household_situation.last_accommodation_la.previous_la_known" @type = "radio" @answer_options = ANSWER_OPTIONS - @hint_text = "This is also known as the household’s 'last settled home'" @hidden_in_check_answers = { "depends_on" => [ { diff --git a/app/models/form/sales/questions/previous_postcode.rb b/app/models/form/sales/questions/previous_postcode.rb index a0a4fe725..32b4e153e 100644 --- a/app/models/form/sales/questions/previous_postcode.rb +++ b/app/models/form/sales/questions/previous_postcode.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::PreviousPostcode < ::Form::Question def initialize(id, hsh, page) super @id = "ppostcode_full" - @check_answer_label = "Postcode of buyer 1’s last settled accommodation" - @header = "Postcode" + @copy_key = "sales.household_situation.last_accommodation.ppostcode_full" @type = "text" @width = 5 @inferred_check_answers_value = [{ diff --git a/app/models/form/sales/questions/previous_postcode_known.rb b/app/models/form/sales/questions/previous_postcode_known.rb index d9df53f6c..c2156b887 100644 --- a/app/models/form/sales/questions/previous_postcode_known.rb +++ b/app/models/form/sales/questions/previous_postcode_known.rb @@ -2,14 +2,12 @@ class Form::Sales::Questions::PreviousPostcodeKnown < ::Form::Question def initialize(id, hsh, page) super @id = "ppcodenk" - @check_answer_label = "Buyer 1’s last settled accommodation" - @header = "Do you know the postcode of buyer 1’s last settled accommodation?" + @copy_key = "sales.household_situation.last_accommodation.ppcodenk" @type = "radio" @answer_options = ANSWER_OPTIONS @conditional_for = { "ppostcode_full" => [0], } - @hint_text = "This is also known as the household’s 'last settled home'" @hidden_in_check_answers = { "depends_on" => [ { diff --git a/app/models/form/sales/questions/previous_tenure_buyer2.rb b/app/models/form/sales/questions/previous_tenure_buyer2.rb index 2873b8dc5..db606e254 100644 --- a/app/models/form/sales/questions/previous_tenure_buyer2.rb +++ b/app/models/form/sales/questions/previous_tenure_buyer2.rb @@ -2,10 +2,7 @@ class Form::Sales::Questions::PreviousTenureBuyer2 < ::Form::Question def initialize(id, hsh, page) super @id = "prevtenbuy2" - @check_answer_label = "Buyer 2’s previous tenure" - @header = "What was buyer 2’s previous tenure?" @type = "radio" - @hint_text = "" @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/sales/questions/prevloc.rb b/app/models/form/sales/questions/prevloc.rb index b8c46f427..5deb48877 100644 --- a/app/models/form/sales/questions/prevloc.rb +++ b/app/models/form/sales/questions/prevloc.rb @@ -2,8 +2,7 @@ class Form::Sales::Questions::Prevloc < ::Form::Question def initialize(id, hsh, page) super @id = "prevloc" - @check_answer_label = "Local authority of buyer 1’s last settled accommodation" - @header = "Select a local authority" + @copy_key = "sales.household_situation.last_accommodation_la.prevloc" @type = "select" @inferred_check_answers_value = [{ "condition" => { diff --git a/config/locales/forms/2023/sales/household_situation.en.yml b/config/locales/forms/2023/sales/household_situation.en.yml new file mode 100644 index 000000000..e22777a28 --- /dev/null +++ b/config/locales/forms/2023/sales/household_situation.en.yml @@ -0,0 +1,50 @@ +en: + forms: + 2023: + sales: + household_situation: + prevten: + page_header: "" + check_answer_label: "Buyer 1’s previous tenure" + hint_text: "" + question_text: "What was buyer 1’s previous tenure?" + + last_accommodation: + page_header: "" + ppcodenk: + check_answer_label: "Buyer 1’s last settled accommodation" + hint_text: "This is also known as the household’s 'last settled home'" + question_text: "Do you know the postcode of buyer 1’s last settled accommodation?" + ppostcode_full: + check_answer_label: "Postcode of buyer 1’s last settled accommodation" + hint_text: "" + question_text: "Postcode" + + last_accommodation_la: + page_header: "" + previous_la_known: + check_answer_label: "Local authority of buyer 1’s last settled accommodation" + hint_text: "This is also known as the household’s 'last settled home'" + question_text: "Do you know the local authority of buyer 1’s last settled accommodation?" + prevloc: + check_answer_label: "Local authority of buyer 1’s last settled accommodation" + hint_text: "" + question_text: "Select a local authority" + + buyers_organisations: + page_header: "" + check_answer_label: "Organisations buyers were registered with" + hint_text: "Select all that apply. This question is optional. If no options are applicable, leave the options blank, and select save and continue." + question_text: "What organisations were the buyers registered with?" + + buy2living: + page_header: "" + check_answer_label: "Buyer 2 living at the same address" + hint_text: "" + header: "At the time of purchase, was buyer 2 living at the same address as buyer 1?" + + prevtenbuy2: + page_header: "" + check_answer_label: "Buyer 2’s previous tenure" + hint_text: "" + question_text: "What was buyer 2’s previous tenure?" diff --git a/config/locales/forms/2024/sales/household_situation.en.yml b/config/locales/forms/2024/sales/household_situation.en.yml new file mode 100644 index 000000000..1ab6d540e --- /dev/null +++ b/config/locales/forms/2024/sales/household_situation.en.yml @@ -0,0 +1,50 @@ +en: + forms: + 2024: + sales: + household_situation: + prevten: + page_header: "" + check_answer_label: "Buyer 1’s previous tenure" + hint_text: "" + question_text: "What was buyer 1’s previous tenure?" + + last_accommodation: + page_header: "" + ppcodenk: + check_answer_label: "Buyer 1’s last settled accommodation" + hint_text: "This is also known as the household’s 'last settled home'" + question_text: "Do you know the postcode of buyer 1’s last settled accommodation?" + ppostcode_full: + check_answer_label: "Postcode of buyer 1’s last settled accommodation" + hint_text: "" + question_text: "Postcode" + + last_accommodation_la: + page_header: "" + previous_la_known: + check_answer_label: "Local authority of buyer 1’s last settled accommodation" + hint_text: "This is also known as the household’s 'last settled home'" + question_text: "Do you know the local authority of buyer 1’s last settled accommodation?" + prevloc: + check_answer_label: "Local authority of buyer 1’s last settled accommodation" + hint_text: "" + question_text: "Select a local authority" + + buyers_organisations: + page_header: "" + check_answer_label: "Organisations buyers were registered with" + hint_text: "Select all that apply. This question is optional. If no options are applicable, leave the options blank, and select save and continue." + question_text: "What organisations were the buyers registered with?" + + buy2living: + page_header: "" + check_answer_label: "Buyer 2 living at the same address" + hint_text: "" + question_text: "At the time of purchase, was buyer 2 living at the same address as buyer 1?" + + prevtenbuy2: + page_header: "" + check_answer_label: "Buyer 2’s previous tenure" + hint_text: "" + question_text: "What was buyer 2’s previous tenure?" From f2f44329f36a03507179a3cf714236d1c0b6d990 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:19:54 +0000 Subject: [PATCH 4/6] CLDC-3684 Extract lettings tenancy information copy (#2731) * Extract lettings tenancy information copy * Fix flaky merged schemes test --- .../lettings/pages/starter_tenancy_type.rb | 1 + .../form/lettings/pages/tenancy_length.rb | 1 + .../pages/tenancy_length_affordable_rent.rb | 1 + .../pages/tenancy_length_intermediate_rent.rb | 1 + .../lettings/pages/tenancy_length_periodic.rb | 1 + .../form/lettings/pages/tenancy_type.rb | 1 + app/models/form/lettings/questions/joint.rb | 3 - .../form/lettings/questions/sheltered.rb | 3 - .../questions/starter_tenancy_type.rb | 4 +- .../form/lettings/questions/startertenancy.rb | 11 ---- .../form/lettings/questions/tenancy_length.rb | 4 +- .../tenancy_length_affordable_rent.rb | 11 +--- .../tenancy_length_intermediate_rent.rb | 11 +--- .../questions/tenancy_length_periodic.rb | 4 +- .../form/lettings/questions/tenancy_other.rb | 4 +- .../form/lettings/questions/tenancy_type.rb | 4 +- .../2023/lettings/tenancy_information.en.yml | 66 +++++++++++++++++++ .../2024/lettings/tenancy_information.en.yml | 66 +++++++++++++++++++ .../questions/starter_tenancy_type_spec.rb | 2 +- .../tenancy_length_affordable_rent_spec.rb | 2 +- .../tenancy_length_intermediate_rent_spec.rb | 2 +- .../questions/tenancy_length_periodic_spec.rb | 2 +- .../lettings/questions/tenancy_length_spec.rb | 2 +- .../lettings/questions/tenancy_other_spec.rb | 2 +- .../lettings/questions/tenancy_type_spec.rb | 2 +- .../merge/merge_organisations_service_spec.rb | 6 +- 26 files changed, 155 insertions(+), 62 deletions(-) create mode 100644 config/locales/forms/2023/lettings/tenancy_information.en.yml create mode 100644 config/locales/forms/2024/lettings/tenancy_information.en.yml diff --git a/app/models/form/lettings/pages/starter_tenancy_type.rb b/app/models/form/lettings/pages/starter_tenancy_type.rb index fe147bc77..462d4fb37 100644 --- a/app/models/form/lettings/pages/starter_tenancy_type.rb +++ b/app/models/form/lettings/pages/starter_tenancy_type.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::StarterTenancyType < ::Form::Page def initialize(id, hsh, subsection) super @id = "starter_tenancy_type" + @copy_key = "lettings.tenancy_information.tenancy.starter_tenancy_type" @depends_on = [{ "starter_tenancy?" => true }] end diff --git a/app/models/form/lettings/pages/tenancy_length.rb b/app/models/form/lettings/pages/tenancy_length.rb index 006cd8e42..b855133bf 100644 --- a/app/models/form/lettings/pages/tenancy_length.rb +++ b/app/models/form/lettings/pages/tenancy_length.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::TenancyLength < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_length" + @copy_key = "lettings.tenancy_information.tenancylength.tenancy_length" @depends_on = [{ "tenancy_type_fixed_term?" => true, "needstype" => 2 }] end diff --git a/app/models/form/lettings/pages/tenancy_length_affordable_rent.rb b/app/models/form/lettings/pages/tenancy_length_affordable_rent.rb index aa88d81f9..cb292823a 100644 --- a/app/models/form/lettings/pages/tenancy_length_affordable_rent.rb +++ b/app/models/form/lettings/pages/tenancy_length_affordable_rent.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::TenancyLengthAffordableRent < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_length_affordable_rent" + @copy_key = "lettings.tenancy_information.tenancylength.tenancy_length_affordable_rent" @depends_on = [{ "tenancy_type_fixed_term?" => true, "affordable_or_social_rent?" => true, "needstype" => 1 }] end diff --git a/app/models/form/lettings/pages/tenancy_length_intermediate_rent.rb b/app/models/form/lettings/pages/tenancy_length_intermediate_rent.rb index 070d0abe1..a693a6f3d 100644 --- a/app/models/form/lettings/pages/tenancy_length_intermediate_rent.rb +++ b/app/models/form/lettings/pages/tenancy_length_intermediate_rent.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::TenancyLengthIntermediateRent < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_length_intermediate_rent" + @copy_key = "lettings.tenancy_information.tenancylength.tenancy_length_intermediate_rent" @depends_on = [{ "tenancy_type_fixed_term?" => true, "affordable_or_social_rent?" => false, "needstype" => 1 }] end diff --git a/app/models/form/lettings/pages/tenancy_length_periodic.rb b/app/models/form/lettings/pages/tenancy_length_periodic.rb index 9ea6553af..82972e796 100644 --- a/app/models/form/lettings/pages/tenancy_length_periodic.rb +++ b/app/models/form/lettings/pages/tenancy_length_periodic.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::TenancyLengthPeriodic < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_length_periodic" + @copy_key = "lettings.tenancy_information.tenancylength.tenancy_length_periodic" @depends_on = [{ "tenancy_type_periodic?" => true }] end diff --git a/app/models/form/lettings/pages/tenancy_type.rb b/app/models/form/lettings/pages/tenancy_type.rb index c15f6f27a..2d7eceb5f 100644 --- a/app/models/form/lettings/pages/tenancy_type.rb +++ b/app/models/form/lettings/pages/tenancy_type.rb @@ -2,6 +2,7 @@ class Form::Lettings::Pages::TenancyType < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_type" + @copy_key = "lettings.tenancy_information.tenancy.tenancy_type" @depends_on = [{ "starter_tenancy?" => false }] end diff --git a/app/models/form/lettings/questions/joint.rb b/app/models/form/lettings/questions/joint.rb index 5f3379c5d..e28a0085c 100644 --- a/app/models/form/lettings/questions/joint.rb +++ b/app/models/form/lettings/questions/joint.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::Joint < ::Form::Question def initialize(id, hsh, page) super @id = "joint" - @check_answer_label = "Is this a joint tenancy?" - @header = "Is this a joint tenancy?" @type = "radio" @check_answers_card_number = 0 - @hint_text = form.start_year_after_2024? ? "This is where two or more people are named on the tenancy agreement" : "" @answer_options = ANSWER_OPTIONS @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/sheltered.rb b/app/models/form/lettings/questions/sheltered.rb index 7b78a9b30..7b80bb5bf 100644 --- a/app/models/form/lettings/questions/sheltered.rb +++ b/app/models/form/lettings/questions/sheltered.rb @@ -2,11 +2,8 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question def initialize(id, hsh, page) super @id = "sheltered" - @check_answer_label = "Is this letting in sheltered accommodation?" - @header = "Is this letting in sheltered accommodation?" @type = "radio" @check_answers_card_number = 0 - @hint_text = "Sheltered housing and special retirement housing are for tenants with low-level care and support needs. This typically provides some limited support to enable independent living, such as alarm-based assistance or a scheme manager.

Extra care housing is for tenants with medium to high care and support needs, often with 24 hour access to support staff provided by an agency registered with the Care Quality Commission." @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/starter_tenancy_type.rb b/app/models/form/lettings/questions/starter_tenancy_type.rb index 9157c8e18..85d4a14ff 100644 --- a/app/models/form/lettings/questions/starter_tenancy_type.rb +++ b/app/models/form/lettings/questions/starter_tenancy_type.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::StarterTenancyType < ::Form::Question def initialize(id, hsh, page) super @id = "tenancy" - @check_answer_label = form.start_year_after_2024? ? "Type of main tenancy after the starter or introductory period has ended" : "Type of main tenancy after the starter period has ended" - @header = form.start_year_after_2024? ? "What is the type of tenancy after the starter or introductory period has ended?" : "What is the type of tenancy after the starter period has ended?" + @copy_key = "lettings.tenancy_information.tenancy.#{page.id}.tenancy" @type = "radio" @check_answers_card_number = 0 - @hint_text = form.start_year_after_2024? ? "" : "This is also known as an ‘introductory period’." @conditional_for = { "tenancyother" => [3] } @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/startertenancy.rb b/app/models/form/lettings/questions/startertenancy.rb index 0e461a25e..44b592cd6 100644 --- a/app/models/form/lettings/questions/startertenancy.rb +++ b/app/models/form/lettings/questions/startertenancy.rb @@ -2,8 +2,6 @@ class Form::Lettings::Questions::Startertenancy < ::Form::Question def initialize(id, hsh, page) super @id = "startertenancy" - @check_answer_label = "Is this a starter or introductory tenancy?" - @header = "Is this a starter tenancy?" @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS @@ -12,14 +10,5 @@ class Form::Lettings::Questions::Startertenancy < ::Form::Question ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "2" => { "value" => "No" } }.freeze - def hint_text - if form.start_year_after_2024? - "If the tenancy has an ‘introductory period’ answer ‘yes’.

- You should submit a CORE log at the beginning of the starter tenancy or introductory period, with the best information you have at the time. You do not need to submit a log when a tenant later rolls onto the main tenancy." - else - "This is also known as an ‘introductory period’." - end - end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 26 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length.rb b/app/models/form/lettings/questions/tenancy_length.rb index b94d41af5..1bf868377 100644 --- a/app/models/form/lettings/questions/tenancy_length.rb +++ b/app/models/form/lettings/questions/tenancy_length.rb @@ -2,14 +2,12 @@ class Form::Lettings::Questions::TenancyLength < ::Form::Question def initialize(id, hsh, page) super @id = "tenancylength" - @check_answer_label = "Length of fixed-term tenancy" - @header = "What is the length of the fixed-term tenancy to the nearest year?" + @copy_key = "lettings.tenancy_information.tenancylength.#{page.id}" @type = "numeric" @width = 2 @check_answers_card_number = 0 @max = 150 @min = 0 - @hint_text = "Do not include the starter or introductory period." @step = 1 @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb b/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb index bea745ae1..8e79924aa 100644 --- a/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb +++ b/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb @@ -2,8 +2,7 @@ class Form::Lettings::Questions::TenancyLengthAffordableRent < ::Form::Question def initialize(id, hsh, page) super @id = "tenancylength" - @check_answer_label = "Length of fixed-term tenancy" - @header = "What is the length of the fixed-term tenancy to the nearest year?" + @copy_key = "lettings.tenancy_information.tenancylength.#{page.id}" @type = "numeric" @width = 2 @check_answers_card_number = 0 @@ -13,13 +12,5 @@ class Form::Lettings::Questions::TenancyLengthAffordableRent < ::Form::Question @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end - def hint_text - if form.start_year_after_2024? - "Do not include the starter or introductory period.
The minimum period is 2 years for social or affordable rent general needs logs. You do not need to submit CORE logs for these types of tenancies if they are shorter than 2 years." - else - "Do not include the starter or introductory period.
The minimum period is 2 years for social or affordable rent general needs logs and you do not need a log for shorter tenancies." - end - end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb b/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb index 835efd429..1bf3bd7cc 100644 --- a/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb +++ b/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb @@ -2,8 +2,7 @@ class Form::Lettings::Questions::TenancyLengthIntermediateRent < ::Form::Questio def initialize(id, hsh, page) super @id = "tenancylength" - @check_answer_label = "Length of fixed-term tenancy" - @header = "What is the length of the fixed-term tenancy to the nearest year?" + @copy_key = "lettings.tenancy_information.tenancylength.#{page.id}" @type = "numeric" @width = 2 @check_answers_card_number = 0 @@ -13,13 +12,5 @@ class Form::Lettings::Questions::TenancyLengthIntermediateRent < ::Form::Questio @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end - def hint_text - if form.start_year_after_2024? - "Do not include the starter or introductory period.
The minimum period is 1 year for intermediate rent general needs logs. You do not need to submit CORE logs for these types of tenancies if they are shorter than 1 year." - else - "Do not include the starter or introductory period.
The minimum period is 1 year for intermediate rent general needs logs and you do not need a log for shorter tenancies." - end - end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length_periodic.rb b/app/models/form/lettings/questions/tenancy_length_periodic.rb index 113435dd6..c65f41399 100644 --- a/app/models/form/lettings/questions/tenancy_length_periodic.rb +++ b/app/models/form/lettings/questions/tenancy_length_periodic.rb @@ -2,8 +2,7 @@ class Form::Lettings::Questions::TenancyLengthPeriodic < ::Form::Question def initialize(id, hsh, page) super @id = "tenancylength" - @check_answer_label = "Length of periodic tenancy" - @header = "What is the length of the periodic tenancy to the nearest year?" + @copy_key = "lettings.tenancy_information.tenancylength.#{page.id}" @type = "numeric" @width = 2 @check_answers_card_number = 0 @@ -11,7 +10,6 @@ class Form::Lettings::Questions::TenancyLengthPeriodic < ::Form::Question @min = 0 @step = 1 @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] - @hint_text = "As this is a periodic tenancy, this question is optional. If you do not have the information available click save and continue" end QUESTION_NUMBER_FROM_YEAR = { 2023 => 28 }.freeze diff --git a/app/models/form/lettings/questions/tenancy_other.rb b/app/models/form/lettings/questions/tenancy_other.rb index 21e932250..3fb3469ee 100644 --- a/app/models/form/lettings/questions/tenancy_other.rb +++ b/app/models/form/lettings/questions/tenancy_other.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::TenancyOther < ::Form::Question def initialize(id, hsh, page) super @id = "tenancyother" - @check_answer_label = "" - @header = "Please state the tenancy type" + @copy_key = "lettings.tenancy_information.tenancy.#{page.id}.tenancyother" @type = "text" @check_answers_card_number = 0 - @hint_text = "" @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/questions/tenancy_type.rb b/app/models/form/lettings/questions/tenancy_type.rb index b4ed6aca4..9a83b44cb 100644 --- a/app/models/form/lettings/questions/tenancy_type.rb +++ b/app/models/form/lettings/questions/tenancy_type.rb @@ -2,11 +2,9 @@ class Form::Lettings::Questions::TenancyType < ::Form::Question def initialize(id, hsh, page) super @id = "tenancy" - @check_answer_label = "Type of main tenancy" - @header = "What is the type of tenancy?" + @copy_key = "lettings.tenancy_information.tenancy.#{page.id}.tenancy" @type = "radio" @check_answers_card_number = 0 - @hint_text = "" @conditional_for = { "tenancyother" => [3] } @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/config/locales/forms/2023/lettings/tenancy_information.en.yml b/config/locales/forms/2023/lettings/tenancy_information.en.yml new file mode 100644 index 000000000..e9331d4dc --- /dev/null +++ b/config/locales/forms/2023/lettings/tenancy_information.en.yml @@ -0,0 +1,66 @@ +en: + forms: + 2023: + lettings: + tenancy_information: + joint: + page_header: "" + check_answer_label: "Is this a joint tenancy?" + hint_text: "" + question_text: "Is this a joint tenancy?" + + startertenancy: + page_header: "" + check_answer_label: "Is this a starter or introductory tenancy?" + hint_text: "This is also known as an ‘introductory period’." + question_text: "Is this a starter tenancy?" + + tenancy: + tenancy_type: + page_header: "" + tenancy: + check_answer_label: "Type of main tenancy" + hint_text: "" + question_text: "What is the type of tenancy?" + tenancyother: + check_answer_label: "" + hint_text: "" + question_text: "Please state the tenancy type" + starter_tenancy_type: + page_header: "" + tenancy: + check_answer_label: "Type of main tenancy after the starter period has ended" + hint_text: "This is also known as an ‘introductory period’." + question_text: "What is the type of tenancy after the starter period has ended?" + tenancyother: + check_answer_label: "" + hint_text: "" + question_text: "Please state the tenancy type" + + tenancylength: + tenancy_length: + page_header: "" + check_answer_label: "Length of fixed-term tenancy" + hint_text: "Do not include the starter or introductory period." + question_text: "What is the length of the fixed-term tenancy to the nearest year?" + tenancy_length_affordable_rent: + page_header: "" + check_answer_label: "Length of fixed-term tenancy" + hint_text: "Do not include the starter or introductory period.
The minimum period is 2 years for social or affordable rent general needs logs and you do not need a log for shorter tenancies." + question_text: "What is the length of the fixed-term tenancy to the nearest year?" + tenancy_length_intermediate_rent: + page_header: "" + check_answer_label: "Length of fixed-term tenancy" + hint_text: "Do not include the starter or introductory period.
The minimum period is 1 year for intermediate rent general needs logs and you do not need a log for shorter tenancies." + question_text: "What is the length of the fixed-term tenancy to the nearest year?" + tenancy_length_periodic: + page_header: "" + check_answer_label: "Length of periodic tenancy" + hint_text: "As this is a periodic tenancy, this question is optional. If you do not have the information available click save and continue" + question_text: "What is the length of the periodic tenancy to the nearest year?" + + sheltered: + page_header: "" + check_answer_label: "Is this letting in sheltered accommodation?" + hint_text: "Sheltered housing and special retirement housing are for tenants with low-level care and support needs. This typically provides some limited support to enable independent living, such as alarm-based assistance or a scheme manager.

Extra care housing is for tenants with medium to high care and support needs, often with 24 hour access to support staff provided by an agency registered with the Care Quality Commission." + question_text: "Is this letting in sheltered accommodation?" diff --git a/config/locales/forms/2024/lettings/tenancy_information.en.yml b/config/locales/forms/2024/lettings/tenancy_information.en.yml new file mode 100644 index 000000000..bee380e7c --- /dev/null +++ b/config/locales/forms/2024/lettings/tenancy_information.en.yml @@ -0,0 +1,66 @@ +en: + forms: + 2024: + lettings: + tenancy_information: + joint: + page_header: "" + check_answer_label: "Is this a joint tenancy?" + hint_text: "This is where two or more people are named on the tenancy agreement" + question_text: "Is this a joint tenancy?" + + startertenancy: + page_header: "" + check_answer_label: "Is this a starter or introductory tenancy?" + hint_text: "If the tenancy has an ‘introductory period’ answer ‘yes’.

You should submit a CORE log at the beginning of the starter tenancy or introductory period, with the best information you have at the time. You do not need to submit a log when a tenant later rolls onto the main tenancy." + question_text: "Is this a starter tenancy?" + + tenancy: + tenancy_type: + page_header: "" + tenancy: + check_answer_label: "Type of main tenancy" + hint_text: "" + question_text: "What is the type of tenancy?" + tenancyother: + check_answer_label: "" + hint_text: "" + question_text: "Please state the tenancy type" + starter_tenancy_type: + page_header: "" + tenancy: + check_answer_label: "Type of main tenancy after the starter or introductory period has ended" + hint_text: "" + question_text: "What is the type of tenancy after the starter or introductory period has ended?" + tenancyother: + check_answer_label: "" + hint_text: "" + question_text: "Please state the tenancy type" + + tenancylength: + tenancy_length: + page_header: "" + check_answer_label: "Length of fixed-term tenancy" + hint_text: "Do not include the starter or introductory period." + question_text: "What is the length of the fixed-term tenancy to the nearest year?" + tenancy_length_affordable_rent: + page_header: "" + check_answer_label: "Length of fixed-term tenancy" + hint_text: "Do not include the starter or introductory period.
The minimum period is 2 years for social or affordable rent general needs logs. You do not need to submit CORE logs for these types of tenancies if they are shorter than 2 years." + question_text: "What is the length of the fixed-term tenancy to the nearest year?" + tenancy_length_intermediate_rent: + page_header: "" + check_answer_label: "Length of fixed-term tenancy" + hint_text: "Do not include the starter or introductory period.
The minimum period is 1 year for intermediate rent general needs logs. You do not need to submit CORE logs for these types of tenancies if they are shorter than 1 year." + question_text: "What is the length of the fixed-term tenancy to the nearest year?" + tenancy_length_periodic: + page_header: "" + check_answer_label: "Length of periodic tenancy" + hint_text: "As this is a periodic tenancy, this question is optional. If you do not have the information available click save and continue" + question_text: "What is the length of the periodic tenancy to the nearest year?" + + sheltered: + page_header: "" + check_answer_label: "Is this letting in sheltered accommodation?" + hint_text: "Sheltered housing and special retirement housing are for tenants with low-level care and support needs. This typically provides some limited support to enable independent living, such as alarm-based assistance or a scheme manager.

Extra care housing is for tenants with medium to high care and support needs, often with 24 hour access to support staff provided by an agency registered with the Care Quality Commission." + question_text: "Is this letting in sheltered accommodation?" diff --git a/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb b/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb index 66ea2b355..d3022dfcf 100644 --- a/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb +++ b/spec/models/form/lettings/questions/starter_tenancy_type_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Lettings::Questions::StarterTenancyType, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:page) { instance_double(Form::Page) } + let(:page) { instance_double(Form::Page, id: "starter_tenancy_type") } let(:subsection) { instance_double(Form::Subsection) } let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } diff --git a/spec/models/form/lettings/questions/tenancy_length_affordable_rent_spec.rb b/spec/models/form/lettings/questions/tenancy_length_affordable_rent_spec.rb index fb334f909..4bab9187a 100644 --- a/spec/models/form/lettings/questions/tenancy_length_affordable_rent_spec.rb +++ b/spec/models/form/lettings/questions/tenancy_length_affordable_rent_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Lettings::Questions::TenancyLengthAffordableRent, type: :mo let(:question_id) { nil } let(:question_definition) { nil } - let(:page) { instance_double(Form::Page) } + let(:page) { instance_double(Form::Page, id: "affordable_tenancy_length") } let(:subsection) { instance_double(Form::Subsection) } let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } diff --git a/spec/models/form/lettings/questions/tenancy_length_intermediate_rent_spec.rb b/spec/models/form/lettings/questions/tenancy_length_intermediate_rent_spec.rb index 0c0923bf8..a3f9c80e2 100644 --- a/spec/models/form/lettings/questions/tenancy_length_intermediate_rent_spec.rb +++ b/spec/models/form/lettings/questions/tenancy_length_intermediate_rent_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Lettings::Questions::TenancyLengthIntermediateRent, type: : let(:question_id) { nil } let(:question_definition) { nil } - let(:page) { instance_double(Form::Page) } + let(:page) { instance_double(Form::Page, id: "intermediate_tenancy_length") } let(:subsection) { instance_double(Form::Subsection) } let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } diff --git a/spec/models/form/lettings/questions/tenancy_length_periodic_spec.rb b/spec/models/form/lettings/questions/tenancy_length_periodic_spec.rb index 3a0fae171..449677736 100644 --- a/spec/models/form/lettings/questions/tenancy_length_periodic_spec.rb +++ b/spec/models/form/lettings/questions/tenancy_length_periodic_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Form::Lettings::Questions::TenancyLengthPeriodic, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))), id: "periodic_tenancy_length") } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/lettings/questions/tenancy_length_spec.rb b/spec/models/form/lettings/questions/tenancy_length_spec.rb index 2d87d0923..cc7bf9f9f 100644 --- a/spec/models/form/lettings/questions/tenancy_length_spec.rb +++ b/spec/models/form/lettings/questions/tenancy_length_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::TenancyLength, type: :model do subject(:question) { described_class.new(nil, nil, page) } - let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))), id: "tenancy_length") } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/lettings/questions/tenancy_other_spec.rb b/spec/models/form/lettings/questions/tenancy_other_spec.rb index ce8aec5db..a6a2962dc 100644 --- a/spec/models/form/lettings/questions/tenancy_other_spec.rb +++ b/spec/models/form/lettings/questions/tenancy_other_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::TenancyOther, type: :model do subject(:question) { described_class.new(nil, nil, page) } - let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))), id: "tenancy_type") } it "has correct page" do expect(question.page).to eq(page) diff --git a/spec/models/form/lettings/questions/tenancy_type_spec.rb b/spec/models/form/lettings/questions/tenancy_type_spec.rb index 13998094a..08818d3ea 100644 --- a/spec/models/form/lettings/questions/tenancy_type_spec.rb +++ b/spec/models/form/lettings/questions/tenancy_type_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::TenancyType, type: :model do subject(:question) { described_class.new(nil, nil, page) } - let(:page) { instance_double(Form::Page) } + let(:page) { instance_double(Form::Page, id: "tenancy_type") } let(:subsection) { instance_double(Form::Subsection) } let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) } diff --git a/spec/services/merge/merge_organisations_service_spec.rb b/spec/services/merge/merge_organisations_service_spec.rb index 6eea8635f..7163a142f 100644 --- a/spec/services/merge/merge_organisations_service_spec.rb +++ b/spec/services/merge/merge_organisations_service_spec.rb @@ -1317,9 +1317,9 @@ RSpec.describe Merge::MergeOrganisationsService do merging_organisation.reload expect(new_absorbing_organisation.owned_lettings_logs.count).to eq(2) expect(new_absorbing_organisation.managed_lettings_logs.count).to eq(1) - expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).scheme).to eq(new_absorbing_organisation.owned_schemes.first) - expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).location).to eq(new_absorbing_organisation.owned_schemes.first.locations.first) - expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).scheme).to eq(new_absorbing_organisation.owned_schemes.first) + expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).scheme).to eq(new_absorbing_organisation.owned_schemes.find_by(service_name: scheme.service_name)) + expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).location).to eq(new_absorbing_organisation.owned_schemes.find_by(service_name: scheme.service_name).locations.first) + expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).scheme).to eq(new_absorbing_organisation.owned_schemes.find_by(service_name: scheme.service_name)) expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).location).to eq(nil) end From b6f3a24db735e1453a1c1842952cc1ea66f3e8e0 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:25:33 +0000 Subject: [PATCH 5/6] Update links from dluhcdigital to mhclgdigital (#2717) --- app/constants/global_constants.rb | 2 +- app/helpers/merge_requests_helper.rb | 2 +- app/views/content/accessibility_statement.md | 4 ++-- .../data_protection_confirmation_banner_component_spec.rb | 4 ++-- spec/mailers/csv_download_mailer_spec.rb | 4 ++-- spec/requests/organisations_controller_spec.rb | 2 +- spec/views/merge_requests/show.html.erb_spec.rb | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/constants/global_constants.rb b/app/constants/global_constants.rb index f42af5253..4066fb1d4 100644 --- a/app/constants/global_constants.rb +++ b/app/constants/global_constants.rb @@ -1,5 +1,5 @@ module GlobalConstants - HELPDESK_URL = "https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11".freeze + HELPDESK_URL = "https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11".freeze COUNTRIES_ANSWER_OPTIONS = { "" => "Select an option", diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb index a342ca808..6283ef42e 100644 --- a/app/helpers/merge_requests_helper.rb +++ b/app/helpers/merge_requests_helper.rb @@ -9,7 +9,7 @@ module MergeRequestsHelper def request_details(merge_request) [ { label: "Requester", value: display_value_or_placeholder(merge_request.requester&.name) }, - { label: "Helpdesk ticket", value: merge_request.helpdesk_ticket.present? ? link_to("#{merge_request.helpdesk_ticket} (opens in a new tab)", "https://dluhcdigital.atlassian.net/browse/#{merge_request.helpdesk_ticket}", target: "_blank", rel: "noopener noreferrer") : display_value_or_placeholder(nil), action: merge_request_action(merge_request, "helpdesk_ticket") }, + { label: "Helpdesk ticket", value: merge_request.helpdesk_ticket.present? ? link_to("#{merge_request.helpdesk_ticket} (opens in a new tab)", "https://mhclgdigital.atlassian.net/browse/#{merge_request.helpdesk_ticket}", target: "_blank", rel: "noopener noreferrer") : display_value_or_placeholder(nil), action: merge_request_action(merge_request, "helpdesk_ticket") }, { label: "Status", value: status_tag(merge_request.status) }, ] end diff --git a/app/views/content/accessibility_statement.md b/app/views/content/accessibility_statement.md index a49bd999c..1d861fdcf 100644 --- a/app/views/content/accessibility_statement.md +++ b/app/views/content/accessibility_statement.md @@ -32,11 +32,11 @@ If you need information on this website in a different format like accessible PD We’ll consider your request and get back to you in 2 working days. -You can also [contact us through the helpdesk](https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11). +You can also [contact us through the helpdesk](https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11). ### Reporting accessibility problems with this website -We’re always looking to improve the accessibility of this website. If you find any problems not listed on this page or think we’re not meeting accessibility requirements, [contact the helpdesk](https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11). +We’re always looking to improve the accessibility of this website. If you find any problems not listed on this page or think we’re not meeting accessibility requirements, [contact the helpdesk](https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11). ### Enforcement procedure diff --git a/spec/components/data_protection_confirmation_banner_component_spec.rb b/spec/components/data_protection_confirmation_banner_component_spec.rb index 608628093..fb687f25c 100644 --- a/spec/components/data_protection_confirmation_banner_component_spec.rb +++ b/spec/components/data_protection_confirmation_banner_component_spec.rb @@ -27,7 +27,7 @@ RSpec.describe DataProtectionConfirmationBannerComponent, type: :component do expect(component.display_banner?).to eq(true) expect(render).to have_link( "Contact helpdesk to assign a data protection officer", - href: "https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11", + href: "https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11", ) expect(render).to have_selector("p", text: "To create logs your organisation must state a data protection officer. They must sign the Data Sharing Agreement.") end @@ -131,7 +131,7 @@ RSpec.describe DataProtectionConfirmationBannerComponent, type: :component do expect(component.display_banner?).to eq(true) expect(render).to have_link( "Contact helpdesk to assign a data protection officer", - href: "https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11", + href: "https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11", ) expect(render).to have_selector("p", text: "To create logs your organisation must state a data protection officer. They must sign the Data Sharing Agreement.") end diff --git a/spec/mailers/csv_download_mailer_spec.rb b/spec/mailers/csv_download_mailer_spec.rb index 704d71e1e..138a0e4ce 100644 --- a/spec/mailers/csv_download_mailer_spec.rb +++ b/spec/mailers/csv_download_mailer_spec.rb @@ -42,7 +42,7 @@ RSpec.describe CsvDownloadMailer do ## Missing town or city The town or city in some logs is missing. This data is required in the new version of CORE.\n", how_to_fix: "You need to:\n -- download [this spreadsheet for lettings logs](#{link}). This link will expire in one week. To request another link, [contact the CORE helpdesk](https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11). +- download [this spreadsheet for lettings logs](#{link}). This link will expire in one week. To request another link, [contact the CORE helpdesk](https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11). - fill in the missing address data - check that the existing address data is correct\n", duration: "20 minutes", @@ -70,7 +70,7 @@ In some of your logs, the UPRN is the same as the purchaser code, but these are If a log has the correct UPRN, leave the UPRN unchanged. If the UPRN is incorrect, clear the value and provide the full address instead. Alternatively, you can change the UPRN on the CORE system.\n", how_to_fix: "You need to:\n -- download [this spreadsheet for sales logs](#{link}). This link will expire in one week. To request another link, [contact the CORE helpdesk](https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11). +- download [this spreadsheet for sales logs](#{link}). This link will expire in one week. To request another link, [contact the CORE helpdesk](https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11). - check that the address data is correct - correct any address errors\n", duration: "20 minutes", diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb index 223cc9e00..5a300c56c 100644 --- a/spec/requests/organisations_controller_spec.rb +++ b/spec/requests/organisations_controller_spec.rb @@ -497,7 +497,7 @@ RSpec.describe OrganisationsController, type: :request do it "displays a link to merge organisations" do expect(page).to have_content("To report a merge or update your organisation details, ") - expect(page).to have_link("contact the helpdesk", href: "https://dluhcdigital.atlassian.net/servicedesk/customer/portal/6/group/11") + expect(page).to have_link("contact the helpdesk", href: "https://mhclgdigital.atlassian.net/servicedesk/customer/portal/6/group/11") end it "does not display merge history if there is none" do diff --git a/spec/views/merge_requests/show.html.erb_spec.rb b/spec/views/merge_requests/show.html.erb_spec.rb index d03239d2a..c1dd47bfd 100644 --- a/spec/views/merge_requests/show.html.erb_spec.rb +++ b/spec/views/merge_requests/show.html.erb_spec.rb @@ -30,7 +30,7 @@ RSpec.describe "merge_requests/show.html.erb", type: :view do it "displays the helpdesk ticket details" do expect(rendered).to have_selector("dt", text: "Helpdesk ticket") if merge_request.helpdesk_ticket.present? - expect(rendered).to have_link(merge_request.helpdesk_ticket, href: "https://dluhcdigital.atlassian.net/browse/#{merge_request.helpdesk_ticket}") + expect(rendered).to have_link(merge_request.helpdesk_ticket, href: "https://mhclgdigital.atlassian.net/browse/#{merge_request.helpdesk_ticket}") else expect(rendered).to have_selector("dd", text: "You didn't answer this question") end From 3804a64b2e1f15fd0c3e6208bab4d4392a9fb0b4 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:45:14 +0000 Subject: [PATCH 6/6] Open links in new tab (#2722) --- app/views/organisations/duplicate_schemes.html.erb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/views/organisations/duplicate_schemes.html.erb b/app/views/organisations/duplicate_schemes.html.erb index 427cf427c..79f7d435f 100644 --- a/app/views/organisations/duplicate_schemes.html.erb +++ b/app/views/organisations/duplicate_schemes.html.erb @@ -56,6 +56,8 @@ <% end %> +

The links below open in a new tab.

+ <%= govuk_table do |table| %> <%= table.with_head do |head| %> <% head.with_row do |row| %> @@ -69,7 +71,7 @@
    <% duplicate_set.each do |scheme| %>
  1. - <%= govuk_link_to scheme.service_name, scheme %> + <%= govuk_link_to scheme.service_name, scheme, target: "#" %>
  2. <% end %>
@@ -93,6 +95,8 @@ <% end %> +

The links below open in a new tab.

+ <%= govuk_table do |table| %> <%= table.with_head do |head| %> <% head.with_row do |row| %> @@ -107,13 +111,13 @@
    <% duplicate_set[:locations].each do |location| %>
  1. - <%= govuk_link_to location.name, scheme_location_path(location) %> + <%= govuk_link_to location.name, scheme_location_path(location), target: "#" %>
  2. <% end %>
<% end %> <% row.with_cell do %> - <%= govuk_link_to duplicate_set[:scheme].service_name, duplicate_set[:scheme] %> + <%= govuk_link_to duplicate_set[:scheme].service_name, duplicate_set[:scheme], target: "#" %> <% end %> <% end %> <% end %>