Browse Source

Revert "Refactor depends on (#649)" (#659)

This reverts commit 16fce6f2bf.
1200-inputmode
baarkerlounger 3 years ago committed by GitHub
parent
commit
ea64aa3533
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      app/models/form.rb
  2. 2833
      config/forms/2021_2022.json
  3. 2876
      config/forms/2022_2023.json
  4. 89
      spec/fixtures/forms/2021_2022.json

19
app/models/form.rb

@ -157,25 +157,16 @@ class Form
depends_on.any? do |conditions_set| depends_on.any? do |conditions_set|
return false unless conditions_set return false unless conditions_set
conditions_set.all? do |condition| conditions_set.all? do |question, value|
object, method, value = condition.values_at("object", "method", "value")
object_instance = case object
when "case_log"
case_log
when "user"
nil
end
if value.is_a?(Hash) && value.key?("operator") if value.is_a?(Hash) && value.key?("operator")
operator = value["operator"] operator = value["operator"]
operand = value["operand"] operand = value["operand"]
object_instance[method]&.send(operator, operand) case_log[question]&.send(operator, operand)
else else
parts = method.split(".") parts = question.split(".")
case_log_value = send_chain(parts, case_log)
object_instance_value = send_chain(parts, object_instance)
value.nil? ? object_instance_value == value : !object_instance_value.nil? && object_instance_value == value value.nil? ? case_log_value == value : !case_log_value.nil? && case_log_value == value
end end
end end
end end

2833
config/forms/2021_2022.json

File diff suppressed because it is too large Load Diff

2876
config/forms/2022_2023.json

File diff suppressed because it is too large Load Diff

89
spec/fixtures/forms/2021_2022.json vendored

@ -21,8 +21,12 @@
} }
}, },
"depends_on": [ "depends_on": [
[{"object": "case_log", "method": "housingneeds_a", "value": 1}], {
[{"object": "case_log", "method": "housingneeds_a", "value": null}] "housingneeds_a": 1
},
{
"housingneeds_a": null
}
] }, ] },
"person_1_age": { "person_1_age": {
"questions": { "questions": {
@ -185,20 +189,8 @@
"9": { "9": {
"value": "Child under 16", "value": "Child under 16",
"depends_on": [ "depends_on": [
[ { "age2_known": 1 },
{ { "age2": { "operator": "<", "operand": 16 } }
"object": "case_log",
"method": "age2_known",
"value": 1
}
],
[
{
"object": "case_log",
"method": "age2",
"value": { "operator": "<", "operand": 16 }
}
]
] ]
}, },
"1": { "1": {
@ -208,9 +200,9 @@
} }
}, },
"depends_on": [ "depends_on": [
[{ {
"object": "case_log", "method": "age2", "value": { "operator": ">", "operand": 15 } "age2": { "operator": ">", "operand": 15 }
}] }
] ]
}, },
"propcode": { "propcode": {
@ -330,10 +322,11 @@
} }
} }
}, },
"depends_on": [[ "depends_on": [
{"object": "case_log", "method": "previous_la_known", "value": 1}, {
{"object": "case_log", "method": "is_previous_la_inferred", "value": false} "previous_la_known": 1,
] "is_previous_la_inferred": false
}
] ]
}, },
"condition_effects": { "condition_effects": {
@ -354,7 +347,9 @@
} }
}, },
"depends_on": [ "depends_on": [
[{"object": "case_log", "method": "illness", "value": 1}] {
"illness": 1
}
] ]
} }
} }
@ -402,7 +397,9 @@
} }
}, },
"depends_on": [ "depends_on": [
[{"object": "case_log", "method": "is_la_inferred", "value": false}] {
"is_la_inferred": false
}
] ]
}, },
"property_postcode": { "property_postcode": {
@ -462,9 +459,7 @@
} }
} }
}, },
"depends_on": [ "depends_on": [{"is_la_inferred": false}]
[{"object": "case_log", "method": "is_la_inferred", "value": false}]
]
}, },
"property_wheelchair_accessible": { "property_wheelchair_accessible": {
"questions": { "questions": {
@ -518,10 +513,7 @@
} }
} }
}, },
"depends_on": [ "depends_on": [{ "preg_occ": 1 }, { "wchair" : 1 }]
[{"object": "case_log", "method": "preg_occ", "value": 1}],
[{"object": "case_log", "method": "wchair", "value": 1}]
]
}, },
"conditional_question_no_page": { "conditional_question_no_page": {
"questions": { "questions": {
@ -539,9 +531,7 @@
} }
} }
}, },
"depends_on": [ "depends_on": [{ "preg_occ": 2 }]
[{"object": "case_log", "method": "preg_occ", "value": 2}]
]
}, },
"conditional_question_no_second_page": { "conditional_question_no_second_page": {
"questions": { "questions": {
@ -559,10 +549,7 @@
} }
} }
}, },
"depends_on": [ "depends_on": [{ "preg_occ": 2, "sex1": "M" }]
[{"object": "case_log", "method": "preg_occ", "value": 2},
{"object": "case_log", "method": "sex1", "value": "M"}]
]
} }
} }
} }
@ -612,9 +599,7 @@
} }
}, },
"net_income_value_check": { "net_income_value_check": {
"depends_on": [ "depends_on": [{ "net_income_soft_validation_triggered?": true }],
[{"object": "case_log", "method": "net_income_soft_validation_triggered?", "value": true}]
],
"title_text": { "translation": "soft_validations.net_income.title_text" }, "title_text": { "translation": "soft_validations.net_income.title_text" },
"informative_text": { "informative_text": {
"translation": "soft_validations.net_income.hint_text", "translation": "soft_validations.net_income.hint_text",
@ -696,9 +681,7 @@
} }
}, },
"dependent_page": { "dependent_page": {
"depends_on": [ "depends_on": [{ "incfreq": 1 }],
[{"object": "case_log", "method": "incfreq", "value": 1}]
],
"questions": { "questions": {
"dependent_question": { "dependent_question": {
"check_answer_label": "Dependent Question", "check_answer_label": "Dependent Question",
@ -842,9 +825,7 @@
"width": 4 "width": 4
} }
}, },
"depends_on": [ "depends_on": [{"period": 3}]
[{"object": "case_log", "method": "period", "value": 3}]
]
}, },
"care_home_charge_bi_weekly": { "care_home_charge_bi_weekly": {
"questions": { "questions": {
@ -858,9 +839,7 @@
"width": 4 "width": 4
} }
}, },
"depends_on": [ "depends_on": [{"period": 2}]
[{"object": "case_log", "method": "period", "value": 2}]
]
} }
} }
} }
@ -909,15 +888,13 @@
}, },
"hidden_in_check_answers": { "hidden_in_check_answers": {
"depends_on": [ "depends_on": [
[{"object": "case_log", "method": "layear", "value": 0}], { "layear": 0 },
[{"object": "case_log", "method": "layear", "value": 1}] { "layear": 1 }
] ]
} }
} }
}, },
"depends_on": [ "depends_on": [{ "renewal": 0 }]
[{"object": "case_log", "method": "renewal", "value": 0}]
]
}, },
"time_on_la_waiting_list": { "time_on_la_waiting_list": {
"questions": { "questions": {

Loading…
Cancel
Save