From dc0667e54b295cae444a0071ba9b12ca80166561 Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 13 Dec 2023 08:37:36 +0100 Subject: [PATCH] refactor attribute list --- app/helpers/schemes_helper.rb | 15 +++++++++++++++ app/models/scheme.rb | 20 -------------------- app/views/schemes/check_answers.html.erb | 20 ++------------------ app/views/schemes/show.html.erb | 22 ++-------------------- 4 files changed, 19 insertions(+), 58 deletions(-) diff --git a/app/helpers/schemes_helper.rb b/app/helpers/schemes_helper.rb index 7a6695a44..078419619 100644 --- a/app/helpers/schemes_helper.rb +++ b/app/helpers/schemes_helper.rb @@ -57,6 +57,21 @@ module SchemesHelper schemes_csv_download_organisation_path(organisation, search:, download_type:) end + def change_answer_link(scheme, question_id, user) + case question_id + when "service_name", "sensitive", "scheme_type", "registered_under_care_act", "owning_organisation_id", "arrangement_type" + user.support? || !scheme.confirmed? ? scheme_details_path(scheme, check_answers: true) : scheme_edit_name_path(scheme) + when "primary_client_group" + scheme_primary_client_group_path(scheme, check_answers: true) + when "has_other_client_group" + scheme_confirm_secondary_client_group_path(scheme, check_answers: true) + when "secondary_client_group" + scheme_secondary_client_group_path(scheme, check_answers: true) + when "support_type", "intended_stay" + scheme_support_path(scheme, check_answers: true) + end + end + private ActivePeriod = Struct.new(:from, :to) diff --git a/app/models/scheme.rb b/app/models/scheme.rb index 1a75aae8b..0bfd56373 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -194,29 +194,9 @@ class Scheme < ApplicationRecord { name: "Registered under Care Standards Act 2000", value: registered_under_care_act, id: "registered_under_care_act", edit: true }, { name: "Housing stock owned by", value: owning_organisation.name, id: "owning_organisation_id", edit: true }, { name: "Support services provided by", value: arrangement_type, id: "arrangement_type", edit: true }, - ] - end - - def check_primary_client_attributes - [ { name: "Primary client group", value: primary_client_group, id: "primary_client_group", edit: true }, - ] - end - - def check_secondary_client_confirmation_attributes - [ { name: "Has another client group", value: has_other_client_group, id: "has_other_client_group", edit: true }, - ] - end - - def check_secondary_client_attributes - [ { name: "Secondary client group", value: secondary_client_group, id: "secondary_client_group", edit: true }, - ] - end - - def check_support_attributes - [ { name: "Level of support given", value: support_type, id: "support_type", edit: true }, { name: "Intended length of stay", value: intended_stay, id: "intended_stay", edit: true }, ] diff --git a/app/views/schemes/check_answers.html.erb b/app/views/schemes/check_answers.html.erb index 1020f5d62..36c459ada 100644 --- a/app/views/schemes/check_answers.html.erb +++ b/app/views/schemes/check_answers.html.erb @@ -9,26 +9,10 @@

Scheme

<% @scheme.check_details_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: current_user.support? ? scheme_details_path(@scheme, check_answers: true) : scheme_edit_name_path(@scheme) } unless attr[:name] == "Status" %> - <% end %> - - <% @scheme.check_primary_client_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_primary_client_group_path(@scheme, check_answers: true) } %> - <% end %> - - <% @scheme.check_secondary_client_confirmation_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_confirm_secondary_client_group_path(@scheme, check_answers: true) } %> - <% end %> - - <% if @scheme.has_other_client_group == "Yes" %> - <% @scheme.check_secondary_client_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_secondary_client_group_path(@scheme, check_answers: true) } %> + <% if attr[:name] != "Status" && (attr[:id] != "secondary_client_group" || @scheme.has_other_client_group == "Yes") %> + <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: change_answer_link(@scheme, attr[:id], current_user) } %> <% end %> <% end %> - - <% @scheme.check_support_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_support_path(@scheme, check_answers: true) } %> - <% end %>
<% end %> <% end %> diff --git a/app/views/schemes/show.html.erb b/app/views/schemes/show.html.erb index 8bf0647c3..9d20ab91c 100644 --- a/app/views/schemes/show.html.erb +++ b/app/views/schemes/show.html.erb @@ -31,29 +31,11 @@ <% end %> - <% else %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: current_user.support? ? scheme_details_path(@scheme, check_answers: true) : scheme_edit_name_path(scheme_id: @scheme.id) } %> + <% elsif attr[:id] != "secondary_client_group" || @scheme.has_other_client_group == "Yes" %> + <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: change_answer_link(@scheme, attr[:id], current_user) } %> <% end %> <% end %> - <% @scheme.check_primary_client_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_primary_client_group_path(@scheme, check_answers: true) } %> - <% end %> - - <% @scheme.check_secondary_client_confirmation_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_confirm_secondary_client_group_path(@scheme, check_answers: true) } %> - <% end %> - - <% if @scheme.has_other_client_group == "Yes" %> - <% @scheme.check_secondary_client_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_secondary_client_group_path(@scheme, check_answers: true) } %> - <% end %> - <% end %> - - <% @scheme.check_support_attributes.each do |attr| %> - <%= render partial: "scheme_summary_list_row", locals: { scheme: @scheme, attribute: attr, change_link: scheme_support_path(@scheme, check_answers: true) } %> - <% end %> -
Availability