Browse Source
* Refactor working situation to take in person index * Refactor age to take in person index * Remove unused methods * Cleanup * Change person_index to a named argument * extract details_known_question_id * Fix answer options * Add field_for_person methodspull/1114/head
kosiakkatrina
2 years ago
committed by
GitHub
15 changed files with 136 additions and 120 deletions
@ -0,0 +1,22 @@
|
||||
class Form::Sales::Pages::Person < ::Form::Page |
||||
def initialize(id, hsh, subsection, person_index:) |
||||
super(id, hsh, subsection) |
||||
@person_index = person_index |
||||
end |
||||
|
||||
def person_display_number |
||||
joint_purchase? ? @person_index - 2 : @person_index - 1 |
||||
end |
||||
|
||||
def joint_purchase? |
||||
id.include?("_joint_purchase") |
||||
end |
||||
|
||||
def details_known_question_id |
||||
"details_known_#{person_display_number}" |
||||
end |
||||
|
||||
def field_for_person(field, suffix = "") |
||||
[field, @person_index, suffix].join |
||||
end |
||||
end |
@ -1,29 +1,18 @@
|
||||
class Form::Sales::Pages::PersonAge < ::Form::Page |
||||
def initialize(id, hsh, subsection) |
||||
class Form::Sales::Pages::PersonAge < Form::Sales::Pages::Person |
||||
def initialize(id, hsh, subsection, person_index:) |
||||
super |
||||
@header = "" |
||||
@description = "" |
||||
@subsection = subsection |
||||
@depends_on = [ |
||||
{ "details_known_#{person_display_number(PERSON_INDEX)}" => 1, "jointpur" => joint_purchase? ? 1 : 2 }, |
||||
{ details_known_question_id => 1, "jointpur" => joint_purchase? ? 1 : 2 }, |
||||
] |
||||
end |
||||
|
||||
PERSON_INDEX = { |
||||
"person_1_age" => 2, |
||||
"person_2_age" => 3, |
||||
"person_3_age" => 4, |
||||
"person_4_age" => 5, |
||||
"person_1_age_joint_purchase" => 3, |
||||
"person_2_age_joint_purchase" => 4, |
||||
"person_3_age_joint_purchase" => 5, |
||||
"person_4_age_joint_purchase" => 6, |
||||
}.freeze |
||||
|
||||
def questions |
||||
@questions ||= [ |
||||
Form::Sales::Questions::PersonAgeKnown.new("age#{person_database_number(PERSON_INDEX)}_known", nil, self), |
||||
Form::Sales::Questions::PersonAge.new("age#{person_database_number(PERSON_INDEX)}", nil, self), |
||||
Form::Sales::Questions::PersonAgeKnown.new(field_for_person("age", "_known"), nil, self, person_index: @person_index), |
||||
Form::Sales::Questions::PersonAge.new(field_for_person("age"), nil, self, person_index: @person_index), |
||||
] |
||||
end |
||||
end |
||||
|
@ -1,28 +1,17 @@
|
||||
class Form::Sales::Pages::PersonWorkingSituation < ::Form::Page |
||||
def initialize(id, hsh, subsection) |
||||
class Form::Sales::Pages::PersonWorkingSituation < Form::Sales::Pages::Person |
||||
def initialize(id, hsh, subsection, person_index:) |
||||
super |
||||
@header = "" |
||||
@description = "" |
||||
@subsection = subsection |
||||
@depends_on = [ |
||||
{ "details_known_#{person_display_number(PERSON_INDEX)}" => 1, "jointpur" => joint_purchase? ? 1 : 2 }, |
||||
{ details_known_question_id => 1, "jointpur" => joint_purchase? ? 1 : 2 }, |
||||
] |
||||
end |
||||
|
||||
def questions |
||||
@questions ||= [ |
||||
Form::Sales::Questions::PersonWorkingSituation.new("ecstat#{person_database_number(PERSON_INDEX)}", nil, self), |
||||
Form::Sales::Questions::PersonWorkingSituation.new(field_for_person("ecstat"), nil, self, person_index: @person_index), |
||||
] |
||||
end |
||||
|
||||
PERSON_INDEX = { |
||||
"person_1_working_situation" => 2, |
||||
"person_2_working_situation" => 3, |
||||
"person_3_working_situation" => 4, |
||||
"person_4_working_situation" => 5, |
||||
"person_1_working_situation_joint_purchase" => 3, |
||||
"person_2_working_situation_joint_purchase" => 4, |
||||
"person_3_working_situation_joint_purchase" => 5, |
||||
"person_4_working_situation_joint_purchase" => 6, |
||||
}.freeze |
||||
end |
||||
|
@ -0,0 +1,18 @@
|
||||
class Form::Sales::Questions::Person < ::Form::Question |
||||
def initialize(id, hsh, page, person_index:) |
||||
super(id, hsh, page) |
||||
@person_index = person_index |
||||
end |
||||
|
||||
def person_display_number |
||||
joint_purchase? ? @person_index - 2 : @person_index - 1 |
||||
end |
||||
|
||||
def joint_purchase? |
||||
page.id.include?("_joint_purchase") |
||||
end |
||||
|
||||
def field_for_person(field, suffix = "") |
||||
[field, @person_index, suffix].join |
||||
end |
||||
end |
@ -1,23 +1,15 @@
|
||||
class Form::Sales::Questions::PersonAge < ::Form::Question |
||||
def initialize(id, hsh, page) |
||||
class Form::Sales::Questions::PersonAge < Form::Sales::Questions::Person |
||||
def initialize(id, hsh, page, person_index:) |
||||
super |
||||
@check_answer_label = "Person #{person_display_number(PERSON_INDEX)}’s age" |
||||
@check_answer_label = "Person #{person_display_number}’s age" |
||||
@header = "Age" |
||||
@type = "numeric" |
||||
@page = page |
||||
@width = 3 |
||||
@inferred_check_answers_value = { |
||||
"condition" => { "age#{person_database_number(PERSON_INDEX)}_known" => 1 }, |
||||
"condition" => { field_for_person("age", "_known") => 1 }, |
||||
"value" => "Not known", |
||||
} |
||||
@check_answers_card_number = person_database_number(PERSON_INDEX) |
||||
@check_answers_card_number = person_index |
||||
end |
||||
|
||||
PERSON_INDEX = { |
||||
"age2" => 2, |
||||
"age3" => 3, |
||||
"age4" => 4, |
||||
"age5" => 5, |
||||
"age6" => 6, |
||||
}.freeze |
||||
end |
||||
|
@ -1,38 +1,30 @@
|
||||
class Form::Sales::Questions::PersonAgeKnown < ::Form::Question |
||||
def initialize(id, hsh, page) |
||||
class Form::Sales::Questions::PersonAgeKnown < ::Form::Sales::Questions::Person |
||||
def initialize(id, hsh, page, person_index:) |
||||
super |
||||
@check_answer_label = "Person #{person_display_number(PERSON_INDEX)}’s age known?" |
||||
@header = "Do you know person #{person_display_number(PERSON_INDEX)}’s age?" |
||||
@check_answer_label = "Person #{person_display_number}’s age known?" |
||||
@header = "Do you know person #{person_display_number}’s age?" |
||||
@type = "radio" |
||||
@answer_options = ANSWER_OPTIONS |
||||
@page = page |
||||
@hint_text = "" |
||||
@conditional_for = { |
||||
"age#{person_database_number(PERSON_INDEX)}" => [0], |
||||
field_for_person("age") => [0], |
||||
} |
||||
@hidden_in_check_answers = { |
||||
"depends_on" => [ |
||||
{ |
||||
"age#{person_database_number(PERSON_INDEX)}_known" => 0, |
||||
field_for_person("age", "_known") => 0, |
||||
}, |
||||
{ |
||||
"age#{person_database_number(PERSON_INDEX)}_known" => 1, |
||||
field_for_person("age", "_known") => 1, |
||||
}, |
||||
], |
||||
} |
||||
@check_answers_card_number = person_database_number(PERSON_INDEX) |
||||
@check_answers_card_number = @person_index |
||||
end |
||||
|
||||
ANSWER_OPTIONS = { |
||||
"0" => { "value" => "Yes" }, |
||||
"1" => { "value" => "No" }, |
||||
}.freeze |
||||
|
||||
PERSON_INDEX = { |
||||
"age2_known" => 2, |
||||
"age3_known" => 3, |
||||
"age4_known" => 4, |
||||
"age5_known" => 5, |
||||
"age6_known" => 6, |
||||
}.freeze |
||||
end |
||||
|
Loading…
Reference in new issue