From c7c401c190a376b8f18593c203c15c5c829b8984 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Mon, 9 Feb 2026 17:03:42 +0000 Subject: [PATCH] CLDC-4142: Add final question numbers --- app/models/form.rb | 8 ++++++++ .../form/lettings/questions/gender_description.rb | 10 ++++++++-- .../form/lettings/questions/gender_same_as_sex.rb | 10 ++++++++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/models/form.rb b/app/models/form.rb index e86596288..dc53d0fbd 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -357,4 +357,12 @@ class Form def start_year_2026_or_later? start_date && start_date.year >= 2026 end + + def person_question_count + if start_year_2026_or_later? + 5 + else + 4 + end + end end diff --git a/app/models/form/lettings/questions/gender_description.rb b/app/models/form/lettings/questions/gender_description.rb index 1de5fac9c..e2d3e91c4 100644 --- a/app/models/form/lettings/questions/gender_description.rb +++ b/app/models/form/lettings/questions/gender_description.rb @@ -4,13 +4,19 @@ class Form::Lettings::Questions::GenderDescription < ::Form::Question @id = "gender_description#{person_index}" @type = "text" @check_answers_card_number = person_index - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @person_index = person_index + @question_number = question_number end def derived?(log) log.public_send("gender_same_as_sex#{@person_index}") != 2 end - QUESTION_NUMBER_FROM_YEAR = { 2026 => 0 }.freeze + def question_number + return 32 if @person_index == 1 + + base_question_number = 30 + + base_question_number + (form.person_question_count * @person_index) + end end diff --git a/app/models/form/lettings/questions/gender_same_as_sex.rb b/app/models/form/lettings/questions/gender_same_as_sex.rb index bf5cb7e19..aa706f0ec 100644 --- a/app/models/form/lettings/questions/gender_same_as_sex.rb +++ b/app/models/form/lettings/questions/gender_same_as_sex.rb @@ -4,9 +4,9 @@ class Form::Lettings::Questions::GenderSameAsSex < ::Form::Question @id = "gender_same_as_sex#{person_index}" @type = "radio" @check_answers_card_number = person_index - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @conditional_for = { "gender_description#{person_index}" => [2] } @person_index = person_index + @question_number = question_number end def answer_options @@ -18,5 +18,11 @@ class Form::Lettings::Questions::GenderSameAsSex < ::Form::Question }.freeze end - QUESTION_NUMBER_FROM_YEAR = { 2026 => 0 }.freeze + def question_number + return 32 if @person_index == 1 + + base_question_number = 30 + + base_question_number + (form.person_question_count * @person_index) + end end