Browse Source

rename lettings log to log in form model

pull/863/head
Kat 3 years ago committed by baarkerlounger
parent
commit
baea24f112
  1. 62
      app/models/form.rb

62
app/models/form.rb

@ -48,9 +48,9 @@ class Form
pages.find { |p| p.id == id.to_s.underscore } pages.find { |p| p.id == id.to_s.underscore }
end end
def get_question(id, lettings_log, current_user = nil) def get_question(id, log, current_user = nil)
all_questions = questions.select { |q| q.id == id.to_s.underscore } all_questions = questions.select { |q| q.id == id.to_s.underscore }
routed_question = all_questions.find { |q| q.page.routed_to?(lettings_log, current_user) } if lettings_log routed_question = all_questions.find { |q| q.page.routed_to?(log, current_user) } if log
routed_question || all_questions[0] routed_question || all_questions[0]
end end
@ -58,24 +58,24 @@ class Form
subsections.find { |s| s.pages.find { |p| p.id == page.id } } subsections.find { |s| s.pages.find { |p| p.id == page.id } }
end end
def next_page(page, lettings_log, current_user) def next_page(page, log, current_user)
page_ids = subsection_for_page(page).pages.map(&:id) page_ids = subsection_for_page(page).pages.map(&:id)
page_index = page_ids.index(page.id) page_index = page_ids.index(page.id)
page_id = if page.id.include?("value_check") && lettings_log[page.questions[0].id] == 1 && page.routed_to?(lettings_log, current_user) page_id = if page.id.include?("value_check") && log[page.questions[0].id] == 1 && page.routed_to?(log, current_user)
previous_page(page_ids, page_index, lettings_log, current_user) previous_page(page_ids, page_index, log, current_user)
else else
page_ids[page_index + 1] page_ids[page_index + 1]
end end
nxt_page = get_page(page_id) nxt_page = get_page(page_id)
return :check_answers if nxt_page.nil? return :check_answers if nxt_page.nil?
return nxt_page.id if nxt_page.routed_to?(lettings_log, current_user) return nxt_page.id if nxt_page.routed_to?(log, current_user)
next_page(nxt_page, lettings_log, current_user) next_page(nxt_page, log, current_user)
end end
def next_page_redirect_path(page, lettings_log, current_user) def next_page_redirect_path(page, log, current_user)
nxt_page = next_page(page, lettings_log, current_user) nxt_page = next_page(page, log, current_user)
if nxt_page == :check_answers if nxt_page == :check_answers
"#{type}_log_#{subsection_for_page(page).id}_check_answers_path" "#{type}_log_#{subsection_for_page(page).id}_check_answers_path"
else else
@ -122,10 +122,10 @@ class Form
next_subsection next_subsection
end end
def all_subsections_except_declaration_completed?(lettings_log) def all_subsections_except_declaration_completed?(log)
subsection_ids = subsections.map(&:id) subsection_ids = subsections.map(&:id)
subsection_ids.delete_at(subsection_ids.length - 1) subsection_ids.delete_at(subsection_ids.length - 1)
return true if subsection_ids.all? { |subsection_id| get_subsection(subsection_id).status(lettings_log) == :completed } return true if subsection_ids.all? { |subsection_id| get_subsection(subsection_id).status(log) == :completed }
false false
end end
@ -137,26 +137,26 @@ class Form
}.flatten }.flatten
end end
def invalidated_pages(lettings_log, current_user = nil) def invalidated_pages(log, current_user = nil)
pages.reject { |p| p.routed_to?(lettings_log, current_user) } pages.reject { |p| p.routed_to?(log, current_user) }
end end
def invalidated_questions(lettings_log) def invalidated_questions(log)
invalidated_page_questions(lettings_log) + invalidated_conditional_questions(lettings_log) invalidated_page_questions(log) + invalidated_conditional_questions(log)
end end
def invalidated_page_questions(lettings_log, current_user = nil) def invalidated_page_questions(log, current_user = nil)
# we're already treating these fields as a special case and reset their values upon saving a lettings_log # we're already treating these fields as a special case and reset their values upon saving a log
callback_questions = %w[postcode_known la ppcodenk previous_la_known prevloc postcode_full ppostcode_full location_id] callback_questions = %w[postcode_known la ppcodenk previous_la_known prevloc postcode_full ppostcode_full location_id]
questions.reject { |q| q.page.routed_to?(lettings_log, current_user) || q.derived? || callback_questions.include?(q.id) } || [] questions.reject { |q| q.page.routed_to?(log, current_user) || q.derived? || callback_questions.include?(q.id) } || []
end end
def enabled_page_questions(lettings_log) def enabled_page_questions(log)
questions - invalidated_page_questions(lettings_log) questions - invalidated_page_questions(log)
end end
def invalidated_conditional_questions(lettings_log) def invalidated_conditional_questions(log)
questions.reject { |q| q.enabled?(lettings_log) } || [] questions.reject { |q| q.enabled?(log) } || []
end end
def readonly_questions def readonly_questions
@ -167,18 +167,18 @@ class Form
questions.select { |q| q.type == "numeric" } questions.select { |q| q.type == "numeric" }
end end
def previous_page(page_ids, page_index, lettings_log, current_user) def previous_page(page_ids, page_index, log, current_user)
prev_page = get_page(page_ids[page_index - 1]) prev_page = get_page(page_ids[page_index - 1])
return prev_page.id if prev_page.routed_to?(lettings_log, current_user) return prev_page.id if prev_page.routed_to?(log, current_user)
previous_page(page_ids, page_index - 1, lettings_log, current_user) previous_page(page_ids, page_index - 1, log, current_user)
end end
def send_chain(arr, lettings_log) def send_chain(arr, log)
Array(arr).inject(lettings_log) { |o, a| o.public_send(*a) } Array(arr).inject(log) { |o, a| o.public_send(*a) }
end end
def depends_on_met(depends_on, lettings_log) def depends_on_met(depends_on, log)
return true unless depends_on return true unless depends_on
depends_on.any? do |conditions_set| depends_on.any? do |conditions_set|
@ -188,12 +188,12 @@ class Form
if value.is_a?(Hash) && value.key?("operator") if value.is_a?(Hash) && value.key?("operator")
operator = value["operator"] operator = value["operator"]
operand = value["operand"] operand = value["operand"]
lettings_log[question]&.send(operator, operand) log[question]&.send(operator, operand)
else else
parts = question.split(".") parts = question.split(".")
lettings_log_value = send_chain(parts, lettings_log) log_value = send_chain(parts, log)
value.nil? ? lettings_log_value == value : !lettings_log_value.nil? && lettings_log_value == value value.nil? ? log_value == value : !log_value.nil? && log_value == value
end end
end end
end end

Loading…
Cancel
Save