Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

59 lines
1.7 KiB

module TasklistHelper
STATUSES = {
:not_started => "Not started",
:cannot_start_yet => "Cannot start yet",
:completed => "Completed",
:in_progress => "In progress"
}
STYLES = {
:not_started => "govuk-tag--grey",
:cannot_start_yet => "govuk-tag--grey",
:completed => "",
:in_progress => "govuk-tag--blue"
}
def get_subsection_status(subsection_name, case_log, questions)
if subsection_name == "declaration"
return all_questions_completed(case_log) ? :not_started : :cannot_start_yet
end
if questions.all? {|question| case_log[question].blank?}
return :not_started
end
if questions.all? {|question| case_log[question].present?}
return :completed
end
:in_progress
end
def get_status_style(status_label)
STYLES[status_label]
end
def get_status_label(status)
STATUSES[status]
end
def get_next_incomplete_section(form, case_log)
subsections = form.all_subsections.keys
return subsections.find { |subsection| is_incomplete?(subsection, case_log, form.questions_for_subsection(subsection).keys) }
end
def get_sections_count(form, case_log, status = :all)
subsections = form.all_subsections.keys
if status == :all
return subsections.count
end
return subsections.count { |subsection| get_subsection_status(subsection, case_log, form.questions_for_subsection(subsection).keys) == status }
end
private
def all_questions_completed(case_log)
case_log.attributes.all? { |_question, answer| answer.present?}
end
def is_incomplete?(subsection, case_log, questions)
status = get_subsection_status(subsection, case_log, questions)
return status == :not_started || status == :in_progress
end
end