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. 3437
      config/forms/2021_2022.json
  3. 3680
      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|
return false unless conditions_set
conditions_set.all? do |condition|
object, method, value = condition.values_at("object", "method", "value")
object_instance = case object
when "case_log"
case_log
when "user"
nil
end
conditions_set.all? do |question, value|
if value.is_a?(Hash) && value.key?("operator")
operator = value["operator"]
operand = value["operand"]
object_instance[method]&.send(operator, operand)
case_log[question]&.send(operator, operand)
else
parts = method.split(".")
object_instance_value = send_chain(parts, object_instance)
parts = question.split(".")
case_log_value = send_chain(parts, case_log)
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

3437
config/forms/2021_2022.json

File diff suppressed because it is too large Load Diff

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

Loading…
Cancel
Save