diff --git a/app/models/case_log.rb b/app/models/case_log.rb index e23d12f03..f35cec3be 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -110,6 +110,14 @@ class CaseLog < ApplicationRecord end end + def location_admin_district + if location + location.location_admin_district + else + super + end + end + def postcode_full if location location.postcode diff --git a/app/models/form/question.rb b/app/models/form/question.rb index 41a79fd3a..3345ad980 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -3,7 +3,8 @@ class Form::Question :type, :min, :max, :step, :width, :fields_to_add, :result_field, :conditional_for, :readonly, :answer_options, :page, :check_answer_label, :inferred_answers, :hidden_in_check_answers, :inferred_check_answers_value, - :guidance_partial, :prefix, :suffix, :requires_js, :fields_added, :derived + :guidance_partial, :prefix, :suffix, :requires_js, :fields_added, :derived, + :extra_check_answer_value def initialize(id, hsh, page) @id = id @@ -24,6 +25,7 @@ class Form::Question @answer_options = hsh["answer_options"] @conditional_for = hsh["conditional_for"] @inferred_answers = hsh["inferred_answers"] + @extra_check_answer_value = hsh["extra_check_answer_value"] @inferred_check_answers_value = hsh["inferred_check_answers_value"] @hidden_in_check_answers = hsh["hidden_in_check_answers"] @derived = hsh["derived"] @@ -51,16 +53,22 @@ class Form::Question def get_inferred_answers(case_log) return [] unless inferred_answers - enabled_inferred_answers(inferred_answers, case_log).keys.map do |x| - question = form.get_question(x, case_log) + enabled_inferred_answers(inferred_answers, case_log).keys.map do |answer| + question = form.get_question(answer, case_log) if question.present? - question.label_from_value(case_log[x]) + question.label_from_value(case_log[answer]) else - Array(x.to_s.split(".")).inject(case_log) { |o, a| o.present? ? o.public_send(*a) : "" } + Array(answer.to_s.split(".")).inject(case_log) { |log, method| log.present? ? log.public_send(*method) : "" } end end end + def get_extra_check_answer_value(case_log) + return nil unless extra_check_answer_value + + case_log.public_send(extra_check_answer_value) + end + def read_only? !!readonly end diff --git a/app/models/form/setup/questions/location_id.rb b/app/models/form/setup/questions/location_id.rb index d5a0976f7..57ef1cc54 100644 --- a/app/models/form/setup/questions/location_id.rb +++ b/app/models/form/setup/questions/location_id.rb @@ -5,6 +5,7 @@ class Form::Setup::Questions::LocationId < ::Form::Question @header = "Which location is this log for?" @hint_text = "" @type = "radio" + @extra_check_answer_value = "location_admin_district" @answer_options = answer_options @inferred_answers = { "location.name": { diff --git a/app/views/form/_check_answers_summary_list.html.erb b/app/views/form/_check_answers_summary_list.html.erb index 6b7761437..086d44f1a 100644 --- a/app/views/form/_check_answers_summary_list.html.erb +++ b/app/views/form/_check_answers_summary_list.html.erb @@ -3,7 +3,12 @@ <% summary_list.row do |row| %> <% row.key { question.check_answer_label.to_s.presence || question.header.to_s } %> <% row.value do %> - <%= get_answer_label(question, @case_log) %>
+ <%= get_answer_label(question, @case_log) %> + <% extra_value = question.get_extra_check_answer_value(@case_log) %> + <% if extra_value %> + <%= extra_value %> + <% end %> +
<% question.get_inferred_answers(@case_log).each do |inferred_answer| %> <%= inferred_answer %> <% end %> diff --git a/db/seeds.rb b/db/seeds.rb index 264b25d69..86f6d3395 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -28,6 +28,7 @@ unless Rails.env.test? if Rails.env.development? && User.count.zero? User.create!( + name: "Provider", email: "provider@example.com", password: "password", organisation: org, @@ -36,6 +37,7 @@ unless Rails.env.test? ) User.create!( + name: "Coordinator", email: "coordinator@example.com", password: "password", organisation: org, @@ -44,6 +46,7 @@ unless Rails.env.test? ) User.create!( + name: "Support", email: "support@example.com", password: "password", organisation: org,