diff --git a/app/models/form/question.rb b/app/models/form/question.rb index eb437b456..c21477bc9 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -5,6 +5,11 @@ class Form::Question :inferred_answers, :hidden_in_check_answers, :inferred_check_answers_value, :guidance_partial, :prefix, :suffix, :requires_js, :fields_added, :derived + module GuidancePosition + TOP = 1 + BOTTOM = 2 + end + def initialize(id, hsh, page) @id = id @page = page @@ -12,6 +17,7 @@ class Form::Question @check_answer_label = hsh["check_answer_label"] @header = hsh["header"] @guidance_partial = hsh["guidance_partial"] + @guidance_position = GuidancePosition::TOP @hint_text = hsh["hint_text"] @type = hsh["type"] @min = hsh["min"] @@ -238,6 +244,14 @@ class Form::Question case_log[id].to_s == answer.id.to_s end + def top_guidance? + @guidance_partial && @guidance_position == GuidancePosition::TOP + end + + def bottom_guidance? + @guidance_partial && @guidance_position == GuidancePosition::BOTTOM + end + private def selected_answer_option_is_derived?(case_log) diff --git a/app/models/form/setup/questions/scheme_id.rb b/app/models/form/setup/questions/scheme_id.rb index 27a9a6664..3c4985de1 100644 --- a/app/models/form/setup/questions/scheme_id.rb +++ b/app/models/form/setup/questions/scheme_id.rb @@ -7,6 +7,8 @@ class Form::Setup::Questions::SchemeId < ::Form::Question @type = "select" @answer_options = answer_options @derived = true unless FeatureToggle.supported_housing_schemes_enabled? + @guidance_position = GuidancePosition::BOTTOM + @guidance_partial = "scheme_selection" end def answer_options diff --git a/app/views/form/_checkbox_question.html.erb b/app/views/form/_checkbox_question.html.erb index eb6cd8d40..41bd3cc6d 100644 --- a/app/views/form/_checkbox_question.html.erb +++ b/app/views/form/_checkbox_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %> <%= f.govuk_check_boxes_fieldset question.id.to_sym, caption: caption(caption_text, page_header, conditional), @@ -20,3 +20,5 @@ <% end %> <% end %> <% end %> + +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/_date_question.html.erb b/app/views/form/_date_question.html.erb index 753ea5ba1..53abb5878 100644 --- a/app/views/form/_date_question.html.erb +++ b/app/views/form/_date_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %> <%= f.govuk_date_field question.id.to_sym, caption: caption(caption_text, page_header, conditional), @@ -6,3 +6,5 @@ hint: { text: question.hint_text&.html_safe || "For example, 1 9 2022." }, width: 20, **stimulus_html_attributes(question) %> + +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/_numeric_output_question.html.erb b/app/views/form/_numeric_output_question.html.erb index fdcfa4148..7f3f73719 100644 --- a/app/views/form/_numeric_output_question.html.erb +++ b/app/views/form/_numeric_output_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %>
+ +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/_numeric_question.html.erb b/app/views/form/_numeric_question.html.erb index 1d3d49646..d40067194 100644 --- a/app/views/form/_numeric_question.html.erb +++ b/app/views/form/_numeric_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %> <%= f.govuk_number_field question.id.to_sym, caption: caption(caption_text, page_header, conditional), @@ -10,3 +10,5 @@ prefix_text: question.prefix.to_s, suffix_text: question.suffix_label(@case_log), **stimulus_html_attributes(question) %> + +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/_radio_question.html.erb b/app/views/form/_radio_question.html.erb index a6cd165f9..d7bcc0381 100644 --- a/app/views/form/_radio_question.html.erb +++ b/app/views/form/_radio_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %> <%= f.govuk_radio_buttons_fieldset question.id.to_sym, caption: caption(caption_text, page_header, conditional), @@ -34,3 +34,5 @@ <% end %> <% end %> <% end %> + +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/_select_question.html.erb b/app/views/form/_select_question.html.erb index ef63153d7..ff4dd5f2e 100644 --- a/app/views/form/_select_question.html.erb +++ b/app/views/form/_select_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %> <% selected = @case_log.public_send(question.id) || "" %> <% answers = question.displayed_answer_options(@case_log).map { |key, value| OpenStruct.new(id: key, name: value.respond_to?(:service_name) ? value.service_name : nil, resource: value) } %> @@ -16,3 +16,5 @@ <%= answer.id == "" ? "disabled" : "" %>><%= answer.name || answer.resource %> <% end %> <% end %> + +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/_text_question.html.erb b/app/views/form/_text_question.html.erb index 4b11bea36..74e7e9b26 100644 --- a/app/views/form/_text_question.html.erb +++ b/app/views/form/_text_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %> <%= f.govuk_text_field question.id.to_sym, caption: caption(caption_text, page_header, conditional), @@ -6,3 +6,5 @@ hint: { text: question.hint_text&.html_safe }, width: question.width || nil, **stimulus_html_attributes(question) %> + +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/_textarea_question.html.erb b/app/views/form/_textarea_question.html.erb index e87cb558b..a9768e4d0 100644 --- a/app/views/form/_textarea_question.html.erb +++ b/app/views/form/_textarea_question.html.erb @@ -1,4 +1,4 @@ -<%= render partial: "form/guidance/#{question.guidance_partial}" if question.guidance_partial %> +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %> <%= f.govuk_text_area question.id.to_sym, caption: caption(caption_text, page_header, conditional), @@ -6,3 +6,5 @@ hint: { text: question.hint_text&.html_safe }, width: question.width || nil, **stimulus_html_attributes(question) %> + +<%= render partial: "form/guidance/#{question.guidance_partial}" if question.bottom_guidance? %> diff --git a/app/views/form/guidance/_scheme_selection.html.erb b/app/views/form/guidance/_scheme_selection.html.erb new file mode 100644 index 000000000..c48644077 --- /dev/null +++ b/app/views/form/guidance/_scheme_selection.html.erb @@ -0,0 +1,5 @@ +<% if current_user.data_provider? %> +

If you can’t find the supported housing service you’re looking for or not sure which to choose, contact a data coordinator at <%= current_user.organisation.name %>.

+<% elsif current_user.data_coordinator? %> +

or <%= govuk_link_to "create a new supported housing service", new_scheme_path %>

+<% end %>