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