From bd8cc96999616e3bbabbaf8208d658569f8e8493 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Wed, 14 Dec 2022 13:48:49 +0000 Subject: [PATCH] feat: add dynamic question ids and check_answers behaviour --- app/models/form/sales/pages/person1_age.rb | 21 ++++++++++-- .../sales/pages/person1_age_joint_purchase.rb | 34 +++++++++++++++++++ .../sales/pages/person1_gender_identity.rb | 2 +- .../person1_gender_identity_joint_purchase.rb | 2 +- app/models/form/sales/pages/person1_known.rb | 10 +++--- .../pages/person1_known_joint_purchase.rb | 21 ++++++++++++ app/models/form/sales/pages/person2_age.rb | 21 ++++++++++-- .../sales/pages/person2_age_joint_purchase.rb | 34 +++++++++++++++++++ app/models/form/sales/pages/person2_known.rb | 8 ++--- .../pages/person2_known_joint_purchase.rb | 21 ++++++++++++ app/models/form/sales/pages/person3_age.rb | 21 ++++++++++-- .../sales/pages/person3_age_joint_purchase.rb | 34 +++++++++++++++++++ app/models/form/sales/pages/person3_known.rb | 6 ++-- .../pages/person3_known_joint_purchase.rb | 20 +++++++++++ app/models/form/sales/pages/person4_age.rb | 21 ++++++++++-- .../sales/pages/person4_age_joint_purchase.rb | 34 +++++++++++++++++++ app/models/form/sales/pages/person4_known.rb | 4 +-- .../pages/person4_known_joint_purchase.rb | 19 +++++++++++ .../form/sales/questions/person1_age.rb | 9 ++--- .../form/sales/questions/person1_age_known.rb | 18 ++-------- .../questions/person1_gender_identity.rb | 3 +- .../person1_gender_identity_joint_purchase.rb | 19 ----------- .../form/sales/questions/person1_known.rb | 2 +- ...1_relationship_to_buyer1_joint_purchase.rb | 20 ----------- .../form/sales/questions/person2_age.rb | 9 ++--- .../form/sales/questions/person2_age_known.rb | 18 ++-------- .../form/sales/questions/person2_known.rb | 2 +- .../form/sales/questions/person3_age.rb | 9 ++--- .../form/sales/questions/person3_age_known.rb | 18 ++-------- .../form/sales/questions/person3_known.rb | 2 +- .../form/sales/questions/person4_age.rb | 9 ++--- .../form/sales/questions/person4_age_known.rb | 18 ++-------- .../form/sales/questions/person4_known.rb | 2 +- .../subsections/household_characteristics.rb | 8 +++++ 34 files changed, 342 insertions(+), 157 deletions(-) create mode 100644 app/models/form/sales/pages/person1_age_joint_purchase.rb create mode 100644 app/models/form/sales/pages/person1_known_joint_purchase.rb create mode 100644 app/models/form/sales/pages/person2_age_joint_purchase.rb create mode 100644 app/models/form/sales/pages/person2_known_joint_purchase.rb create mode 100644 app/models/form/sales/pages/person3_age_joint_purchase.rb create mode 100644 app/models/form/sales/pages/person3_known_joint_purchase.rb create mode 100644 app/models/form/sales/pages/person4_age_joint_purchase.rb create mode 100644 app/models/form/sales/pages/person4_known_joint_purchase.rb delete mode 100644 app/models/form/sales/questions/person1_gender_identity_joint_purchase.rb delete mode 100644 app/models/form/sales/questions/person1_relationship_to_buyer1_joint_purchase.rb diff --git a/app/models/form/sales/pages/person1_age.rb b/app/models/form/sales/pages/person1_age.rb index d37533683..d7bae480d 100644 --- a/app/models/form/sales/pages/person1_age.rb +++ b/app/models/form/sales/pages/person1_age.rb @@ -6,14 +6,29 @@ class Form::Sales::Pages::Person1Age < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "details_known_1" => 1 }, + { "details_known_1" => 1, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person1AgeKnown.new(nil, nil, self), - Form::Sales::Questions::Person1Age.new(nil, nil, self), + Form::Sales::Questions::Person1AgeKnown.new("age2_known", { check_answers_card_number: 2, + conditional_for: { + "age2" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age2_known" => 0, + }, + { + "age2_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person1Age.new("age2", { check_answers_card_number: 2, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 1 }] }, + inferred_check_answers_value: { "condition" => { "age2_known" => 1 }, "value" => "Not known" } }, self), ] end end diff --git a/app/models/form/sales/pages/person1_age_joint_purchase.rb b/app/models/form/sales/pages/person1_age_joint_purchase.rb new file mode 100644 index 000000000..ee7fa9a18 --- /dev/null +++ b/app/models/form/sales/pages/person1_age_joint_purchase.rb @@ -0,0 +1,34 @@ +class Form::Sales::Pages::Person1AgeJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_1_age_joint_purchase" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "details_known_1" => 1, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person1AgeKnown.new("age3_known", { check_answers_card_number: 3, + conditional_for: { + "age3" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age3_known" => 0, + }, + { + "age3_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person1Age.new("age3", { check_answers_card_number: 3, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 2 }] }, + inferred_check_answers_value: { "condition" => { "age3_known" => 1 }, "value" => "Not known" } }, self), + ] + end +end diff --git a/app/models/form/sales/pages/person1_gender_identity.rb b/app/models/form/sales/pages/person1_gender_identity.rb index 3e6bde9bc..f6431a2aa 100644 --- a/app/models/form/sales/pages/person1_gender_identity.rb +++ b/app/models/form/sales/pages/person1_gender_identity.rb @@ -12,7 +12,7 @@ class Form::Sales::Pages::Person1GenderIdentity < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::Person1GenderIdentity.new(nil, nil, self), + Form::Sales::Questions::Person1GenderIdentity.new("sex2", { check_answers_card_number: 2 }, self), ] end end diff --git a/app/models/form/sales/pages/person1_gender_identity_joint_purchase.rb b/app/models/form/sales/pages/person1_gender_identity_joint_purchase.rb index 4e9cca219..c1e083135 100644 --- a/app/models/form/sales/pages/person1_gender_identity_joint_purchase.rb +++ b/app/models/form/sales/pages/person1_gender_identity_joint_purchase.rb @@ -12,7 +12,7 @@ class Form::Sales::Pages::Person1GenderIdentityJointPurchase < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::Person1GenderIdentityJointPurchase.new(nil, nil, self), + Form::Sales::Questions::Person1GenderIdentity.new("sex3", { check_answers_card_number: 3 }, self), ] end end diff --git a/app/models/form/sales/pages/person1_known.rb b/app/models/form/sales/pages/person1_known.rb index 439fb520a..bf19b924e 100644 --- a/app/models/form/sales/pages/person1_known.rb +++ b/app/models/form/sales/pages/person1_known.rb @@ -6,16 +6,16 @@ class Form::Sales::Pages::Person1Known < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "hholdcount" => 1 }, - { "hholdcount" => 2 }, - { "hholdcount" => 3 }, - { "hholdcount" => 4 }, + { "hholdcount" => 1, "jointpur" => 2 }, + { "hholdcount" => 2, "jointpur" => 2 }, + { "hholdcount" => 3, "jointpur" => 2 }, + { "hholdcount" => 4, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person1Known.new(nil, nil, self), + Form::Sales::Questions::Person1Known.new(nil, { check_answers_card_number: 2 }, self), ] end end diff --git a/app/models/form/sales/pages/person1_known_joint_purchase.rb b/app/models/form/sales/pages/person1_known_joint_purchase.rb new file mode 100644 index 000000000..13f187310 --- /dev/null +++ b/app/models/form/sales/pages/person1_known_joint_purchase.rb @@ -0,0 +1,21 @@ +class Form::Sales::Pages::Person1KnownJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_1_known_joint_purchase" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "hholdcount" => 1, "jointpur" => 1 }, + { "hholdcount" => 2, "jointpur" => 1 }, + { "hholdcount" => 3, "jointpur" => 1 }, + { "hholdcount" => 4, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person1Known.new(nil, { check_answers_card_number: 3 }, self), + ] + end +end diff --git a/app/models/form/sales/pages/person2_age.rb b/app/models/form/sales/pages/person2_age.rb index 7654d6e46..816ea4dec 100644 --- a/app/models/form/sales/pages/person2_age.rb +++ b/app/models/form/sales/pages/person2_age.rb @@ -6,14 +6,29 @@ class Form::Sales::Pages::Person2Age < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "details_known_2" => 1 }, + { "details_known_2" => 1, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person2AgeKnown.new(nil, nil, self), - Form::Sales::Questions::Person2Age.new(nil, nil, self), + Form::Sales::Questions::Person2AgeKnown.new("age3_known", { check_answers_card_number: 3, + conditional_for: { + "age3" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age3_known" => 0, + }, + { + "age3_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person2Age.new("age3", { check_answers_card_number: 3, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 1 }] }, + inferred_check_answers_value: { "condition" => { "age3_known" => 1 }, "value" => "Not known" } }, self), ] end end diff --git a/app/models/form/sales/pages/person2_age_joint_purchase.rb b/app/models/form/sales/pages/person2_age_joint_purchase.rb new file mode 100644 index 000000000..8bfd9b1fc --- /dev/null +++ b/app/models/form/sales/pages/person2_age_joint_purchase.rb @@ -0,0 +1,34 @@ +class Form::Sales::Pages::Person2AgeJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_2_age_joint_purchase" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "details_known_2" => 1, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person2AgeKnown.new("age4_known", { check_answers_card_number: 4, + conditional_for: { + "age4" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age4_known" => 0, + }, + { + "age4_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person2Age.new("age4", { check_answers_card_number: 4, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 2 }] }, + inferred_check_answers_value: { "condition" => { "age4_known" => 1 }, "value" => "Not known" } }, self), + ] + end +end diff --git a/app/models/form/sales/pages/person2_known.rb b/app/models/form/sales/pages/person2_known.rb index c1eeebf20..b25505b78 100644 --- a/app/models/form/sales/pages/person2_known.rb +++ b/app/models/form/sales/pages/person2_known.rb @@ -7,15 +7,15 @@ class Form::Sales::Pages::Person2Known < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "hholdcount" => 2 }, - { "hholdcount" => 3 }, - { "hholdcount" => 4 }, + { "hholdcount" => 2, "jointpur" => 2 }, + { "hholdcount" => 3, "jointpur" => 2 }, + { "hholdcount" => 4, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person2Known.new(nil, nil, self), + Form::Sales::Questions::Person2Known.new(nil, { check_answers_card_number: 3 }, self), ] end end diff --git a/app/models/form/sales/pages/person2_known_joint_purchase.rb b/app/models/form/sales/pages/person2_known_joint_purchase.rb new file mode 100644 index 000000000..c52c5fd1c --- /dev/null +++ b/app/models/form/sales/pages/person2_known_joint_purchase.rb @@ -0,0 +1,21 @@ +class Form::Sales::Pages::Person2KnownJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_2_known_joint_purchase" + @header_partial = "person_2_known_page" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "hholdcount" => 2, "jointpur" => 1 }, + { "hholdcount" => 3, "jointpur" => 1 }, + { "hholdcount" => 4, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person2Known.new(nil, { check_answers_card_number: 4 }, self), + ] + end +end diff --git a/app/models/form/sales/pages/person3_age.rb b/app/models/form/sales/pages/person3_age.rb index 965427e67..0e0e67603 100644 --- a/app/models/form/sales/pages/person3_age.rb +++ b/app/models/form/sales/pages/person3_age.rb @@ -6,14 +6,29 @@ class Form::Sales::Pages::Person3Age < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "details_known_3" => 1 }, + { "details_known_3" => 1, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person3AgeKnown.new(nil, nil, self), - Form::Sales::Questions::Person3Age.new(nil, nil, self), + Form::Sales::Questions::Person3AgeKnown.new("age4_known", { check_answers_card_number: 4, + conditional_for: { + "age4" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age4_known" => 0, + }, + { + "age4_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person3Age.new("age4", { check_answers_card_number: 4, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 1 }] }, + inferred_check_answers_value: { "condition" => { "age4_known" => 1 }, "value" => "Not known" } }, self), ] end end diff --git a/app/models/form/sales/pages/person3_age_joint_purchase.rb b/app/models/form/sales/pages/person3_age_joint_purchase.rb new file mode 100644 index 000000000..6043d723d --- /dev/null +++ b/app/models/form/sales/pages/person3_age_joint_purchase.rb @@ -0,0 +1,34 @@ +class Form::Sales::Pages::Person3AgeJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_3_age_joint_purchase" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "details_known_3" => 1, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person3AgeKnown.new("age5_known", { check_answers_card_number: 5, + conditional_for: { + "age5" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age5_known" => 0, + }, + { + "age5_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person3Age.new("age5", { check_answers_card_number: 5, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 2 }] }, + inferred_check_answers_value: { "condition" => { "age5_known" => 1 }, "value" => "Not known" } }, self), + ] + end +end diff --git a/app/models/form/sales/pages/person3_known.rb b/app/models/form/sales/pages/person3_known.rb index 60b344034..386fbb666 100644 --- a/app/models/form/sales/pages/person3_known.rb +++ b/app/models/form/sales/pages/person3_known.rb @@ -7,14 +7,14 @@ class Form::Sales::Pages::Person3Known < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "hholdcount" => 3 }, - { "hholdcount" => 4 }, + { "hholdcount" => 3, "jointpur" => 2 }, + { "hholdcount" => 4, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person3Known.new(nil, nil, self), + Form::Sales::Questions::Person3Known.new(nil, { check_answers_card_number: 4 }, self), ] end end diff --git a/app/models/form/sales/pages/person3_known_joint_purchase.rb b/app/models/form/sales/pages/person3_known_joint_purchase.rb new file mode 100644 index 000000000..d2c16e807 --- /dev/null +++ b/app/models/form/sales/pages/person3_known_joint_purchase.rb @@ -0,0 +1,20 @@ +class Form::Sales::Pages::Person3KnownJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_3_known_joint_purchase" + @header_partial = "person_3_known_page" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "hholdcount" => 3, "jointpur" => 1 }, + { "hholdcount" => 4, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person3Known.new(nil, { check_answers_card_number: 5 }, self), + ] + end +end diff --git a/app/models/form/sales/pages/person4_age.rb b/app/models/form/sales/pages/person4_age.rb index 282699e44..e84a32454 100644 --- a/app/models/form/sales/pages/person4_age.rb +++ b/app/models/form/sales/pages/person4_age.rb @@ -6,14 +6,29 @@ class Form::Sales::Pages::Person4Age < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "details_known_4" => 1 }, + { "details_known_4" => 1, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person4AgeKnown.new(nil, nil, self), - Form::Sales::Questions::Person4Age.new(nil, nil, self), + Form::Sales::Questions::Person4AgeKnown.new("age5_known", { check_answers_card_number: 5, + conditional_for: { + "age5" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age5_known" => 0, + }, + { + "age5_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person4Age.new("age5", { check_answers_card_number: 5, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 1 }] }, + inferred_check_answers_value: { "condition" => { "age5_known" => 1 }, "value" => "Not known" } }, self), ] end end diff --git a/app/models/form/sales/pages/person4_age_joint_purchase.rb b/app/models/form/sales/pages/person4_age_joint_purchase.rb new file mode 100644 index 000000000..765f1aaf5 --- /dev/null +++ b/app/models/form/sales/pages/person4_age_joint_purchase.rb @@ -0,0 +1,34 @@ +class Form::Sales::Pages::Person4AgeJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_4_age_joint_purchase" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "details_known_4" => 1, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person4AgeKnown.new("age6_known", { check_answers_card_number: 6, + conditional_for: { + "age6" => [0], + }, + hidden_in_check_answers: { + "depends_on" => [ + { + "age6_known" => 0, + }, + { + "age6_known" => 1, + }, + ], + } }, self), + Form::Sales::Questions::Person4Age.new("age6", { check_answers_card_number: 6, + hidden_in_check_answers: { "depends_on" => [{ "jointpur" => 2 }] }, + inferred_check_answers_value: { "condition" => { "age6_known" => 1 }, "value" => "Not known" } }, self), + ] + end +end diff --git a/app/models/form/sales/pages/person4_known.rb b/app/models/form/sales/pages/person4_known.rb index b07ef6356..fed5a772c 100644 --- a/app/models/form/sales/pages/person4_known.rb +++ b/app/models/form/sales/pages/person4_known.rb @@ -7,13 +7,13 @@ class Form::Sales::Pages::Person4Known < ::Form::Page @description = "" @subsection = subsection @depends_on = [ - { "hholdcount" => 4 }, + { "hholdcount" => 4, "jointpur" => 2 }, ] end def questions @questions ||= [ - Form::Sales::Questions::Person4Known.new(nil, nil, self), + Form::Sales::Questions::Person4Known.new(nil, { check_answers_card_number: 5 }, self), ] end end diff --git a/app/models/form/sales/pages/person4_known_joint_purchase.rb b/app/models/form/sales/pages/person4_known_joint_purchase.rb new file mode 100644 index 000000000..10e99cc76 --- /dev/null +++ b/app/models/form/sales/pages/person4_known_joint_purchase.rb @@ -0,0 +1,19 @@ +class Form::Sales::Pages::Person4KnownJointPurchase < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "person_4_known_joint_purchase" + @header_partial = "person_4_known_page" + @header = "" + @description = "" + @subsection = subsection + @depends_on = [ + { "hholdcount" => 4, "jointpur" => 1 }, + ] + end + + def questions + @questions ||= [ + Form::Sales::Questions::Person4Known.new(nil, { check_answers_card_number: 6 }, self), + ] + end +end diff --git a/app/models/form/sales/questions/person1_age.rb b/app/models/form/sales/questions/person1_age.rb index aa12c948a..d1936caee 100644 --- a/app/models/form/sales/questions/person1_age.rb +++ b/app/models/form/sales/questions/person1_age.rb @@ -1,16 +1,13 @@ class Form::Sales::Questions::Person1Age < ::Form::Question def initialize(id, hsh, page) super - @id = "age3" @check_answer_label = "Person 1’s age" @header = "Age" @type = "numeric" @page = page @width = 3 - @inferred_check_answers_value = { - "condition" => { "age3_known" => 1 }, - "value" => "Not known", - } - @check_answers_card_number = 3 + @inferred_check_answers_value = hsh[:inferred_check_answers_value] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end end diff --git a/app/models/form/sales/questions/person1_age_known.rb b/app/models/form/sales/questions/person1_age_known.rb index 3db103ab5..f6f78ebe4 100644 --- a/app/models/form/sales/questions/person1_age_known.rb +++ b/app/models/form/sales/questions/person1_age_known.rb @@ -1,27 +1,15 @@ class Form::Sales::Questions::Person1AgeKnown < ::Form::Question def initialize(id, hsh, page) super - @id = "age3_known" @check_answer_label = "Person 1’s age known?" @header = "Do you know person 1’s age?" @type = "radio" @answer_options = ANSWER_OPTIONS @page = page @hint_text = "" - @conditional_for = { - "age3" => [0], - } - @hidden_in_check_answers = { - "depends_on" => [ - { - "age3_known" => 0, - }, - { - "age3_known" => 1, - }, - ], - } - @check_answers_card_number = 3 + @conditional_for = hsh[:conditional_for] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person1_gender_identity.rb b/app/models/form/sales/questions/person1_gender_identity.rb index b776ebe37..38abf94f6 100644 --- a/app/models/form/sales/questions/person1_gender_identity.rb +++ b/app/models/form/sales/questions/person1_gender_identity.rb @@ -1,13 +1,12 @@ class Form::Sales::Questions::Person1GenderIdentity < ::Form::Question def initialize(id, hsh, page) super - @id = "sex2" @check_answer_label = "Person 1’s gender identity" @header = "Which of these best describes Person 1’s gender identity?" @type = "radio" @page = page @answer_options = ANSWER_OPTIONS - @check_answers_card_number = 3 + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person1_gender_identity_joint_purchase.rb b/app/models/form/sales/questions/person1_gender_identity_joint_purchase.rb deleted file mode 100644 index 1127bf313..000000000 --- a/app/models/form/sales/questions/person1_gender_identity_joint_purchase.rb +++ /dev/null @@ -1,19 +0,0 @@ -class Form::Sales::Questions::Person1GenderIdentityJointPurchase < ::Form::Question - def initialize(id, hsh, page) - super - @id = "sex3" - @check_answer_label = "Person 1’s gender identity" - @header = "Which of these best describes Person 1’s gender identity?" - @type = "radio" - @page = page - @answer_options = ANSWER_OPTIONS - @check_answers_card_number = 3 - end - - ANSWER_OPTIONS = { - "F" => { "value" => "Female" }, - "M" => { "value" => "Male" }, - "X" => { "value" => "Non-binary" }, - "R" => { "value" => "Buyer prefers not to say" }, - }.freeze -end diff --git a/app/models/form/sales/questions/person1_known.rb b/app/models/form/sales/questions/person1_known.rb index 6f7590101..8479879f8 100644 --- a/app/models/form/sales/questions/person1_known.rb +++ b/app/models/form/sales/questions/person1_known.rb @@ -15,7 +15,7 @@ class Form::Sales::Questions::Person1Known < ::Form::Question }, ], } - @check_answers_card_number = 3 + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person1_relationship_to_buyer1_joint_purchase.rb b/app/models/form/sales/questions/person1_relationship_to_buyer1_joint_purchase.rb deleted file mode 100644 index 77075f044..000000000 --- a/app/models/form/sales/questions/person1_relationship_to_buyer1_joint_purchase.rb +++ /dev/null @@ -1,20 +0,0 @@ -class Form::Sales::Questions::Person1RelationshipToBuyer1JointPurchase < ::Form::Question - def initialize(id, hsh, page) - super - @check_answer_label = "Person 1's relationship to buyer 1" - @header = "What is person 1's relationship to buyer 1?" - @type = "radio" - @hint_text = "" - @page = page - @answer_options = ANSWER_OPTIONS - @check_answers_card_number = hsh[:check_answers_card_number] - - end - - ANSWER_OPTIONS = { - "P" => { "value" => "Partner" }, - "C" => { "value" => "Child", "hint" => "Must be eligible for child benefit, aged under 16 or under 20 if still in full-time education." }, - "X" => { "value" => "Other" }, - "R" => { "value" => "Buyer prefers not to say" }, - }.freeze -end diff --git a/app/models/form/sales/questions/person2_age.rb b/app/models/form/sales/questions/person2_age.rb index a421b625a..7cbcd6b61 100644 --- a/app/models/form/sales/questions/person2_age.rb +++ b/app/models/form/sales/questions/person2_age.rb @@ -1,16 +1,13 @@ class Form::Sales::Questions::Person2Age < ::Form::Question def initialize(id, hsh, page) super - @id = "age4" @check_answer_label = "Person 2’s age" @header = "Age" @type = "numeric" @page = page @width = 3 - @inferred_check_answers_value = { - "condition" => { "age4_known" => 1 }, - "value" => "Not known", - } - @check_answers_card_number = 4 + @inferred_check_answers_value = hsh[:inferred_check_answers_value] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end end diff --git a/app/models/form/sales/questions/person2_age_known.rb b/app/models/form/sales/questions/person2_age_known.rb index 613312f45..a8cd7883d 100644 --- a/app/models/form/sales/questions/person2_age_known.rb +++ b/app/models/form/sales/questions/person2_age_known.rb @@ -1,27 +1,15 @@ class Form::Sales::Questions::Person2AgeKnown < ::Form::Question def initialize(id, hsh, page) super - @id = "age4_known" @check_answer_label = "Person 2’s age known?" @header = "Do you know person 2’s age?" @type = "radio" @answer_options = ANSWER_OPTIONS @page = page @hint_text = "" - @conditional_for = { - "age4" => [0], - } - @hidden_in_check_answers = { - "depends_on" => [ - { - "age4_known" => 0, - }, - { - "age4_known" => 1, - }, - ], - } - @check_answers_card_number = 4 + @conditional_for = hsh[:conditional_for] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person2_known.rb b/app/models/form/sales/questions/person2_known.rb index b539590af..1e1e852ac 100644 --- a/app/models/form/sales/questions/person2_known.rb +++ b/app/models/form/sales/questions/person2_known.rb @@ -15,7 +15,7 @@ class Form::Sales::Questions::Person2Known < ::Form::Question }, ], } - @check_answers_card_number = 4 + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person3_age.rb b/app/models/form/sales/questions/person3_age.rb index 139b4de16..f94a45cdb 100644 --- a/app/models/form/sales/questions/person3_age.rb +++ b/app/models/form/sales/questions/person3_age.rb @@ -1,16 +1,13 @@ class Form::Sales::Questions::Person3Age < ::Form::Question def initialize(id, hsh, page) super - @id = "age5" @check_answer_label = "Person 3’s age" @header = "Age" @type = "numeric" @page = page @width = 3 - @inferred_check_answers_value = { - "condition" => { "age5_known" => 1 }, - "value" => "Not known", - } - @check_answers_card_number = 5 + @inferred_check_answers_value = hsh[:inferred_check_answers_value] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end end diff --git a/app/models/form/sales/questions/person3_age_known.rb b/app/models/form/sales/questions/person3_age_known.rb index 78bdff239..be8027107 100644 --- a/app/models/form/sales/questions/person3_age_known.rb +++ b/app/models/form/sales/questions/person3_age_known.rb @@ -1,27 +1,15 @@ class Form::Sales::Questions::Person3AgeKnown < ::Form::Question def initialize(id, hsh, page) super - @id = "age5_known" @check_answer_label = "Person 3’s age known?" @header = "Do you know person 3’s age?" @type = "radio" @answer_options = ANSWER_OPTIONS @page = page @hint_text = "" - @conditional_for = { - "age5" => [0], - } - @hidden_in_check_answers = { - "depends_on" => [ - { - "age5_known" => 0, - }, - { - "age5_known" => 1, - }, - ], - } - @check_answers_card_number = 5 + @conditional_for = hsh[:conditional_for] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person3_known.rb b/app/models/form/sales/questions/person3_known.rb index bcb37c151..ea4a37367 100644 --- a/app/models/form/sales/questions/person3_known.rb +++ b/app/models/form/sales/questions/person3_known.rb @@ -15,7 +15,7 @@ class Form::Sales::Questions::Person3Known < ::Form::Question }, ], } - @check_answers_card_number = 5 + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person4_age.rb b/app/models/form/sales/questions/person4_age.rb index bf7675026..33562e6db 100644 --- a/app/models/form/sales/questions/person4_age.rb +++ b/app/models/form/sales/questions/person4_age.rb @@ -1,16 +1,13 @@ class Form::Sales::Questions::Person4Age < ::Form::Question def initialize(id, hsh, page) super - @id = "age6" @check_answer_label = "Person 4’s age" @header = "Age" @type = "numeric" @page = page @width = 3 - @inferred_check_answers_value = { - "condition" => { "age6_known" => 1 }, - "value" => "Not known", - } - @check_answers_card_number = 6 + @inferred_check_answers_value = hsh[:inferred_check_answers_value] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end end diff --git a/app/models/form/sales/questions/person4_age_known.rb b/app/models/form/sales/questions/person4_age_known.rb index 240e1e930..a03cccc46 100644 --- a/app/models/form/sales/questions/person4_age_known.rb +++ b/app/models/form/sales/questions/person4_age_known.rb @@ -1,27 +1,15 @@ class Form::Sales::Questions::Person4AgeKnown < ::Form::Question def initialize(id, hsh, page) super - @id = "age6_known" @check_answer_label = "Person 4’s age known?" @header = "Do you know person 4’s age?" @type = "radio" @answer_options = ANSWER_OPTIONS @page = page @hint_text = "" - @conditional_for = { - "age6" => [0], - } - @hidden_in_check_answers = { - "depends_on" => [ - { - "age6_known" => 0, - }, - { - "age6_known" => 1, - }, - ], - } - @check_answers_card_number = 6 + @conditional_for = hsh[:conditional_for] + @hidden_in_check_answers = hsh[:hidden_in_check_answers] + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person4_known.rb b/app/models/form/sales/questions/person4_known.rb index 162bba06a..0c59c7182 100644 --- a/app/models/form/sales/questions/person4_known.rb +++ b/app/models/form/sales/questions/person4_known.rb @@ -15,7 +15,7 @@ class Form::Sales::Questions::Person4Known < ::Form::Question }, ], } - @check_answers_card_number = 6 + @check_answers_card_number = hsh[:check_answers_card_number] end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/subsections/household_characteristics.rb b/app/models/form/sales/subsections/household_characteristics.rb index 39f9b25e0..a82b52495 100644 --- a/app/models/form/sales/subsections/household_characteristics.rb +++ b/app/models/form/sales/subsections/household_characteristics.rb @@ -29,17 +29,25 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Sales::Pages::Buyer2LiveInProperty.new(nil, nil, self), Form::Sales::Pages::NumberOfOthersInProperty.new(nil, nil, self), Form::Sales::Pages::Person1Known.new(nil, nil, self), + Form::Sales::Pages::Person1KnownJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person1RelationshipToBuyer1.new(nil, nil, self), Form::Sales::Pages::Person1RelationshipToBuyer1JointPurchase.new(nil, nil, self), Form::Sales::Pages::Person1Age.new(nil, nil, self), + Form::Sales::Pages::Person1AgeJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person1GenderIdentity.new(nil, nil, self), Form::Sales::Pages::Person1GenderIdentityJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person2Known.new(nil, nil, self), + Form::Sales::Pages::Person2KnownJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person2Age.new(nil, nil, self), + Form::Sales::Pages::Person2AgeJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person3Known.new(nil, nil, self), + Form::Sales::Pages::Person3KnownJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person3Age.new(nil, nil, self), + Form::Sales::Pages::Person3AgeJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person4Known.new(nil, nil, self), + Form::Sales::Pages::Person4KnownJointPurchase.new(nil, nil, self), Form::Sales::Pages::Person4Age.new(nil, nil, self), + Form::Sales::Pages::Person4AgeJointPurchase.new(nil, nil, self), ] end end