From e24a77b9ca9221929a69cc14e9f7f89dcc86ca45 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Mon, 26 Jan 2026 12:23:46 +0000 Subject: [PATCH] CLDC-4151: Add new referrals questions --- .../form/lettings/pages/referral_noms.rb | 11 +++++++++ .../form/lettings/pages/referral_org.rb | 11 +++++++++ .../form/lettings/pages/referral_register.rb | 11 +++++++++ .../form/lettings/questions/referral_noms.rb | 24 +++++++++++++++++++ .../form/lettings/questions/referral_org.rb | 24 +++++++++++++++++++ .../lettings/questions/referral_register.rb | 24 +++++++++++++++++++ .../subsections/household_situation.rb | 8 ++++++- .../2026/lettings/household_situation.en.yml | 24 +++---------------- 8 files changed, 115 insertions(+), 22 deletions(-) create mode 100644 app/models/form/lettings/pages/referral_noms.rb create mode 100644 app/models/form/lettings/pages/referral_org.rb create mode 100644 app/models/form/lettings/pages/referral_register.rb create mode 100644 app/models/form/lettings/questions/referral_noms.rb create mode 100644 app/models/form/lettings/questions/referral_org.rb create mode 100644 app/models/form/lettings/questions/referral_register.rb diff --git a/app/models/form/lettings/pages/referral_noms.rb b/app/models/form/lettings/pages/referral_noms.rb new file mode 100644 index 000000000..af1590676 --- /dev/null +++ b/app/models/form/lettings/pages/referral_noms.rb @@ -0,0 +1,11 @@ +# added in 2026 +class Form::Lettings::Pages::ReferralNoms < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "referral_noms" + end + + def questions + @questions ||= [Form::Lettings::Questions::ReferralNoms.new(nil, nil, self)] + end +end diff --git a/app/models/form/lettings/pages/referral_org.rb b/app/models/form/lettings/pages/referral_org.rb new file mode 100644 index 000000000..8d3aa2b7d --- /dev/null +++ b/app/models/form/lettings/pages/referral_org.rb @@ -0,0 +1,11 @@ +# added in 2026 +class Form::Lettings::Pages::ReferralOrg < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "referral_org" + end + + def questions + @questions ||= [Form::Lettings::Questions::ReferralOrg.new(nil, nil, self)] + end +end diff --git a/app/models/form/lettings/pages/referral_register.rb b/app/models/form/lettings/pages/referral_register.rb new file mode 100644 index 000000000..e835b3c1c --- /dev/null +++ b/app/models/form/lettings/pages/referral_register.rb @@ -0,0 +1,11 @@ +# added in 2026 +class Form::Lettings::Pages::ReferralRegister < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "referral_register" + end + + def questions + @questions ||= [Form::Lettings::Questions::ReferralRegister.new(nil, nil, self)] + end +end diff --git a/app/models/form/lettings/questions/referral_noms.rb b/app/models/form/lettings/questions/referral_noms.rb new file mode 100644 index 000000000..00d2581dc --- /dev/null +++ b/app/models/form/lettings/questions/referral_noms.rb @@ -0,0 +1,24 @@ +# added in 2026 +class Form::Lettings::Questions::ReferralNoms < ::Form::Question + def initialize(id, hsh, page) + super + @id = "referral_noms" + @copy_key = "lettings.household_situation.referral.noms" + @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] + end + + def answer_options + { + "1" => { + "value" => "Answer A", + }, + "2" => { + "value" => "Answer B", + }, + }.freeze + end + + QUESTION_NUMBER_FROM_YEAR = { 2025 => 84 }.freeze +end diff --git a/app/models/form/lettings/questions/referral_org.rb b/app/models/form/lettings/questions/referral_org.rb new file mode 100644 index 000000000..5425fce56 --- /dev/null +++ b/app/models/form/lettings/questions/referral_org.rb @@ -0,0 +1,24 @@ +# added in 2026 +class Form::Lettings::Questions::ReferralOrg < ::Form::Question + def initialize(id, hsh, page) + super + @id = "referral_org" + @copy_key = "lettings.household_situation.referral.org" + @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] + end + + def answer_options + { + "1" => { + "value" => "Answer A", + }, + "2" => { + "value" => "Answer B", + }, + }.freeze + end + + QUESTION_NUMBER_FROM_YEAR = { 2025 => 84 }.freeze +end diff --git a/app/models/form/lettings/questions/referral_register.rb b/app/models/form/lettings/questions/referral_register.rb new file mode 100644 index 000000000..4769fcdbe --- /dev/null +++ b/app/models/form/lettings/questions/referral_register.rb @@ -0,0 +1,24 @@ +# added in 2026 +class Form::Lettings::Questions::ReferralRegister < ::Form::Question + def initialize(id, hsh, page) + super + @id = "referral_register" + @copy_key = "lettings.household_situation.referral.register" + @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] + end + + def answer_options + { + "1" => { + "value" => "Answer A", + }, + "2" => { + "value" => "Answer B", + }, + }.freeze + end + + QUESTION_NUMBER_FROM_YEAR = { 2025 => 84 }.freeze +end diff --git a/app/models/form/lettings/subsections/household_situation.rb b/app/models/form/lettings/subsections/household_situation.rb index 8bf747f01..3f4133233 100644 --- a/app/models/form/lettings/subsections/household_situation.rb +++ b/app/models/form/lettings/subsections/household_situation.rb @@ -27,7 +27,13 @@ class Form::Lettings::Subsections::HouseholdSituation < ::Form::Subsection end def referral_questions - if form.start_year_2025_or_later? + if form.start_year_2026_or_later? + [ + Form::Lettings::Pages::ReferralRegister.new(nil, nil, self), + Form::Lettings::Pages::ReferralNoms.new(nil, nil, self), + Form::Lettings::Pages::ReferralOrg.new(nil, nil, self), + ] + elsif form.start_year_2025_or_later? [ Form::Lettings::Pages::ReferralType.new(nil, nil, self), Form::Lettings::Pages::ReferralDirect.new(nil, nil, self), diff --git a/config/locales/forms/2026/lettings/household_situation.en.yml b/config/locales/forms/2026/lettings/household_situation.en.yml index 1d3e135c7..279ab53c2 100644 --- a/config/locales/forms/2026/lettings/household_situation.en.yml +++ b/config/locales/forms/2026/lettings/household_situation.en.yml @@ -112,37 +112,19 @@ en: question_text: "How was this letting allocated?" referral: - type: + register: page_header: "" check_answer_label: "Source of referral for letting" check_answer_prompt: "Select source of referral" hint_text: "" question_text: "What was the source of referral for this letting?" - direct: + noms: page_header: "" check_answer_label: "Source of referral for letting" check_answer_prompt: "Select source of referral" hint_text: "" question_text: "What was the source of referral for this letting?" - la: - page_header: "" - check_answer_label: "Source of referral for letting" - check_answer_prompt: "Select source of referral" - hint_text: "" - question_text: "What was the source of referral for this letting?" - prp: - page_header: "" - check_answer_label: "Source of referral for letting" - check_answer_prompt: "Select source of referral" - hint_text: "" - question_text: "What was the source of referral for this letting?" - hsc: - page_header: "" - check_answer_label: "Source of referral for letting" - check_answer_prompt: "Select source of referral" - hint_text: "" - question_text: "What was the source of referral for this letting?" - justice: + org: page_header: "" check_answer_label: "Source of referral for letting" check_answer_prompt: "Select source of referral"