diff --git a/app/models/form/question.rb b/app/models/form/question.rb index 5b4440e39..1decb0226 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -129,6 +129,11 @@ class Form::Question "/#{log.model_name.param_key.dasherize}s/#{log.id}/#{page_id.to_s.dasherize}?referrer=check_answers" end + def unanswered?(log) + return answer_options.keys.none? { |key| value_is_yes?(log[key]) } if type == "checkbox" + log[id].blank? + end + def completed?(log) return answer_options.keys.any? { |key| value_is_yes?(log[key]) } if type == "checkbox" diff --git a/app/models/form/subsection.rb b/app/models/form/subsection.rb index 9fc76b5c2..c3157b8c6 100644 --- a/app/models/form/subsection.rb +++ b/app/models/form/subsection.rb @@ -30,7 +30,7 @@ class Form::Subsection qs = applicable_questions(log) qs_optional_removed = qs.reject { |q| log.optional_fields.include?(q.id) } - return :not_started if qs.count.positive? && qs.all? { |question| !question.completed?(log) || question.read_only? || question.derived? } + return :not_started if qs.count.positive? && qs.all? { |question| question.unanswered?(log) || question.read_only? || question.derived? } return :completed if qs_optional_removed.all? { |question| question.completed?(log) } :in_progress