From 5dcb84966cd475b462500de448794092df9c9ba5 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Mon, 23 Feb 2026 11:59:22 +0000 Subject: [PATCH] CLDC-4202: Update question numbers (#3169) * CLDC-4202: No longer assume question numbers for years the default logic is already a little confusing with the .max call, and we renumber most questions anyway between years to simply this logic and make it less surprising, specify each year all files should now specify 2023, 2024, 2025, 2026 * CLDC-4202: Account for removal of building type see CLDC-4136, Q20 has been removed. renumber every question above 20 to be one lower * CLDC-4202: Update household characteristics question nums done separate as these question numbers are calculated * CLDC-4202: Account for household characteristics renumbering increase all after Q72 (previously Q64) armedforces.rb by 8 * CLDC-4202: Account for new referral question * CLDC-4202: Update tests * fixup! CLDC-4202: No longer assume question numbers for years fix mistaken rent_type number * CLDC-4202: Extract person question count to the form definition * fixup! CLDC-4202: Extract person question count to the form definition syntax error * CLDC-4202: Extract hash logic to a common function * CLDC-4202: Add a rake to populate new question numbers we can run this rake to automatically add all the question numbers at the start of a new year, which should simplify the process a lot * fixup! CLDC-4202: Add a rake to populate new question numbers lint * fixup! CLDC-4202: Extract person question count to the form definition update tests * fixup! CLDC-4202: Extract person question count to the form definition lint * fixup! CLDC-4202: Extract person question count to the form definition also update age_known * CLDC-4141: copy person questions refactor from CLDC-4142 * CLDC-4141: remove gender same as sex and replace gender identity q * CLDC-4202: Use form person question count on sexrab * CLDC-4202: Remove new question numbers from questions we don't ask anymore * CLDC-4141: replace sex with sexrab where relevant for 2026 * fixup! CLDC-4202: Use form person question count on sexrab update test * fixup! CLDC-4202: Use form person question count on sexrab page test too * CLDC-4141: update download order * CLDC-4140: remove sex from rowparser entirely * CLDC-4140: keep sex in factory for now * CLDC-4140: update household characteristics test * CLDC-4140: update log variable spec * CLDC-4202: Use relevant person_question_count in tests * CLDC-4140: update csv export tests * CLDC-4140: update validator tests * CLDC-4140: update row-parser spec * CLDC-4140: update csv-parser spec * CLDC-4140: update export spec * CLDC-4140: update log var defs spec * CLDC-4140: update export spec * CLDC-4140: update row parser spec * CLDC-4140: update validator spec * CLDC-4140: update csv parser spec * CLDC-4143: Update gender retirement validations rename functions as the new wording is more related to those that identify as male and any other option * CLDC-4143: Add 2026 tests * CLDC-4143: Update legacy json files causes issues with some old tests * CLDC-4143: Add error mappings for gender fields * CLDC-4143: Add new gender age retirement soft validation replaces the many check pages from previous years with a single one shows if either of the previous ones would show has agreed wording on ticket * fixup! CLDC-4143: Update gender retirement validations improve gender comment wording * CLDC-4143: Update non males validation name reference to 'soft validation' we found confusing * fixup! CLDC-4143: Add new gender age retirement soft validation update subsection specs * CLDC-4140: update parsers post merge * CLDC-4140: update tests after field renumbering * CLDC-4140: update tests after field renumbering * CLDC-4140: update spacing in to_2026_row * CLDC-4140: update row parser spec field numbers * CLDC-4140: update row parser field types --------- Co-authored-by: Nat Dean-Lewis --- .../form/lettings/questions/address_line1.rb | 4 +- .../form/lettings/questions/address_search.rb | 4 +- app/models/form/lettings/questions/age.rb | 10 +++- app/models/form/lettings/questions/age1.rb | 4 +- .../form/lettings/questions/age1_known.rb | 4 +- .../form/lettings/questions/age_known.rb | 10 +++- .../form/lettings/questions/armedforces.rb | 4 +- app/models/form/lettings/questions/beds.rb | 4 +- .../form/lettings/questions/benefits.rb | 4 +- .../form/lettings/questions/brent_4_weekly.rb | 4 +- .../lettings/questions/brent_bi_weekly.rb | 4 +- .../form/lettings/questions/brent_monthly.rb | 4 +- .../form/lettings/questions/brent_weekly.rb | 4 +- .../form/lettings/questions/builtype.rb | 4 +- .../lettings/questions/chcharge_4_weekly.rb | 4 +- .../lettings/questions/chcharge_bi_weekly.rb | 4 +- .../lettings/questions/chcharge_monthly.rb | 4 +- .../lettings/questions/chcharge_weekly.rb | 4 +- .../lettings/questions/condition_effects.rb | 4 +- app/models/form/lettings/questions/county.rb | 4 +- .../form/lettings/questions/declaration.rb | 4 +- .../form/lettings/questions/earnings.rb | 4 +- .../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 | 4 +- .../form/lettings/questions/ethnic_mixed.rb | 4 +- .../form/lettings/questions/ethnic_white.rb | 4 +- ...rst_time_property_let_as_social_housing.rb | 4 +- .../lettings/questions/gender_identity1.rb | 4 +- app/models/form/lettings/questions/hb.rb | 4 +- .../lettings/questions/hbrentshortfall.rb | 4 +- app/models/form/lettings/questions/hhmemb.rb | 4 +- .../form/lettings/questions/homeless.rb | 4 +- .../lettings/questions/household_charge.rb | 4 +- .../form/lettings/questions/housingneeds.rb | 4 +- .../lettings/questions/housingneeds_other.rb | 4 +- .../lettings/questions/housingneeds_type.rb | 4 +- app/models/form/lettings/questions/illness.rb | 4 +- app/models/form/lettings/questions/incfreq.rb | 4 +- .../lettings/questions/irproduct_other.rb | 4 +- .../form/lettings/questions/is_carehome.rb | 4 +- app/models/form/lettings/questions/joint.rb | 4 +- app/models/form/lettings/questions/la.rb | 4 +- app/models/form/lettings/questions/layear.rb | 4 +- app/models/form/lettings/questions/leftreg.rb | 4 +- .../lettings/questions/letting_allocation.rb | 4 +- .../form/lettings/questions/location_id.rb | 4 +- .../lettings/questions/location_id_search.rb | 4 +- .../form/lettings/questions/majorrepairs.rb | 4 +- .../questions/managing_organisation.rb | 4 +- app/models/form/lettings/questions/mrcdate.rb | 4 +- .../form/lettings/questions/nationality.rb | 4 +- .../lettings/questions/nationality_all.rb | 4 +- .../questions/nationality_all_group.rb | 4 +- .../form/lettings/questions/needs_type.rb | 4 +- .../lettings/questions/net_income_known.rb | 4 +- app/models/form/lettings/questions/offered.rb | 4 +- app/models/form/lettings/questions/period.rb | 4 +- .../form/lettings/questions/person_partner.rb | 10 +++- .../person_sex_registered_at_birth.rb | 2 +- .../questions/person_working_situation.rb | 10 +++- .../questions/postcode_for_full_address.rb | 4 +- .../form/lettings/questions/ppcodenk.rb | 4 +- .../form/lettings/questions/ppostcode_full.rb | 4 +- .../form/lettings/questions/preg_occ.rb | 4 +- .../lettings/questions/previous_la_known.rb | 4 +- .../lettings/questions/previous_let_type.rb | 4 +- .../lettings/questions/previous_tenure.rb | 4 +- .../questions/previous_tenure_renewal.rb | 4 +- app/models/form/lettings/questions/prevloc.rb | 4 +- .../lettings/questions/property_reference.rb | 4 +- .../lettings/questions/pscharge_4_weekly.rb | 4 +- .../lettings/questions/pscharge_bi_weekly.rb | 4 +- .../lettings/questions/pscharge_monthly.rb | 4 +- .../lettings/questions/pscharge_weekly.rb | 4 +- app/models/form/lettings/questions/reason.rb | 4 +- .../form/lettings/questions/reason_renewal.rb | 4 +- .../questions/reasonable_preference_reason.rb | 4 +- .../form/lettings/questions/reasonother.rb | 4 +- .../form/lettings/questions/reasonpref.rb | 4 +- .../lettings/questions/referral_direct.rb | 2 +- .../questions/referral_general_needs.rb | 4 +- .../questions/referral_general_needs_prp.rb | 4 +- .../form/lettings/questions/referral_hsc.rb | 2 +- .../lettings/questions/referral_justice.rb | 2 +- .../form/lettings/questions/referral_la.rb | 2 +- .../form/lettings/questions/referral_prp.rb | 2 +- .../questions/referral_supported_housing.rb | 4 +- .../referral_supported_housing_prp.rb | 4 +- .../form/lettings/questions/referral_type.rb | 2 +- app/models/form/lettings/questions/renewal.rb | 4 +- .../form/lettings/questions/rent_type.rb | 4 +- .../form/lettings/questions/reservist.rb | 4 +- app/models/form/lettings/questions/rsnvac.rb | 4 +- .../lettings/questions/rsnvac_first_let.rb | 4 +- .../lettings/questions/scharge_4_weekly.rb | 4 +- .../lettings/questions/scharge_bi_weekly.rb | 4 +- .../lettings/questions/scharge_monthly.rb | 4 +- .../form/lettings/questions/scharge_weekly.rb | 4 +- .../form/lettings/questions/scheme_id.rb | 4 +- .../form/lettings/questions/sheltered.rb | 4 +- .../questions/starter_tenancy_type.rb | 4 +- .../form/lettings/questions/startertenancy.rb | 4 +- .../form/lettings/questions/stock_owner.rb | 4 +- .../lettings/questions/supcharg_4_weekly.rb | 4 +- .../lettings/questions/supcharg_bi_weekly.rb | 4 +- .../lettings/questions/supcharg_monthly.rb | 4 +- .../lettings/questions/supcharg_weekly.rb | 4 +- .../form/lettings/questions/tenancy_length.rb | 4 +- .../tenancy_length_affordable_rent.rb | 4 +- .../tenancy_length_intermediate_rent.rb | 4 +- .../questions/tenancy_length_periodic.rb | 4 +- .../form/lettings/questions/tenancy_other.rb | 4 +- .../lettings/questions/tenancy_start_date.rb | 4 +- .../form/lettings/questions/tenancy_type.rb | 4 +- .../form/lettings/questions/tenant_code.rb | 4 +- .../form/lettings/questions/town_or_city.rb | 4 +- .../form/lettings/questions/tshortfall.rb | 4 +- .../lettings/questions/tshortfall_known.rb | 4 +- .../form/lettings/questions/unittype_gn.rb | 4 +- app/models/form/lettings/questions/uprn.rb | 4 +- .../form/lettings/questions/uprn_known.rb | 4 +- .../form/lettings/questions/voiddate.rb | 4 +- .../form/lettings/questions/waityear.rb | 4 +- .../form/lettings/questions/wheelchair.rb | 4 +- .../lettings/questions/working_situation1.rb | 4 +- app/models/form/question.rb | 2 +- lib/tasks/add_new_year_to_questions.rake | 54 +++++++++++++++++++ .../form/lettings/pages/person_age_spec.rb | 2 +- .../pages/person_lead_partner_spec.rb | 22 ++++---- .../person_sex_registered_at_birth_spec.rb | 2 +- .../pages/person_working_situation_spec.rb | 2 +- .../form/lettings/questions/age_known_spec.rb | 2 +- .../form/lettings/questions/age_spec.rb | 45 +++++++++++++++- .../lettings/questions/person_partner_spec.rb | 2 + .../person_sex_registered_at_birth_spec.rb | 2 +- .../person_working_situation_spec.rb | 2 +- 138 files changed, 387 insertions(+), 268 deletions(-) create mode 100644 lib/tasks/add_new_year_to_questions.rake diff --git a/app/models/form/lettings/questions/address_line1.rb b/app/models/form/lettings/questions/address_line1.rb index 4b1f67931..2f88b210e 100644 --- a/app/models/form/lettings/questions/address_line1.rb +++ b/app/models/form/lettings/questions/address_line1.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::AddressLine1 < ::Form::Question @type = "text" @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end @@ -18,5 +18,5 @@ class Form::Lettings::Questions::AddressLine1 < ::Form::Question ].select(&:present?).join("\n") end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/address_search.rb b/app/models/form/lettings/questions/address_search.rb index c6abe9a6c..eb970a5e5 100644 --- a/app/models/form/lettings/questions/address_search.rb +++ b/app/models/form/lettings/questions/address_search.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::AddressSearch < ::Form::Question @copy_key = "lettings.property_information.address_search" @plain_label = true @bottom_guidance_partial = "address_search" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end @@ -38,5 +38,5 @@ class Form::Lettings::Questions::AddressSearch < ::Form::Question answer_options(log, user).transform_values { |value| value["value"] } || {} end - QUESTION_NUMBER_FROM_YEAR = { 2024 => 12, 2025 => 16 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2024 => 12, 2025 => 16, 2026 => 16 }.freeze end diff --git a/app/models/form/lettings/questions/age.rb b/app/models/form/lettings/questions/age.rb index f35abe61e..61e70fe05 100644 --- a/app/models/form/lettings/questions/age.rb +++ b/app/models/form/lettings/questions/age.rb @@ -19,11 +19,17 @@ class Form::Lettings::Questions::Age < ::Form::Question base_question_number = case form.start_date.year when 2023 31 - else + when 2024 + 30 + when 2025 30 + when 2026 + 27 + else + 27 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end def hint_text diff --git a/app/models/form/lettings/questions/age1.rb b/app/models/form/lettings/questions/age1.rb index 72d89096c..428fabd42 100644 --- a/app/models/form/lettings/questions/age1.rb +++ b/app/models/form/lettings/questions/age1.rb @@ -10,8 +10,8 @@ class Form::Lettings::Questions::Age1 < ::Form::Question @max = 120 @min = 16 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31, 2025 => 31, 2026 => 30 }.freeze end diff --git a/app/models/form/lettings/questions/age1_known.rb b/app/models/form/lettings/questions/age1_known.rb index e54d7993b..753fdd2cb 100644 --- a/app/models/form/lettings/questions/age1_known.rb +++ b/app/models/form/lettings/questions/age1_known.rb @@ -8,10 +8,10 @@ class Form::Lettings::Questions::Age1Known < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "age1" => [0] } @hidden_in_check_answers = { "depends_on" => [{ "age1_known" => 0 }, { "age1_known" => 1 }] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31, 2025 => 31, 2026 => 30 }.freeze end diff --git a/app/models/form/lettings/questions/age_known.rb b/app/models/form/lettings/questions/age_known.rb index 2f5d7ce0b..c4bb65c2e 100644 --- a/app/models/form/lettings/questions/age_known.rb +++ b/app/models/form/lettings/questions/age_known.rb @@ -23,10 +23,16 @@ class Form::Lettings::Questions::AgeKnown < ::Form::Question base_question_number = case form.start_date.year when 2023 31 - else + when 2024 + 30 + when 2025 30 + when 2026 + 27 + else + 27 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end end diff --git a/app/models/form/lettings/questions/armedforces.rb b/app/models/form/lettings/questions/armedforces.rb index 9bfe4b643..32aac69ca 100644 --- a/app/models/form/lettings/questions/armedforces.rb +++ b/app/models/form/lettings/questions/armedforces.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Armedforces < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::Armedforces < ::Form::Question "6" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 66, 2024 => 65 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 66, 2024 => 65, 2025 => 65, 2026 => 72 }.freeze end diff --git a/app/models/form/lettings/questions/beds.rb b/app/models/form/lettings/questions/beds.rb index 1bafa3ddf..1e59c367c 100644 --- a/app/models/form/lettings/questions/beds.rb +++ b/app/models/form/lettings/questions/beds.rb @@ -7,12 +7,12 @@ class Form::Lettings::Questions::Beds < ::Form::Question @max = 12 @min = 1 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def derived?(log) log.is_bedsit? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 22 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 22, 2024 => 22, 2025 => 22, 2026 => 21 }.freeze end diff --git a/app/models/form/lettings/questions/benefits.rb b/app/models/form/lettings/questions/benefits.rb index f5f2a3ee1..4ab922215 100644 --- a/app/models/form/lettings/questions/benefits.rb +++ b/app/models/form/lettings/questions/benefits.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Benefits < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::Benefits < ::Form::Question "4" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 90, 2024 => 89 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 90, 2024 => 89, 2025 => 89, 2026 => 97 }.freeze end diff --git a/app/models/form/lettings/questions/brent_4_weekly.rb b/app/models/form/lettings/questions/brent_4_weekly.rb index 7087571fd..319b495a5 100644 --- a/app/models/form/lettings/questions/brent_4_weekly.rb +++ b/app/models/form/lettings/questions/brent_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Brent4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/brent_bi_weekly.rb b/app/models/form/lettings/questions/brent_bi_weekly.rb index 1a20fd61c..d33863756 100644 --- a/app/models/form/lettings/questions/brent_bi_weekly.rb +++ b/app/models/form/lettings/questions/brent_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::BrentBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/brent_monthly.rb b/app/models/form/lettings/questions/brent_monthly.rb index 245bde158..8e71bb8ec 100644 --- a/app/models/form/lettings/questions/brent_monthly.rb +++ b/app/models/form/lettings/questions/brent_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::BrentMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/brent_weekly.rb b/app/models/form/lettings/questions/brent_weekly.rb index c913816fc..706f94b3d 100644 --- a/app/models/form/lettings/questions/brent_weekly.rb +++ b/app/models/form/lettings/questions/brent_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::BrentWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/builtype.rb b/app/models/form/lettings/questions/builtype.rb index 8c34beca1..55f76536c 100644 --- a/app/models/form/lettings/questions/builtype.rb +++ b/app/models/form/lettings/questions/builtype.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Builtype < ::Form::Question @id = "builtype" @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] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -12,5 +12,5 @@ class Form::Lettings::Questions::Builtype < ::Form::Question "1" => { "value" => "Purpose built" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 20 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 20, 2024 => 20, 2025 => 20 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_4_weekly.rb b/app/models/form/lettings/questions/chcharge_4_weekly.rb index 341010eb0..403ab3e75 100644 --- a/app/models/form/lettings/questions/chcharge_4_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_4_weekly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::Chcharge4Weekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_bi_weekly.rb b/app/models/form/lettings/questions/chcharge_bi_weekly.rb index 0343839ca..274b26d0d 100644 --- a/app/models/form/lettings/questions/chcharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_bi_weekly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::ChchargeBiWeekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_monthly.rb b/app/models/form/lettings/questions/chcharge_monthly.rb index 9e68eb18f..967295d45 100644 --- a/app/models/form/lettings/questions/chcharge_monthly.rb +++ b/app/models/form/lettings/questions/chcharge_monthly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::ChchargeMonthly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_weekly.rb b/app/models/form/lettings/questions/chcharge_weekly.rb index 3c8b995eb..d27d586b4 100644 --- a/app/models/form/lettings/questions/chcharge_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_weekly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::ChchargeWeekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/condition_effects.rb b/app/models/form/lettings/questions/condition_effects.rb index 1821f6e98..af967d17e 100644 --- a/app/models/form/lettings/questions/condition_effects.rb +++ b/app/models/form/lettings/questions/condition_effects.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::ConditionEffects < ::Form::Question @type = "checkbox" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -27,5 +27,5 @@ class Form::Lettings::Questions::ConditionEffects < ::Form::Question "illness_type_10" => { "value" => "Other" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 74, 2024 => 73 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 74, 2024 => 73, 2025 => 73, 2026 => 80 }.freeze end diff --git a/app/models/form/lettings/questions/county.rb b/app/models/form/lettings/questions/county.rb index 12585fa8e..b634fd6dc 100644 --- a/app/models/form/lettings/questions/county.rb +++ b/app/models/form/lettings/questions/county.rb @@ -6,9 +6,9 @@ class Form::Lettings::Questions::County < ::Form::Question @type = "text" @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/declaration.rb b/app/models/form/lettings/questions/declaration.rb index 3261452cd..6a2572487 100644 --- a/app/models/form/lettings/questions/declaration.rb +++ b/app/models/form/lettings/questions/declaration.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Declaration < ::Form::Question @type = "checkbox" @check_answers_card_number = 0 unless form.start_year_2024_or_later? @top_guidance_partial = "privacy_notice_tenant" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -26,5 +26,5 @@ class Form::Lettings::Questions::Declaration < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 30, 2024 => 11 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 30, 2024 => 11, 2025 => 11, 2026 => 11 }.freeze end diff --git a/app/models/form/lettings/questions/earnings.rb b/app/models/form/lettings/questions/earnings.rb index 4d3437052..13482135e 100644 --- a/app/models/form/lettings/questions/earnings.rb +++ b/app/models/form/lettings/questions/earnings.rb @@ -15,9 +15,9 @@ class Form::Lettings::Questions::Earnings < ::Form::Question { "label" => " every month", "depends_on" => { "incfreq" => 2 } }, { "label" => " every year", "depends_on" => { "incfreq" => 3 } }, ] - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 88, 2024 => 87 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 88, 2024 => 87, 2025 => 87, 2026 => 95 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_arab.rb b/app/models/form/lettings/questions/ethnic_arab.rb index d642c1a1b..582d92704 100644 --- a/app/models/form/lettings/questions/ethnic_arab.rb +++ b/app/models/form/lettings/questions/ethnic_arab.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicArab < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::EthnicArab < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_asian.rb b/app/models/form/lettings/questions/ethnic_asian.rb index 7fb309bba..f488249a6 100644 --- a/app/models/form/lettings/questions/ethnic_asian.rb +++ b/app/models/form/lettings/questions/ethnic_asian.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicAsian < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -27,5 +27,5 @@ class Form::Lettings::Questions::EthnicAsian < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_black.rb b/app/models/form/lettings/questions/ethnic_black.rb index e3a88259e..f6902eb35 100644 --- a/app/models/form/lettings/questions/ethnic_black.rb +++ b/app/models/form/lettings/questions/ethnic_black.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicBlack < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -21,5 +21,5 @@ class Form::Lettings::Questions::EthnicBlack < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_group.rb b/app/models/form/lettings/questions/ethnic_group.rb index 16bdfc4ba..c1c0be096 100644 --- a/app/models/form/lettings/questions/ethnic_group.rb +++ b/app/models/form/lettings/questions/ethnic_group.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::EthnicGroup < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::EthnicGroup < ::Form::Question "17" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 34, 2024 => 33 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 34, 2024 => 33, 2025 => 33, 2026 => 33 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_mixed.rb b/app/models/form/lettings/questions/ethnic_mixed.rb index 14d1f213b..f12f997b6 100644 --- a/app/models/form/lettings/questions/ethnic_mixed.rb +++ b/app/models/form/lettings/questions/ethnic_mixed.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicMixed < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -24,5 +24,5 @@ class Form::Lettings::Questions::EthnicMixed < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_white.rb b/app/models/form/lettings/questions/ethnic_white.rb index 74430d840..98ebe78f3 100644 --- a/app/models/form/lettings/questions/ethnic_white.rb +++ b/app/models/form/lettings/questions/ethnic_white.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::EthnicWhite < ::Form::Question @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_white" @type = "radio" @check_answers_card_number = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -27,5 +27,5 @@ class Form::Lettings::Questions::EthnicWhite < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb b/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb index 09e6ece30..c9fb77abf 100644 --- a/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb +++ b/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb @@ -3,7 +3,7 @@ class Form::Lettings::Questions::FirstTimePropertyLetAsSocialHousing < ::Form::Q super @id = "first_time_property_let_as_social_housing" @type = "radio" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -21,5 +21,5 @@ class Form::Lettings::Questions::FirstTimePropertyLetAsSocialHousing < ::Form::Q form.start_year_2024_or_later? ? "This is a re-let of existing social housing stock." : "This is a re-let of existing social housing." end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 14, 2024 => 15, 2025 => 12 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 14, 2024 => 15, 2025 => 12, 2026 => 12 }.freeze end diff --git a/app/models/form/lettings/questions/gender_identity1.rb b/app/models/form/lettings/questions/gender_identity1.rb index 411bcd3d0..f3d86fde0 100644 --- a/app/models/form/lettings/questions/gender_identity1.rb +++ b/app/models/form/lettings/questions/gender_identity1.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::GenderIdentity1 < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::GenderIdentity1 < ::Form::Question "R" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 33, 2024 => 32 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 33, 2024 => 32, 2025 => 32 }.freeze end diff --git a/app/models/form/lettings/questions/hb.rb b/app/models/form/lettings/questions/hb.rb index 51da058b8..f9204e65a 100644 --- a/app/models/form/lettings/questions/hb.rb +++ b/app/models/form/lettings/questions/hb.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Hb < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -17,5 +17,5 @@ class Form::Lettings::Questions::Hb < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 89, 2024 => 88 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 89, 2024 => 88, 2025 => 88, 2026 => 96 }.freeze end diff --git a/app/models/form/lettings/questions/hbrentshortfall.rb b/app/models/form/lettings/questions/hbrentshortfall.rb index 294423815..dfc323c3a 100644 --- a/app/models/form/lettings/questions/hbrentshortfall.rb +++ b/app/models/form/lettings/questions/hbrentshortfall.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Hbrentshortfall < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Hbrentshortfall < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 99, 2024 => 98, 2025 => 96 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 99, 2024 => 98, 2025 => 96, 2026 => 104 }.freeze end diff --git a/app/models/form/lettings/questions/hhmemb.rb b/app/models/form/lettings/questions/hhmemb.rb index 88328a869..614b2b27e 100644 --- a/app/models/form/lettings/questions/hhmemb.rb +++ b/app/models/form/lettings/questions/hhmemb.rb @@ -8,9 +8,9 @@ class Form::Lettings::Questions::Hhmemb < ::Form::Question @max = 8 @min = 1 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @check_answers_card_title = "Household" if form.start_year_2026_or_later? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 31, 2024 => 30 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 31, 2024 => 30, 2025 => 30, 2026 => 29 }.freeze end diff --git a/app/models/form/lettings/questions/homeless.rb b/app/models/form/lettings/questions/homeless.rb index 1194fa929..44e03f937 100644 --- a/app/models/form/lettings/questions/homeless.rb +++ b/app/models/form/lettings/questions/homeless.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Homeless < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -13,5 +13,5 @@ class Form::Lettings::Questions::Homeless < ::Form::Question "1" => { "value" => "No" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 79, 2024 => 78 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 79, 2024 => 78, 2025 => 78, 2026 => 85 }.freeze end diff --git a/app/models/form/lettings/questions/household_charge.rb b/app/models/form/lettings/questions/household_charge.rb index 60fee977d..32bdee4a6 100644 --- a/app/models/form/lettings/questions/household_charge.rb +++ b/app/models/form/lettings/questions/household_charge.rb @@ -5,10 +5,10 @@ class Form::Lettings::Questions::HouseholdCharge < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 91, 2024 => 90 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 91, 2024 => 90, 2025 => 90, 2026 => 98 }.freeze end diff --git a/app/models/form/lettings/questions/housingneeds.rb b/app/models/form/lettings/questions/housingneeds.rb index 03c80d5cb..29f0b5882 100644 --- a/app/models/form/lettings/questions/housingneeds.rb +++ b/app/models/form/lettings/questions/housingneeds.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Housingneeds < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Housingneeds < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 70, 2024 => 69 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 70, 2024 => 69, 2025 => 69, 2026 => 76 }.freeze end diff --git a/app/models/form/lettings/questions/housingneeds_other.rb b/app/models/form/lettings/questions/housingneeds_other.rb index d99812535..d8915e936 100644 --- a/app/models/form/lettings/questions/housingneeds_other.rb +++ b/app/models/form/lettings/questions/housingneeds_other.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::HousingneedsOther < ::Form::Question @copy_key = "lettings.household_needs.housingneeds_type.housingneeds_other" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -24,5 +24,5 @@ class Form::Lettings::Questions::HousingneedsOther < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 72, 2024 => 71 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 72, 2024 => 71, 2025 => 71, 2026 => 78 }.freeze end diff --git a/app/models/form/lettings/questions/housingneeds_type.rb b/app/models/form/lettings/questions/housingneeds_type.rb index 50b9c3742..15b5782d5 100644 --- a/app/models/form/lettings/questions/housingneeds_type.rb +++ b/app/models/form/lettings/questions/housingneeds_type.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::HousingneedsType < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -17,5 +17,5 @@ class Form::Lettings::Questions::HousingneedsType < ::Form::Question "3" => { "value" => "None of the listed options" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 71, 2024 => 70 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 71, 2024 => 70, 2025 => 70, 2026 => 77 }.freeze end diff --git a/app/models/form/lettings/questions/illness.rb b/app/models/form/lettings/questions/illness.rb index f92a7a04a..4bc3667fb 100644 --- a/app/models/form/lettings/questions/illness.rb +++ b/app/models/form/lettings/questions/illness.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Illness < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Illness < ::Form::Question "3" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 73, 2024 => 72 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 73, 2024 => 72, 2025 => 72, 2026 => 79 }.freeze end diff --git a/app/models/form/lettings/questions/incfreq.rb b/app/models/form/lettings/questions/incfreq.rb index d4384218e..74e24f439 100644 --- a/app/models/form/lettings/questions/incfreq.rb +++ b/app/models/form/lettings/questions/incfreq.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::Incfreq < ::Form::Question @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS @hidden_in_check_answers = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::Incfreq < ::Form::Question "3" => { "value" => "Yearly" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 87, 2024 => 86 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 87, 2024 => 86, 2025 => 86, 2026 => 94 }.freeze end diff --git a/app/models/form/lettings/questions/irproduct_other.rb b/app/models/form/lettings/questions/irproduct_other.rb index b004d5dc2..993fcbf54 100644 --- a/app/models/form/lettings/questions/irproduct_other.rb +++ b/app/models/form/lettings/questions/irproduct_other.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::IrproductOther < ::Form::Question @id = "irproduct_other" @copy_key = "lettings.setup.rent_type.irproduct_other" @type = "text" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8, 2025 => 8, 2026 => 8 }.freeze end diff --git a/app/models/form/lettings/questions/is_carehome.rb b/app/models/form/lettings/questions/is_carehome.rb index 25dae3fc6..ea2df6eac 100644 --- a/app/models/form/lettings/questions/is_carehome.rb +++ b/app/models/form/lettings/questions/is_carehome.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::IsCarehome < ::Form::Question @type = "radio" @check_answers_card_number = 0 @conditional_for = { "chcharge" => [1] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -23,5 +23,5 @@ class Form::Lettings::Questions::IsCarehome < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 93, 2024 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 93, 2024 => 92, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/joint.rb b/app/models/form/lettings/questions/joint.rb index 2542cd1c7..11f6749a6 100644 --- a/app/models/form/lettings/questions/joint.rb +++ b/app/models/form/lettings/questions/joint.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Joint < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Joint < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 25, 2024 => 25, 2025 => 26 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 25, 2024 => 25, 2025 => 26, 2026 => 25 }.freeze end diff --git a/app/models/form/lettings/questions/la.rb b/app/models/form/lettings/questions/la.rb index c6d6f8240..d4d6954d2 100644 --- a/app/models/form/lettings/questions/la.rb +++ b/app/models/form/lettings/questions/la.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::La < ::Form::Question @type = "select" @check_answers_card_number = nil @hint_text = "" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end @@ -13,5 +13,5 @@ class Form::Lettings::Questions::La < ::Form::Question { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 13, 2024 => 14, 2025 => 18 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 13, 2024 => 14, 2025 => 18, 2026 => 18 }.freeze end diff --git a/app/models/form/lettings/questions/layear.rb b/app/models/form/lettings/questions/layear.rb index fdaad6c22..d8fa0a3a8 100644 --- a/app/models/form/lettings/questions/layear.rb +++ b/app/models/form/lettings/questions/layear.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Layear < ::Form::Question @id = "layear" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -36,5 +36,5 @@ class Form::Lettings::Questions::Layear < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 75, 2024 => 74 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 75, 2024 => 74, 2025 => 74, 2026 => 81 }.freeze end diff --git a/app/models/form/lettings/questions/leftreg.rb b/app/models/form/lettings/questions/leftreg.rb index 9b90566cf..3e81b52c0 100644 --- a/app/models/form/lettings/questions/leftreg.rb +++ b/app/models/form/lettings/questions/leftreg.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Leftreg < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::Leftreg < ::Form::Question "3" => { "value" => "Person prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 67, 2024 => 66 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 67, 2024 => 66, 2025 => 66, 2026 => 73 }.freeze end diff --git a/app/models/form/lettings/questions/letting_allocation.rb b/app/models/form/lettings/questions/letting_allocation.rb index 08310da13..2029335c4 100644 --- a/app/models/form/lettings/questions/letting_allocation.rb +++ b/app/models/form/lettings/questions/letting_allocation.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::LettingAllocation < ::Form::Question @id = "letting_allocation" @type = "checkbox" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -28,5 +28,5 @@ class Form::Lettings::Questions::LettingAllocation < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 84, 2024 => 83 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 84, 2024 => 83, 2025 => 83, 2026 => 90 }.freeze end diff --git a/app/models/form/lettings/questions/location_id.rb b/app/models/form/lettings/questions/location_id.rb index 5bc316476..80e34aac0 100644 --- a/app/models/form/lettings/questions/location_id.rb +++ b/app/models/form/lettings/questions/location_id.rb @@ -10,7 +10,7 @@ class Form::Lettings::Questions::LocationId < ::Form::Question "needstype": 2, }, } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @disable_clearing_if_not_routed_or_dynamic_answer_options = true @top_guidance_partial = "finding_location" end @@ -55,5 +55,5 @@ private false end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5, 2025 => 5, 2026 => 5 }.freeze end diff --git a/app/models/form/lettings/questions/location_id_search.rb b/app/models/form/lettings/questions/location_id_search.rb index 5e1734b51..e64125fda 100644 --- a/app/models/form/lettings/questions/location_id_search.rb +++ b/app/models/form/lettings/questions/location_id_search.rb @@ -10,7 +10,7 @@ class Form::Lettings::Questions::LocationIdSearch < ::Form::Question "needstype": 2, }, } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @disable_clearing_if_not_routed_or_dynamic_answer_options = true @top_guidance_partial = "finding_location" end @@ -50,5 +50,5 @@ private false end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5, 2025 => 5, 2026 => 5 }.freeze end diff --git a/app/models/form/lettings/questions/majorrepairs.rb b/app/models/form/lettings/questions/majorrepairs.rb index a0c8a3a5c..b9b740cb1 100644 --- a/app/models/form/lettings/questions/majorrepairs.rb +++ b/app/models/form/lettings/questions/majorrepairs.rb @@ -6,10 +6,10 @@ class Form::Lettings::Questions::Majorrepairs < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @conditional_for = { "mrcdate" => [1] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 24 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 24, 2024 => 24, 2025 => 24, 2026 => 23 }.freeze end diff --git a/app/models/form/lettings/questions/managing_organisation.rb b/app/models/form/lettings/questions/managing_organisation.rb index 9c766ebe0..bf1b23c54 100644 --- a/app/models/form/lettings/questions/managing_organisation.rb +++ b/app/models/form/lettings/questions/managing_organisation.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::ManagingOrganisation < ::Form::Question @id = "managing_organisation_id" @derived = true @type = "select" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end def answer_options(log = nil, user = nil) @@ -83,5 +83,5 @@ private true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 2 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 2, 2024 => 2, 2025 => 2, 2026 => 2 }.freeze end diff --git a/app/models/form/lettings/questions/mrcdate.rb b/app/models/form/lettings/questions/mrcdate.rb index 0c311d186..33c511887 100644 --- a/app/models/form/lettings/questions/mrcdate.rb +++ b/app/models/form/lettings/questions/mrcdate.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::Mrcdate < ::Form::Question @id = "mrcdate" @copy_key = "lettings.property_information.property_major_repairs.mrcdate" @type = "date" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 24 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 24, 2024 => 24, 2025 => 24, 2026 => 23 }.freeze end diff --git a/app/models/form/lettings/questions/nationality.rb b/app/models/form/lettings/questions/nationality.rb index 8c4a700c1..a966f68f7 100644 --- a/app/models/form/lettings/questions/nationality.rb +++ b/app/models/form/lettings/questions/nationality.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Nationality < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -19,5 +19,5 @@ class Form::Lettings::Questions::Nationality < ::Form::Question "13" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35, 2025 => 35, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/nationality_all.rb b/app/models/form/lettings/questions/nationality_all.rb index a4bb750a1..368c0ffb5 100644 --- a/app/models/form/lettings/questions/nationality_all.rb +++ b/app/models/form/lettings/questions/nationality_all.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::NationalityAll < ::Form::Question @type = "select" @check_answers_card_number = 1 @answer_options = GlobalConstants::COUNTRIES_ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_label(log, _current_user = nil) @@ -17,7 +17,7 @@ class Form::Lettings::Questions::NationalityAll < ::Form::Question @answer_options.reject { |key, _| key == "826" } end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35, 2025 => 35, 2026 => 35 }.freeze def label_from_value(value) return unless value diff --git a/app/models/form/lettings/questions/nationality_all_group.rb b/app/models/form/lettings/questions/nationality_all_group.rb index 559b1c9a0..0c4ed5d90 100644 --- a/app/models/form/lettings/questions/nationality_all_group.rb +++ b/app/models/form/lettings/questions/nationality_all_group.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::NationalityAllGroup < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @conditional_for = { "nationality_all" => [12] } @hidden_in_check_answers = { "depends_on" => [{ "nationality_all_group" => 12 }] } end @@ -17,5 +17,5 @@ class Form::Lettings::Questions::NationalityAllGroup < ::Form::Question "0" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35, 2025 => 35, 2026 => 35 }.freeze end diff --git a/app/models/form/lettings/questions/needs_type.rb b/app/models/form/lettings/questions/needs_type.rb index 9c32e30f9..87f331c07 100644 --- a/app/models/form/lettings/questions/needs_type.rb +++ b/app/models/form/lettings/questions/needs_type.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::NeedsType < ::Form::Question @id = "needstype" @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] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @top_guidance_partial = "needs_type" if form.start_year_2026_or_later? end @@ -13,5 +13,5 @@ class Form::Lettings::Questions::NeedsType < ::Form::Question "2" => { "value" => "Supported housing" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 3 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 3, 2024 => 3, 2025 => 3, 2026 => 3 }.freeze end diff --git a/app/models/form/lettings/questions/net_income_known.rb b/app/models/form/lettings/questions/net_income_known.rb index 01c3bcaa3..4bcbe7fd1 100644 --- a/app/models/form/lettings/questions/net_income_known.rb +++ b/app/models/form/lettings/questions/net_income_known.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::NetIncomeKnown < ::Form::Question @check_answers_card_number = 0 @top_guidance_partial = "what_counts_as_income" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::NetIncomeKnown < ::Form::Question "2" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 86, 2024 => 85 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 86, 2024 => 85, 2025 => 85, 2026 => 93 }.freeze end diff --git a/app/models/form/lettings/questions/offered.rb b/app/models/form/lettings/questions/offered.rb index c1aae8d32..38eccb40d 100644 --- a/app/models/form/lettings/questions/offered.rb +++ b/app/models/form/lettings/questions/offered.rb @@ -8,8 +8,8 @@ class Form::Lettings::Questions::Offered < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 18 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 18, 2024 => 18, 2025 => 18, 2026 => 18 }.freeze end diff --git a/app/models/form/lettings/questions/period.rb b/app/models/form/lettings/questions/period.rb index 6f98bd2a8..a0fb51d9f 100644 --- a/app/models/form/lettings/questions/period.rb +++ b/app/models/form/lettings/questions/period.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Period < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -22,7 +22,7 @@ class Form::Lettings::Questions::Period < ::Form::Question "10" => { "value" => "Weekly for 53 weeks" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 92, 2024 => 91 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 92, 2024 => 91, 2025 => 91, 2026 => 99 }.freeze def displayed_answer_options(log, _user) return ANSWER_OPTIONS if log.managing_organisation.nil? diff --git a/app/models/form/lettings/questions/person_partner.rb b/app/models/form/lettings/questions/person_partner.rb index 98a22a448..c7b673131 100644 --- a/app/models/form/lettings/questions/person_partner.rb +++ b/app/models/form/lettings/questions/person_partner.rb @@ -21,11 +21,17 @@ class Form::Lettings::Questions::PersonPartner < ::Form::Question base_question_number = case form.start_date.year when 2023 30 - else + when 2024 + 29 + when 2025 29 + when 2026 + 28 + else + 28 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end def derived?(log) diff --git a/app/models/form/lettings/questions/person_sex_registered_at_birth.rb b/app/models/form/lettings/questions/person_sex_registered_at_birth.rb index e5c54058f..819cc2df1 100644 --- a/app/models/form/lettings/questions/person_sex_registered_at_birth.rb +++ b/app/models/form/lettings/questions/person_sex_registered_at_birth.rb @@ -18,7 +18,7 @@ class Form::Lettings::Questions::PersonSexRegisteredAtBirth < ::Form::Question def question_number base_question_number = 29 - base_question_number + (5 * @person_index) + base_question_number + (form.person_question_count * @person_index) end def label_from_value(value, _log = nil, _user = nil) diff --git a/app/models/form/lettings/questions/person_working_situation.rb b/app/models/form/lettings/questions/person_working_situation.rb index 74e11d030..0089416fb 100644 --- a/app/models/form/lettings/questions/person_working_situation.rb +++ b/app/models/form/lettings/questions/person_working_situation.rb @@ -57,10 +57,16 @@ class Form::Lettings::Questions::PersonWorkingSituation < ::Form::Question base_question_number = case form.start_date.year when 2023 33 - else + when 2024 + 32 + when 2025 32 + when 2026 + 31 + else + 31 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end end diff --git a/app/models/form/lettings/questions/postcode_for_full_address.rb b/app/models/form/lettings/questions/postcode_for_full_address.rb index 114cf0db5..84c93f7d7 100644 --- a/app/models/form/lettings/questions/postcode_for_full_address.rb +++ b/app/models/form/lettings/questions/postcode_for_full_address.rb @@ -18,10 +18,10 @@ class Form::Lettings::Questions::PostcodeForFullAddress < ::Form::Question } @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true @bottom_guidance_partial = "address_fallback" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/ppcodenk.rb b/app/models/form/lettings/questions/ppcodenk.rb index 5eec607eb..7cf7c63c2 100644 --- a/app/models/form/lettings/questions/ppcodenk.rb +++ b/app/models/form/lettings/questions/ppcodenk.rb @@ -8,7 +8,7 @@ class Form::Lettings::Questions::Ppcodenk < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "ppostcode_full" => [0] } @hidden_in_check_answers = { "depends_on" => [{ "ppcodenk" => 0 }, { "ppcodenk" => 1 }] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end @@ -17,5 +17,5 @@ class Form::Lettings::Questions::Ppcodenk < ::Form::Question "1" => { "value" => "No" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79, 2025 => 79, 2026 => 86 }.freeze end diff --git a/app/models/form/lettings/questions/ppostcode_full.rb b/app/models/form/lettings/questions/ppostcode_full.rb index 804576ca1..41feded8f 100644 --- a/app/models/form/lettings/questions/ppostcode_full.rb +++ b/app/models/form/lettings/questions/ppostcode_full.rb @@ -13,9 +13,9 @@ class Form::Lettings::Questions::PpostcodeFull < ::Form::Question }] @check_answers_card_number = 0 @inferred_answers = { "prevloc" => { "is_previous_la_inferred" => true } } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79, 2025 => 79, 2026 => 86 }.freeze end diff --git a/app/models/form/lettings/questions/preg_occ.rb b/app/models/form/lettings/questions/preg_occ.rb index 1ad1bd1f5..03bae1c04 100644 --- a/app/models/form/lettings/questions/preg_occ.rb +++ b/app/models/form/lettings/questions/preg_occ.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::PregOcc < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::PregOcc < ::Form::Question "3" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 69, 2024 => 68 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 69, 2024 => 68, 2025 => 68, 2026 => 75 }.freeze end diff --git a/app/models/form/lettings/questions/previous_la_known.rb b/app/models/form/lettings/questions/previous_la_known.rb index 2145e9d1f..b8721ff46 100644 --- a/app/models/form/lettings/questions/previous_la_known.rb +++ b/app/models/form/lettings/questions/previous_la_known.rb @@ -8,11 +8,11 @@ class Form::Lettings::Questions::PreviousLaKnown < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "prevloc" => [1] } @hidden_in_check_answers = { "depends_on" => [{ "previous_la_known" => 0 }, { "previous_la_known" => 1 }] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80, 2025 => 80, 2026 => 87 }.freeze end diff --git a/app/models/form/lettings/questions/previous_let_type.rb b/app/models/form/lettings/questions/previous_let_type.rb index 8c35df84c..660e42869 100644 --- a/app/models/form/lettings/questions/previous_let_type.rb +++ b/app/models/form/lettings/questions/previous_let_type.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::PreviousLetType < ::Form::Question @id = "unitletas" @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] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -41,7 +41,7 @@ class Form::Lettings::Questions::PreviousLetType < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 16, 2024 => 17, 2025 => 14 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 16, 2024 => 17, 2025 => 14, 2026 => 14 }.freeze def answer_options return ANSWER_OPTIONS_AFTER_2025 if form.start_year_2025_or_later? diff --git a/app/models/form/lettings/questions/previous_tenure.rb b/app/models/form/lettings/questions/previous_tenure.rb index 47647b03c..65a3911b2 100644 --- a/app/models/form/lettings/questions/previous_tenure.rb +++ b/app/models/form/lettings/questions/previous_tenure.rb @@ -12,7 +12,7 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question else ANSWER_OPTIONS end - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -103,5 +103,5 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question "25" => { "value" => "Any other accommodation" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77, 2025 => 77, 2026 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/previous_tenure_renewal.rb b/app/models/form/lettings/questions/previous_tenure_renewal.rb index e932fd218..20f0900bb 100644 --- a/app/models/form/lettings/questions/previous_tenure_renewal.rb +++ b/app/models/form/lettings/questions/previous_tenure_renewal.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = form.start_year_2025_or_later? ? ANSWER_OPTIONS_2025 : ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -22,5 +22,5 @@ class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question "6" => { "value" => "Other supported housing" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77, 2025 => 77, 2026 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/prevloc.rb b/app/models/form/lettings/questions/prevloc.rb index 4ad7dbf11..0bf445956 100644 --- a/app/models/form/lettings/questions/prevloc.rb +++ b/app/models/form/lettings/questions/prevloc.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::Prevloc < ::Form::Question @type = "select" @inferred_check_answers_value = [{ "condition" => { "previous_la_known" => 0 }, "value" => "Not known" }] @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end @@ -14,5 +14,5 @@ class Form::Lettings::Questions::Prevloc < ::Form::Question { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).map { |la| [la.code, la.name] }.to_h) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80, 2025 => 80, 2026 => 87 }.freeze end diff --git a/app/models/form/lettings/questions/property_reference.rb b/app/models/form/lettings/questions/property_reference.rb index d4587ffe8..e81d4b6a2 100644 --- a/app/models/form/lettings/questions/property_reference.rb +++ b/app/models/form/lettings/questions/property_reference.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::PropertyReference < ::Form::Question @id = "propcode" @type = "text" @width = 10 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 8, 2024 => 10 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 8, 2024 => 10, 2025 => 10, 2026 => 10 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_4_weekly.rb b/app/models/form/lettings/questions/pscharge_4_weekly.rb index 565be72c9..233e87854 100644 --- a/app/models/form/lettings/questions/pscharge_4_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Pscharge4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_bi_weekly.rb b/app/models/form/lettings/questions/pscharge_bi_weekly.rb index b8bb94f40..dcd1df89f 100644 --- a/app/models/form/lettings/questions/pscharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::PschargeBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_monthly.rb b/app/models/form/lettings/questions/pscharge_monthly.rb index ccbd2655b..b5c175ceb 100644 --- a/app/models/form/lettings/questions/pscharge_monthly.rb +++ b/app/models/form/lettings/questions/pscharge_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::PschargeMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_weekly.rb b/app/models/form/lettings/questions/pscharge_weekly.rb index 9b0a0e320..4bf327c08 100644 --- a/app/models/form/lettings/questions/pscharge_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::PschargeWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/reason.rb b/app/models/form/lettings/questions/reason.rb index 7f0cd86a0..a40d9d134 100644 --- a/app/models/form/lettings/questions/reason.rb +++ b/app/models/form/lettings/questions/reason.rb @@ -10,7 +10,7 @@ class Form::Lettings::Questions::Reason < ::Form::Question 20, ], } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -132,5 +132,5 @@ class Form::Lettings::Questions::Reason < ::Form::Question }.freeze, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2024 => 76 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2024 => 76, 2025 => 76, 2026 => 83 }.freeze end diff --git a/app/models/form/lettings/questions/reason_renewal.rb b/app/models/form/lettings/questions/reason_renewal.rb index c00bd2581..d5fccca67 100644 --- a/app/models/form/lettings/questions/reason_renewal.rb +++ b/app/models/form/lettings/questions/reason_renewal.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::ReasonRenewal < ::Form::Question @type = "radio" @copy_key = "lettings.household_situation.reason.#{page.id}.reason" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @conditional_for = { "reasonother" => [ 20, @@ -37,5 +37,5 @@ class Form::Lettings::Questions::ReasonRenewal < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76, 2025 => 76, 2026 => 83 }.freeze end diff --git a/app/models/form/lettings/questions/reasonable_preference_reason.rb b/app/models/form/lettings/questions/reasonable_preference_reason.rb index 75b450b91..485ad830f 100644 --- a/app/models/form/lettings/questions/reasonable_preference_reason.rb +++ b/app/models/form/lettings/questions/reasonable_preference_reason.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::ReasonablePreferenceReason < ::Form::Question @type = "checkbox" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -17,5 +17,5 @@ class Form::Lettings::Questions::ReasonablePreferenceReason < ::Form::Question "rp_dontknow" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 83, 2024 => 82 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 83, 2024 => 82, 2025 => 82, 2026 => 89 }.freeze end diff --git a/app/models/form/lettings/questions/reasonother.rb b/app/models/form/lettings/questions/reasonother.rb index 7e600916b..b92a7b8f4 100644 --- a/app/models/form/lettings/questions/reasonother.rb +++ b/app/models/form/lettings/questions/reasonother.rb @@ -5,8 +5,8 @@ class Form::Lettings::Questions::Reasonother < ::Form::Question @copy_key = "lettings.household_situation.reason.#{@page.id}.reasonother" @type = "text" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76, 2025 => 76, 2026 => 83 }.freeze end diff --git a/app/models/form/lettings/questions/reasonpref.rb b/app/models/form/lettings/questions/reasonpref.rb index e63f65584..f54e98c15 100644 --- a/app/models/form/lettings/questions/reasonpref.rb +++ b/app/models/form/lettings/questions/reasonpref.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Reasonpref < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Reasonpref < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 82, 2024 => 81 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 82, 2024 => 81, 2025 => 81, 2026 => 88 }.freeze end diff --git a/app/models/form/lettings/questions/referral_direct.rb b/app/models/form/lettings/questions/referral_direct.rb index d79065df7..5373f3f3f 100644 --- a/app/models/form/lettings/questions/referral_direct.rb +++ b/app/models/form/lettings/questions/referral_direct.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralDirect < ::Form::Question @copy_key = "lettings.household_situation.referral.direct" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_general_needs.rb b/app/models/form/lettings/questions/referral_general_needs.rb index 6c9f159e4..f2b2167a3 100644 --- a/app/models/form/lettings/questions/referral_general_needs.rb +++ b/app/models/form/lettings/questions/referral_general_needs.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralGeneralNeeds < ::Form::Question @copy_key = "lettings.household_situation.referral.general_needs.la" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -93,5 +93,5 @@ class Form::Lettings::Questions::ReferralGeneralNeeds < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_general_needs_prp.rb b/app/models/form/lettings/questions/referral_general_needs_prp.rb index 492f32c8f..37d222961 100644 --- a/app/models/form/lettings/questions/referral_general_needs_prp.rb +++ b/app/models/form/lettings/questions/referral_general_needs_prp.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralGeneralNeedsPrp < ::Form::Question @copy_key = "lettings.household_situation.referral.general_needs.prp" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -102,5 +102,5 @@ class Form::Lettings::Questions::ReferralGeneralNeedsPrp < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_hsc.rb b/app/models/form/lettings/questions/referral_hsc.rb index f049b6359..d589768a5 100644 --- a/app/models/form/lettings/questions/referral_hsc.rb +++ b/app/models/form/lettings/questions/referral_hsc.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralHsc < ::Form::Question @copy_key = "lettings.household_situation.referral.hsc" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_justice.rb b/app/models/form/lettings/questions/referral_justice.rb index f222f5fe8..ccd836a2f 100644 --- a/app/models/form/lettings/questions/referral_justice.rb +++ b/app/models/form/lettings/questions/referral_justice.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralJustice < ::Form::Question @copy_key = "lettings.household_situation.referral.justice" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_la.rb b/app/models/form/lettings/questions/referral_la.rb index 352457964..ede72194c 100644 --- a/app/models/form/lettings/questions/referral_la.rb +++ b/app/models/form/lettings/questions/referral_la.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralLa < ::Form::Question @copy_key = "lettings.household_situation.referral.la" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_prp.rb b/app/models/form/lettings/questions/referral_prp.rb index 825967a3f..b0aed7b98 100644 --- a/app/models/form/lettings/questions/referral_prp.rb +++ b/app/models/form/lettings/questions/referral_prp.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralPrp < ::Form::Question @copy_key = "lettings.household_situation.referral.prp" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_supported_housing.rb b/app/models/form/lettings/questions/referral_supported_housing.rb index 3a7ba04ac..2caddc8e2 100644 --- a/app/models/form/lettings/questions/referral_supported_housing.rb +++ b/app/models/form/lettings/questions/referral_supported_housing.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralSupportedHousing < ::Form::Question @copy_key = "lettings.household_situation.referral.supported_housing.la" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -93,5 +93,5 @@ class Form::Lettings::Questions::ReferralSupportedHousing < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_supported_housing_prp.rb b/app/models/form/lettings/questions/referral_supported_housing_prp.rb index d0236f4af..89f02a723 100644 --- a/app/models/form/lettings/questions/referral_supported_housing_prp.rb +++ b/app/models/form/lettings/questions/referral_supported_housing_prp.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralSupportedHousingPrp < ::Form::Question @copy_key = "lettings.household_situation.referral.supported_housing.prp" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -105,5 +105,5 @@ class Form::Lettings::Questions::ReferralSupportedHousingPrp < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_type.rb b/app/models/form/lettings/questions/referral_type.rb index b4bb87515..b84e85155 100644 --- a/app/models/form/lettings/questions/referral_type.rb +++ b/app/models/form/lettings/questions/referral_type.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralType < ::Form::Question @copy_key = "lettings.household_situation.referral.type" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/renewal.rb b/app/models/form/lettings/questions/renewal.rb index e78d98247..71007166b 100644 --- a/app/models/form/lettings/questions/renewal.rb +++ b/app/models/form/lettings/questions/renewal.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Renewal < ::Form::Question @id = "renewal" @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] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end ANSWER_OPTIONS = { @@ -13,5 +13,5 @@ class Form::Lettings::Questions::Renewal < ::Form::Question } .freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 4, 2024 => 6 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 4, 2024 => 6, 2025 => 6, 2026 => 6 }.freeze end diff --git a/app/models/form/lettings/questions/rent_type.rb b/app/models/form/lettings/questions/rent_type.rb index 7700c5284..5940c18dc 100644 --- a/app/models/form/lettings/questions/rent_type.rb +++ b/app/models/form/lettings/questions/rent_type.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::RentType < ::Form::Question @top_guidance_partial = "rent_type_definitions" @answer_options = answer_options @conditional_for = { "irproduct_other" => [5] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end ANSWER_OPTIONS = { @@ -29,7 +29,7 @@ class Form::Lettings::Questions::RentType < ::Form::Question "6" => { "value" => "Specified accommodation - exempt accommodation, managed properties, refuges and local authority hostels" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8, 2025 => 8, 2026 => 8 }.freeze def answer_options form.start_year_2025_or_later? ? ANSWER_OPTIONS_2025 : ANSWER_OPTIONS diff --git a/app/models/form/lettings/questions/reservist.rb b/app/models/form/lettings/questions/reservist.rb index 023f1655d..f6e97c3d8 100644 --- a/app/models/form/lettings/questions/reservist.rb +++ b/app/models/form/lettings/questions/reservist.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Reservist < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Reservist < ::Form::Question "3" => { "value" => "Person prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 68, 2024 => 67 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 68, 2024 => 67, 2025 => 67, 2026 => 74 }.freeze end diff --git a/app/models/form/lettings/questions/rsnvac.rb b/app/models/form/lettings/questions/rsnvac.rb index 42c8d9f92..48523b284 100644 --- a/app/models/form/lettings/questions/rsnvac.rb +++ b/app/models/form/lettings/questions/rsnvac.rb @@ -3,7 +3,7 @@ class Form::Lettings::Questions::Rsnvac < ::Form::Question super @id = "rsnvac" @type = "radio" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -98,5 +98,5 @@ class Form::Lettings::Questions::Rsnvac < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 17, 2024 => 18, 2025 => 15 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 17, 2024 => 18, 2025 => 15, 2026 => 15 }.freeze end diff --git a/app/models/form/lettings/questions/rsnvac_first_let.rb b/app/models/form/lettings/questions/rsnvac_first_let.rb index 01389871c..16d6219b6 100644 --- a/app/models/form/lettings/questions/rsnvac_first_let.rb +++ b/app/models/form/lettings/questions/rsnvac_first_let.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::RsnvacFirstLet < ::Form::Question @id = "rsnvac" @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] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -13,5 +13,5 @@ class Form::Lettings::Questions::RsnvacFirstLet < ::Form::Question "15" => { "value" => "First let of new-build property" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 15, 2024 => 16, 2025 => 13 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 15, 2024 => 16, 2025 => 13, 2026 => 13 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_4_weekly.rb b/app/models/form/lettings/questions/scharge_4_weekly.rb index 8c4156774..e95f5b1d2 100644 --- a/app/models/form/lettings/questions/scharge_4_weekly.rb +++ b/app/models/form/lettings/questions/scharge_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Scharge4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_bi_weekly.rb b/app/models/form/lettings/questions/scharge_bi_weekly.rb index 7803f8b37..24904797e 100644 --- a/app/models/form/lettings/questions/scharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/scharge_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SchargeBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_monthly.rb b/app/models/form/lettings/questions/scharge_monthly.rb index 073d4a772..631192bd4 100644 --- a/app/models/form/lettings/questions/scharge_monthly.rb +++ b/app/models/form/lettings/questions/scharge_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SchargeMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_weekly.rb b/app/models/form/lettings/questions/scharge_weekly.rb index b6befbad3..5f8aa9843 100644 --- a/app/models/form/lettings/questions/scharge_weekly.rb +++ b/app/models/form/lettings/questions/scharge_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SchargeWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scheme_id.rb b/app/models/form/lettings/questions/scheme_id.rb index 862ef3130..c9b371f40 100644 --- a/app/models/form/lettings/questions/scheme_id.rb +++ b/app/models/form/lettings/questions/scheme_id.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::SchemeId < ::Form::Question @answer_options = answer_options @top_guidance_partial = "finding_scheme" @bottom_guidance_partial = "scheme_selection" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @inferred_answers = { "location.name": { "scheme_has_multiple_locations?": false, @@ -56,5 +56,5 @@ private false end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 9, 2024 => 4 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 9, 2024 => 4, 2025 => 4, 2026 => 4 }.freeze end diff --git a/app/models/form/lettings/questions/sheltered.rb b/app/models/form/lettings/questions/sheltered.rb index 35a16ae05..ca684c7af 100644 --- a/app/models/form/lettings/questions/sheltered.rb +++ b/app/models/form/lettings/questions/sheltered.rb @@ -3,7 +3,7 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question super @id = "sheltered" @type = "radio" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -27,5 +27,5 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 29, 2024 => 29, 2025 => 25 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 29, 2024 => 29, 2025 => 25, 2026 => 24 }.freeze end diff --git a/app/models/form/lettings/questions/starter_tenancy_type.rb b/app/models/form/lettings/questions/starter_tenancy_type.rb index dfda74bc0..4224781bd 100644 --- a/app/models/form/lettings/questions/starter_tenancy_type.rb +++ b/app/models/form/lettings/questions/starter_tenancy_type.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::StarterTenancyType < ::Form::Question @type = "radio" @check_answers_card_number = 0 @conditional_for = { "tenancyother" => [3] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -65,5 +65,5 @@ class Form::Lettings::Questions::StarterTenancyType < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze end diff --git a/app/models/form/lettings/questions/startertenancy.rb b/app/models/form/lettings/questions/startertenancy.rb index 6bec6a360..464e5d3a6 100644 --- a/app/models/form/lettings/questions/startertenancy.rb +++ b/app/models/form/lettings/questions/startertenancy.rb @@ -5,10 +5,10 @@ class Form::Lettings::Questions::Startertenancy < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "2" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 26, 2024 => 26, 2025 => 27 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 26, 2024 => 26, 2025 => 27, 2026 => 26 }.freeze end diff --git a/app/models/form/lettings/questions/stock_owner.rb b/app/models/form/lettings/questions/stock_owner.rb index 466b08e3f..6d2ee1d64 100644 --- a/app/models/form/lettings/questions/stock_owner.rb +++ b/app/models/form/lettings/questions/stock_owner.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::StockOwner < ::Form::Question @id = "owning_organisation_id" @derived = true @type = "select" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end def answer_options(log = nil, user = nil) @@ -86,5 +86,5 @@ private "#{name} (inactive as of #{merge_date.to_fs(:govuk_date)})" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 1 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 1, 2024 => 1, 2025 => 1, 2026 => 1 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_4_weekly.rb b/app/models/form/lettings/questions/supcharg_4_weekly.rb index 227aead7a..1e3c502b2 100644 --- a/app/models/form/lettings/questions/supcharg_4_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Supcharg4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_bi_weekly.rb b/app/models/form/lettings/questions/supcharg_bi_weekly.rb index e01783122..4ad8048b8 100644 --- a/app/models/form/lettings/questions/supcharg_bi_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SupchargBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_monthly.rb b/app/models/form/lettings/questions/supcharg_monthly.rb index 25da179d2..85060eda9 100644 --- a/app/models/form/lettings/questions/supcharg_monthly.rb +++ b/app/models/form/lettings/questions/supcharg_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SupchargMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_weekly.rb b/app/models/form/lettings/questions/supcharg_weekly.rb index c6f7a666d..e34473e17 100644 --- a/app/models/form/lettings/questions/supcharg_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SupchargWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length.rb b/app/models/form/lettings/questions/tenancy_length.rb index a3155f8c0..27ac9dbdc 100644 --- a/app/models/form/lettings/questions/tenancy_length.rb +++ b/app/models/form/lettings/questions/tenancy_length.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLength < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 28 }.freeze 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 58b83fe90..f26adbe6f 100644 --- a/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb +++ b/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLengthAffordableRent < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 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 c85583d95..ed3a13b0c 100644 --- a/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb +++ b/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLengthIntermediateRent < ::Form::Questio @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 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 e7f9336ec..85041680e 100644 --- a/app/models/form/lettings/questions/tenancy_length_periodic.rb +++ b/app/models/form/lettings/questions/tenancy_length_periodic.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLengthPeriodic < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 28 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_other.rb b/app/models/form/lettings/questions/tenancy_other.rb index 8a8a94108..6f455fead 100644 --- a/app/models/form/lettings/questions/tenancy_other.rb +++ b/app/models/form/lettings/questions/tenancy_other.rb @@ -5,8 +5,8 @@ class Form::Lettings::Questions::TenancyOther < ::Form::Question @copy_key = "lettings.tenancy_information.tenancy.#{page.id}.tenancyother" @type = "text" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_start_date.rb b/app/models/form/lettings/questions/tenancy_start_date.rb index b7d82b399..fc5137626 100644 --- a/app/models/form/lettings/questions/tenancy_start_date.rb +++ b/app/models/form/lettings/questions/tenancy_start_date.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::TenancyStartDate < ::Form::Question @id = "startdate" @type = "date" @unresolved_hint_text = "Some scheme details have changed, and now this log needs updating. Check that the tenancy start date is correct." - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end def date_example_override(log) @@ -20,5 +20,5 @@ class Form::Lettings::Questions::TenancyStartDate < ::Form::Question I18n.t("forms.#{form.start_date.year}.#{copy_key}.example", default: "", example_date:) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 5, 2024 => 7 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 5, 2024 => 7, 2025 => 7, 2026 => 7 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_type.rb b/app/models/form/lettings/questions/tenancy_type.rb index 96fda2687..d2b9a5925 100644 --- a/app/models/form/lettings/questions/tenancy_type.rb +++ b/app/models/form/lettings/questions/tenancy_type.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::TenancyType < ::Form::Question @type = "radio" @check_answers_card_number = 0 @conditional_for = { "tenancyother" => [3] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -65,5 +65,5 @@ class Form::Lettings::Questions::TenancyType < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze end diff --git a/app/models/form/lettings/questions/tenant_code.rb b/app/models/form/lettings/questions/tenant_code.rb index 7b7be3cac..36b3d0aee 100644 --- a/app/models/form/lettings/questions/tenant_code.rb +++ b/app/models/form/lettings/questions/tenant_code.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::TenantCode < ::Form::Question @id = "tenancycode" @type = "text" @width = 10 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 7, 2024 => 9 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 7, 2024 => 9, 2025 => 9, 2026 => 9 }.freeze end diff --git a/app/models/form/lettings/questions/town_or_city.rb b/app/models/form/lettings/questions/town_or_city.rb index 5673b7f01..6db52c92d 100644 --- a/app/models/form/lettings/questions/town_or_city.rb +++ b/app/models/form/lettings/questions/town_or_city.rb @@ -6,9 +6,9 @@ class Form::Lettings::Questions::TownOrCity < ::Form::Question @type = "text" @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/tshortfall.rb b/app/models/form/lettings/questions/tshortfall.rb index ced2a426a..a271f9e06 100644 --- a/app/models/form/lettings/questions/tshortfall.rb +++ b/app/models/form/lettings/questions/tshortfall.rb @@ -21,9 +21,9 @@ class Form::Lettings::Questions::Tshortfall < ::Form::Question { "label" => " every week for 52 weeks", "depends_on" => { "period" => 1 } }, { "label" => " every week for 53 weeks", "depends_on" => { "period" => 10 } }, ] - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97, 2026 => 105 }.freeze end diff --git a/app/models/form/lettings/questions/tshortfall_known.rb b/app/models/form/lettings/questions/tshortfall_known.rb index 8ba0b038c..97b41a09b 100644 --- a/app/models/form/lettings/questions/tshortfall_known.rb +++ b/app/models/form/lettings/questions/tshortfall_known.rb @@ -7,10 +7,10 @@ class Form::Lettings::Questions::TshortfallKnown < ::Form::Question @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS @conditional_for = { "tshortfall" => [0] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97, 2026 => 105 }.freeze end diff --git a/app/models/form/lettings/questions/unittype_gn.rb b/app/models/form/lettings/questions/unittype_gn.rb index ad8298929..34391bf83 100644 --- a/app/models/form/lettings/questions/unittype_gn.rb +++ b/app/models/form/lettings/questions/unittype_gn.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::UnittypeGn < ::Form::Question @id = "unittype_gn" @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] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::UnittypeGn < ::Form::Question "6" => { "value" => "Other" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 19 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 19, 2024 => 19, 2025 => 19, 2026 => 19 }.freeze end diff --git a/app/models/form/lettings/questions/uprn.rb b/app/models/form/lettings/questions/uprn.rb index 7f1f240f9..98ffb75c2 100644 --- a/app/models/form/lettings/questions/uprn.rb +++ b/app/models/form/lettings/questions/uprn.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Uprn < ::Form::Question @copy_key = "lettings.property_information.uprn.uprn" @type = "text" @width = 10 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @inferred_check_answers_value = [ { "condition" => { "uprn_known" => 0 }, @@ -35,5 +35,5 @@ class Form::Lettings::Questions::Uprn < ::Form::Question "\n\n#{value.join("\n")}" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16, 2026 => 16 }.freeze end diff --git a/app/models/form/lettings/questions/uprn_known.rb b/app/models/form/lettings/questions/uprn_known.rb index 6ac70e415..5dab0f35a 100644 --- a/app/models/form/lettings/questions/uprn_known.rb +++ b/app/models/form/lettings/questions/uprn_known.rb @@ -18,7 +18,7 @@ class Form::Lettings::Questions::UprnKnown < ::Form::Question { "uprn_known" => 1 }, ], } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -30,5 +30,5 @@ class Form::Lettings::Questions::UprnKnown < ::Form::Question I18n.t("validations.property.uprn_known.invalid") end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16, 2026 => 16 }.freeze end diff --git a/app/models/form/lettings/questions/voiddate.rb b/app/models/form/lettings/questions/voiddate.rb index 3bce8a7b8..afdbb01ae 100644 --- a/app/models/form/lettings/questions/voiddate.rb +++ b/app/models/form/lettings/questions/voiddate.rb @@ -3,9 +3,9 @@ class Form::Lettings::Questions::Voiddate < ::Form::Question super @id = "voiddate" @type = "date" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @top_guidance_partial = "void_date" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 23 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 23, 2024 => 23, 2025 => 23, 2026 => 22 }.freeze end diff --git a/app/models/form/lettings/questions/waityear.rb b/app/models/form/lettings/questions/waityear.rb index 5c81fdedc..7e0f2b77e 100644 --- a/app/models/form/lettings/questions/waityear.rb +++ b/app/models/form/lettings/questions/waityear.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Waityear < ::Form::Question @id = "waityear" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -49,5 +49,5 @@ class Form::Lettings::Questions::Waityear < ::Form::Question }.freeze end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 76, 2024 => 75 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 76, 2024 => 75, 2025 => 75, 2026 => 82 }.freeze end diff --git a/app/models/form/lettings/questions/wheelchair.rb b/app/models/form/lettings/questions/wheelchair.rb index 9da5399e6..289e298f5 100644 --- a/app/models/form/lettings/questions/wheelchair.rb +++ b/app/models/form/lettings/questions/wheelchair.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Wheelchair < ::Form::Question @id = "wchair" @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] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -12,5 +12,5 @@ class Form::Lettings::Questions::Wheelchair < ::Form::Question "2" => { "value" => "No" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 21 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 21, 2024 => 21, 2025 => 21, 2026 => 20 }.freeze end diff --git a/app/models/form/lettings/questions/working_situation1.rb b/app/models/form/lettings/questions/working_situation1.rb index 6098eb136..0a0221579 100644 --- a/app/models/form/lettings/questions/working_situation1.rb +++ b/app/models/form/lettings/questions/working_situation1.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::WorkingSituation1 < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = answer_options - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -40,5 +40,5 @@ class Form::Lettings::Questions::WorkingSituation1 < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 37, 2024 => 36 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 37, 2024 => 36, 2025 => 36, 2026 => 36 }.freeze end diff --git a/app/models/form/question.rb b/app/models/form/question.rb index e5bc0c9a6..be90899f9 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -367,7 +367,7 @@ private inferred_answer["value"] if inferred_answer.present? end - # every year currently visible should be specified. + # every year currently visible should have an explicit question number specified. # however, form_handler.rb will still initialise the next form even if its not visible. # so we have a fallback to the latest year for these future years so all question have a question number. def get_question_number_from_hash(hash) diff --git a/lib/tasks/add_new_year_to_questions.rake b/lib/tasks/add_new_year_to_questions.rake new file mode 100644 index 000000000..bd5a75cd3 --- /dev/null +++ b/lib/tasks/add_new_year_to_questions.rake @@ -0,0 +1,54 @@ +require "pathname" + +desc "Add a new year to all lettings question number hashes and saves the new code. +Usage: bundle exec rake add_new_year_to_questions[new_year,log_type]. +Example: bundle exec rake add_new_year_to_questions[2027,lettings]. +This rake should only be run as part of local development at the start of new collection year creation. +Make sure your working tree is clean before running this, it will update each question file in place. +Note that this will only update questions with a QUESTION_NUMBER_FROM_YEAR hash set. +Some questions (such as any of the per person questions) which define custom question logic will need manual review. +Params: +- new_year: the year to add, e.g. 2025 +- log_type: the type of log to update. can be lettings or sales" +task :add_new_year_to_questions, %i[new_year log_type] => :environment do |_task, args| + new_year = args[:new_year].to_i + previous_year = new_year - 1 + + root = Pathname.new("app/models/form/#{args[:log_type]}/questions") + files = root.glob("*.rb") + + hash_re = /QUESTION_NUMBER_FROM_YEAR\s*=\s*\{([^}]*)}\.freeze/m + + changed = [] + + files.each do |path| + text = path.read + next unless text.include?("QUESTION_NUMBER_FROM_YEAR") + + match = hash_re.match(text) + next unless match + + body = match[1] + pairs = body.scan(/(\d+)\s*=>\s*(\d+)/) + next if pairs.empty? + + year_to_num = pairs.to_h { |y, n| [y.to_i, n.to_i] } + next if year_to_num.key?(new_year) + next unless year_to_num.key?(previous_year) + + year_to_num[new_year] = year_to_num[previous_year] + + items = year_to_num.keys.sort.map { |y| "#{y} => #{year_to_num[y]}" }.join(", ") + replacement = "QUESTION_NUMBER_FROM_YEAR = { #{items} }.freeze" + + new_text = text.sub(hash_re, replacement) + + next if new_text == text + + path.write(new_text) + changed << path + end + + puts "changed #{changed.length}" + changed.each { |p| puts p } +end diff --git a/spec/models/form/lettings/pages/person_age_spec.rb b/spec/models/form/lettings/pages/person_age_spec.rb index 2043052fd..d782b01fa 100644 --- a/spec/models/form/lettings/pages/person_age_spec.rb +++ b/spec/models/form/lettings/pages/person_age_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Lettings::Pages::PersonAge, type: :model do 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_2024_or_later?: false)) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2024_or_later?: false, start_year_2026_or_later?: false, person_question_count: 4)) } let(:person_index) { 2 } it "has correct subsection" do diff --git a/spec/models/form/lettings/pages/person_lead_partner_spec.rb b/spec/models/form/lettings/pages/person_lead_partner_spec.rb index 55ee97e1d..ce5e258f0 100644 --- a/spec/models/form/lettings/pages/person_lead_partner_spec.rb +++ b/spec/models/form/lettings/pages/person_lead_partner_spec.rb @@ -4,7 +4,9 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do subject(:page) { described_class.new(nil, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) } + let(:start_year_2026_or_later?) { false } + let(:person_question_count) { 4 } + let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2026_or_later?: start_year_2026_or_later?, person_question_count:) } let(:subsection) { instance_double(Form::Subsection, form:) } let(:person_index) { 2 } @@ -26,9 +28,7 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do end context "with start year < 2026", metadata: { year: 25 } do - before do - allow(form).to receive(:start_year_2026_or_later?).and_return(false) - end + let(:person_question_count) { 4 } it "has correct depends_on" do expect(page.depends_on).to eq( @@ -38,9 +38,8 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do end context "with start year >= 2026", metadata: { year: 26 } do - before do - allow(form).to receive(:start_year_2026_or_later?).and_return(true) - end + let(:start_year_2026_or_later?) { true } + let(:person_question_count) { 5 } it "has correct depends_on" do expect(page.depends_on).to eq( @@ -71,9 +70,7 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do end context "with start year < 2026", metadata: { year: 25 } do - before do - allow(form).to receive(:start_year_2026_or_later?).and_return(false) - end + let(:person_question_count) { 4 } it "has correct depends_on" do expect(page.depends_on).to eq( @@ -83,9 +80,8 @@ RSpec.describe Form::Lettings::Pages::PersonLeadPartner, type: :model do end context "with start year >= 2026", metadata: { year: 26 } do - before do - allow(form).to receive(:start_year_2026_or_later?).and_return(true) - end + let(:start_year_2026_or_later?) { true } + let(:person_question_count) { 5 } it "has correct depends_on" do expect(page.depends_on).to eq( diff --git a/spec/models/form/lettings/pages/person_sex_registered_at_birth_spec.rb b/spec/models/form/lettings/pages/person_sex_registered_at_birth_spec.rb index 628fe5f30..30feef7b4 100644 --- a/spec/models/form/lettings/pages/person_sex_registered_at_birth_spec.rb +++ b/spec/models/form/lettings/pages/person_sex_registered_at_birth_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Lettings::Pages::PersonSexRegisteredAtBirth, type: :model d subject(:page) { described_class.new(page_id, page_definition, subsection, person_index:) } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2026, 4, 1))) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2026, 4, 1), person_question_count: 5)) } let(:person_index) { 1 } let(:page_id) { "person_2_sex_registered_at_birth" } diff --git a/spec/models/form/lettings/pages/person_working_situation_spec.rb b/spec/models/form/lettings/pages/person_working_situation_spec.rb index a88cdcde0..2c0e6e50a 100644 --- a/spec/models/form/lettings/pages/person_working_situation_spec.rb +++ b/spec/models/form/lettings/pages/person_working_situation_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Lettings::Pages::PersonWorkingSituation, type: :model do 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))) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1), start_year_2026_or_later?: false, person_question_count: 4)) } let(:person_index) { 2 } before do diff --git a/spec/models/form/lettings/questions/age_known_spec.rb b/spec/models/form/lettings/questions/age_known_spec.rb index 5f7946a16..7a1835628 100644 --- a/spec/models/form/lettings/questions/age_known_spec.rb +++ b/spec/models/form/lettings/questions/age_known_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do 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)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 4), person_question_count: 4))) } let(:person_index) { 2 } it "has correct page" do diff --git a/spec/models/form/lettings/questions/age_spec.rb b/spec/models/form/lettings/questions/age_spec.rb index 639f695fd..8d3003b82 100644 --- a/spec/models/form/lettings/questions/age_spec.rb +++ b/spec/models/form/lettings/questions/age_spec.rb @@ -1,10 +1,15 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::Age, type: :model do + include CollectionTimeHelper + 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_2024_or_later?: false))) } + let(:start_year_2026_or_later?) { false } + let(:person_question_count) { 5 } + let(:start_year) { current_collection_start_year } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: collection_start_date_for_year(start_year), start_year_2024_or_later?: true, start_year_2026_or_later?: start_year_2026_or_later?, person_question_count:))) } let(:person_index) { 2 } it "has correct page" do @@ -48,6 +53,25 @@ RSpec.describe Form::Lettings::Questions::Age, type: :model do it "has the correct check_answers_card_number" do expect(question.check_answers_card_number).to eq(2) end + + context "with year 2025", metadata: { year: 25 } do + let(:start_year) { 2025 } + let(:person_question_count) { 4 } + + it "has the correct question number" do + expect(question.question_number).to eq(38) + end + end + + context "with year 2026", metadata: { year: 26 } do + let(:start_year_2026_or_later?) { true } + let(:start_year) { 2026 } + let(:person_question_count) { 5 } + + it "has the correct question number" do + expect(question.question_number).to eq(37) + end + end end context "with person 3" do @@ -69,5 +93,24 @@ RSpec.describe Form::Lettings::Questions::Age, type: :model do it "has the correct check_answers_card_number" do expect(question.check_answers_card_number).to eq(3) end + + context "with year 2025", metadata: { year: 25 } do + let(:start_year) { 2025 } + let(:person_question_count) { 4 } + + it "has the correct question number" do + expect(question.question_number).to eq(42) + end + end + + context "with year 2026", metadata: { year: 26 } do + let(:start_year_2026_or_later?) { true } + let(:start_year) { 2026 } + let(:person_question_count) { 5 } + + it "has the correct question number" do + expect(question.question_number).to eq(42) + end + end end end diff --git a/spec/models/form/lettings/questions/person_partner_spec.rb b/spec/models/form/lettings/questions/person_partner_spec.rb index 2106bc36f..cfe12fae2 100644 --- a/spec/models/form/lettings/questions/person_partner_spec.rb +++ b/spec/models/form/lettings/questions/person_partner_spec.rb @@ -7,6 +7,7 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do let(:question_definition) { nil } let(:year) { nil } + let(:person_question_count) { 5 } let(:page) do instance_double( Form::Page, @@ -17,6 +18,7 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do start_date: year ? collection_start_date_for_year(year) : current_collection_start_date, start_year_2025_or_later?: year.nil? || year >= 2025, start_year_2026_or_later?: year.nil? || year >= 2026, + person_question_count:, ), ), ) diff --git a/spec/models/form/lettings/questions/person_sex_registered_at_birth_spec.rb b/spec/models/form/lettings/questions/person_sex_registered_at_birth_spec.rb index 90f48cfda..afa6e59a7 100644 --- a/spec/models/form/lettings/questions/person_sex_registered_at_birth_spec.rb +++ b/spec/models/form/lettings/questions/person_sex_registered_at_birth_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Form::Lettings::Questions::PersonSexRegisteredAtBirth, type: :mod let(:page) { instance_double(Form::Page) } let(:person_index) { 2 } let(:subsection) { instance_double(Form::Subsection) } - let(:form) { instance_double(Form, start_date: Time.zone.local(2026, 4, 1)) } + let(:form) { instance_double(Form, start_date: Time.zone.local(2026, 4, 1), person_question_count: 5) } before do allow(page).to receive(:subsection).and_return(subsection) diff --git a/spec/models/form/lettings/questions/person_working_situation_spec.rb b/spec/models/form/lettings/questions/person_working_situation_spec.rb index 503c699b2..b56c543a8 100644 --- a/spec/models/form/lettings/questions/person_working_situation_spec.rb +++ b/spec/models/form/lettings/questions/person_working_situation_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Form::Lettings::Questions::PersonWorkingSituation, type: :model d 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(2025, 4, 4)))) } + let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 4), start_year_2026_or_later?: false, person_question_count: 4))) } let(:person_index) { 2 } before do