Browse Source

Conditional check box questions are shown on a new page

pull/235/head
baarkerlounger 4 years ago
parent
commit
c3e3e761c9
  1. 4
      app/models/validations/household_validations.rb
  2. 10
      config/forms/2021_2022.json
  3. 13
      spec/models/case_log_spec.rb

4
app/models/validations/household_validations.rb

@ -4,10 +4,6 @@ module Validations::HouseholdValidations
def validate_reasonable_preference(record) def validate_reasonable_preference(record)
if record.homeless == "No" && record.reasonpref == "Yes" if record.homeless == "No" && record.reasonpref == "Yes"
record.errors.add :reasonpref, I18n.t("validations.household.reasonpref.not_homeless") record.errors.add :reasonpref, I18n.t("validations.household.reasonpref.not_homeless")
elsif record.reasonpref == "Yes"
if [record.rp_homeless, record.rp_insan_unsat, record.rp_medwel, record.rp_hardship, record.rp_dontknow].none? { |a| a == "Yes" }
record.errors.add :reasonable_preference_reason, I18n.t("validations.household.reasonable_preference_reason.reason_required")
end
elsif record.reasonpref == "No" elsif record.reasonpref == "No"
if [record.rp_homeless, record.rp_insan_unsat, record.rp_medwel, record.rp_hardship, record.rp_dontknow].any? { |a| a == "Yes" } if [record.rp_homeless, record.rp_insan_unsat, record.rp_medwel, record.rp_hardship, record.rp_dontknow].any? { |a| a == "Yes" }
record.errors.add :reasonable_preference_reason, I18n.t("validations.household.reasonable_preference_reason.reason_not_required") record.errors.add :reasonable_preference_reason, I18n.t("validations.household.reasonable_preference_reason.reason_not_required")

10
config/forms/2021_2022.json

@ -3185,11 +3185,15 @@
"1": "No", "1": "No",
"divider": true, "divider": true,
"2": "Don’t know" "2": "Don’t know"
}, }
"conditional_for": { }
"reasonable_preference_reason": ["Yes"]
} }
}, },
"reasonable_preference_reason": {
"header": "Reason for reasonable preference being given",
"description": "",
"depends_on": [{ "reasonpref": "Yes" }],
"questions": {
"reasonable_preference_reason": { "reasonable_preference_reason": {
"check_answer_label": "Reason for reasonable preference", "check_answer_label": "Reason for reasonable preference",
"header": "Why were they given reasonable preference?", "header": "Why were they given reasonable preference?",

13
spec/models/case_log_spec.rb

@ -73,19 +73,6 @@ RSpec.describe Form, type: :model do
end end
context "reasonable preference is yes" do context "reasonable preference is yes" do
it "validates a reason must be selected" do
expect {
CaseLog.create!(reasonpref: "Yes",
rp_homeless: nil,
rp_insan_unsat: nil,
rp_medwel: nil,
rp_hardship: nil,
rp_dontknow: nil,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
end
it "validates that previously homeless should be selected" do it "validates that previously homeless should be selected" do
expect { expect {
CaseLog.create!( CaseLog.create!(

Loading…
Cancel
Save