|
|
|
@ -24,10 +24,10 @@ class CaseLogsController < ApplicationController
|
|
|
|
|
form = Form.new(2021, 2022) |
|
|
|
|
@case_log = CaseLog.find(params[:id]) |
|
|
|
|
previous_page = params[:case_log][:previous_page] |
|
|
|
|
questions_for_page = form.questions_for_page(previous_page).keys |
|
|
|
|
checked_answers = get_checked_answers(questions_for_page, params[:case_log]) |
|
|
|
|
questions_for_page = form.questions_for_page(previous_page) |
|
|
|
|
checked_answers = get_checked_answers(params[:case_log], questions_for_page) |
|
|
|
|
|
|
|
|
|
answers_for_page = page_params(questions_for_page).select { |k, _v| questions_for_page.include?(k) } |
|
|
|
|
answers_for_page = page_params(questions_for_page.keys).select { |k, _v| questions_for_page.keys.include?(k) } |
|
|
|
|
if @case_log.update(checked_answers) && @case_log.update(answers_for_page) |
|
|
|
|
redirect_path = form.next_page_redirect_path(previous_page) |
|
|
|
|
redirect_to(send(redirect_path, @case_log)) |
|
|
|
@ -37,16 +37,18 @@ class CaseLogsController < ApplicationController
|
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def get_checked_answers(questions_for_page, case_log_params) |
|
|
|
|
checked_questions = questions_for_page.map do |question| |
|
|
|
|
if case_log_params[question].is_a?(Array) |
|
|
|
|
case_log_params[question].reject(&:empty?).map { |answer| { "#{question}_#{answer.parameterize(separator: '_')}" => true } } |
|
|
|
|
def get_checked_answers(case_log_params, questions_for_page) |
|
|
|
|
checked_questions = {} |
|
|
|
|
checkbox_questions = questions_for_page.select {|_title, question| question["type"] == "checkbox" } |
|
|
|
|
checkbox_questions.each do |title, question| |
|
|
|
|
valid_answer_options = question["answer_options"].select {|key, _value| !key.match?(/divider/) } |
|
|
|
|
valid_answer_options.each do |_key, value| |
|
|
|
|
checked_questions["#{title}_#{value.parameterize(separator: '_')}"] = case_log_params[title].include?(value) ? true : false |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
checked_questions.flatten.reject(&:nil?).reduce({}, :merge) |
|
|
|
|
checked_questions |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def check_answers |
|
|
|
|
@case_log = CaseLog.find(params[:case_log_id]) |
|
|
|
|
form = Form.new(2021, 2022) |
|
|
|
|