Browse Source

PR commits

pull/106/head
baarkerlounger 4 years ago
parent
commit
ec54f5f97e
  1. 6
      app/controllers/case_logs_controller.rb
  2. 4
      app/models/case_log.rb
  3. 4
      app/models/form.rb

6
app/controllers/case_logs_controller.rb

@ -57,8 +57,8 @@ class CaseLogsController < ApplicationController
def submit_form
form = FormHandler.instance.get_form("2021_2022")
@case_log = CaseLog.find(params[:id])
@case_log.page = params[:case_log][:page]
page = form.get_page(@case_log.page)
@case_log.page_id = params[:case_log][:page]
page = form.get_page(@case_log.page_id)
responses_for_page = responses_for_page(page)
if @case_log.update(responses_for_page) && @case_log.has_no_unresolved_soft_errors?
redirect_path = form.next_page_redirect_path(page, @case_log)
@ -101,7 +101,7 @@ private
API_ACTIONS = %w[create show update destroy].freeze
def responses_for_page(page)
page.expected_responses.each_with_object({}) do |(question), result|
page.expected_responses.each_with_object({}) do |question, result|
question_params = params["case_log"][question.id]
if question.type == "date"
day = params["case_log"]["#{question.id}(3i)"]

4
app/models/case_log.rb

@ -11,7 +11,7 @@ class CaseLogValidator < ActiveModel::Validator
# If we've come from the form UI we only want to validate the specific fields
# that have just been submitted. If we're submitting a log via API or Bulk Upload
# we want to validate all data fields.
page_to_validate = record.page
page_to_validate = record.page_id
if page_to_validate
public_send("validate_#{page_to_validate}", record) if respond_to?("validate_#{page_to_validate}")
else
@ -44,7 +44,7 @@ class CaseLog < ApplicationRecord
validates_with CaseLogValidator
before_save :update_status!
attr_accessor :page
attr_accessor :page_id
enum status: { "not_started" => 0, "in_progress" => 1, "completed" => 2 }

4
app/models/form.rb

@ -25,8 +25,8 @@ class Form
def next_page(page, case_log)
page_ids = subsection_for_page(page).pages.map(&:id)
page_idx = page_ids.index(page.id)
nxt_page = get_page(page_ids[page_idx + 1])
page_index = page_ids.index(page.id)
nxt_page = get_page(page_ids[page_index + 1])
return :check_answers if nxt_page.nil?
return nxt_page.id if nxt_page.routed_to?(case_log)

Loading…
Cancel
Save