From 26300cc70fc3b6ef325289d3fbffa52aa1387722 Mon Sep 17 00:00:00 2001 From: Kat Date: Tue, 29 Mar 2022 13:05:20 +0100 Subject: [PATCH] change get_question form method to prioritise the routed to questions --- app/helpers/interuption_screen_helper.rb | 3 ++- app/models/form.rb | 6 ++++-- app/models/form/question.rb | 2 +- app/models/validations/household_validations.rb | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/helpers/interuption_screen_helper.rb b/app/helpers/interuption_screen_helper.rb index e189c4d88..766668c60 100644 --- a/app/helpers/interuption_screen_helper.rb +++ b/app/helpers/interuption_screen_helper.rb @@ -1,6 +1,7 @@ module InteruptionScreenHelper def display_informative_text(informative_text, case_log) - translation_questions = informative_text["argument"].map { |x| case_log.form.get_question(x) } + translation_questions = informative_text["argument"].map { |x| case_log.form.get_question(x, case_log) } + begin case translation_questions.count when 2 diff --git a/app/models/form.rb b/app/models/form.rb index b68eef18c..c0f5243fd 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -24,8 +24,10 @@ class Form pages.find { |p| p.id == id.to_s.underscore } end - def get_question(id) - questions.find { |q| q.id == id.to_s.underscore } + def get_question(id, case_log) + all_questions = questions.select { |q| q.id == id.to_s.underscore } + routed_question = all_questions.find { |q| q.page.routed_to?(case_log) } + routed_question || all_questions[0] end def subsection_for_page(page) diff --git a/app/models/form/question.rb b/app/models/form/question.rb index 602713c22..03210ba0f 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -49,7 +49,7 @@ class Form::Question return [] unless inferred_answers enabled_inferred_answers(inferred_answers, case_log).keys.map do |x| - form.get_question(x).label_from_value(case_log[x]) + form.get_question(x, case_log).label_from_value(case_log[x]) end end diff --git a/app/models/validations/household_validations.rb b/app/models/validations/household_validations.rb index 2528a41a4..cd8bc912b 100644 --- a/app/models/validations/household_validations.rb +++ b/app/models/validations/household_validations.rb @@ -88,7 +88,7 @@ module Validations::HouseholdValidations end if record.is_internal_transfer? && [3, 4, 7, 9, 10, 13, 14, 19, 21, 23, 24, 25, 26, 27, 28, 29].include?(record.prevten) - label = record.form.get_question("prevten").present? ? record.form.get_question("prevten").label_from_value(record.prevten) : "" + label = record.form.get_question("prevten", record).present? ? record.form.get_question("prevten", record).label_from_value(record.prevten) : "" record.errors.add :prevten, I18n.t("validations.household.prevten.internal_transfer", prevten: label) record.errors.add :referral, I18n.t("validations.household.referral.prevten_invalid", prevten: label) end