From 74c0e8d351f7022fbe8d9bcd2bc4f2b5122ed76a Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Thu, 30 Jun 2022 12:28:39 +0100 Subject: [PATCH] Fix some conditions --- app/controllers/form_controller.rb | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index 656e0ab6e..101cfa368 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -127,11 +127,23 @@ private end def mandatory_questions_with_no_response(responses_for_page) - @page.questions.select do |question| - (responses_for_page[question.id].nil? || responses_for_page[question.id].empty?) && - CaseLog::OPTIONAL_FIELDS.exclude?(question.id) && - @page.subsection.applicable_questions(@case_log).map(&:id).include?(question.id) + @page.questions.select do |question| + question_is_required?(question) && question_missing_response?(responses_for_page, question) end end -end + def question_is_required?(question) + CaseLog::OPTIONAL_FIELDS.exclude?(question.id) && + @page.subsection.applicable_questions(@case_log).map(&:id).include?(question.id) + end + + def question_missing_response?(responses_for_page, question) + if %w[checkbox validation_override].include?(question.type) + question.answer_options.keys.reject { |x| x.match(/divider/) }.all? do |option| + params["case_log"][question.id].exclude?(option) + end + else + responses_for_page[question.id].nil? || responses_for_page[question.id].blank? + end + end +end