From 0d5d550ef590052e64b3bcef94024b5b56433994 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Tue, 10 Oct 2023 13:39:09 +0100 Subject: [PATCH] feat: use helper for answer options --- app/helpers/schemes_helper.rb | 11 +++++++++++ app/views/schemes/details.html.erb | 7 +------ app/views/schemes/edit_name.html.erb | 7 +------ app/views/schemes/new.html.erb | 16 +++++----------- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/app/helpers/schemes_helper.rb b/app/helpers/schemes_helper.rb index ab6f4b6f2..d111b402c 100644 --- a/app/helpers/schemes_helper.rb +++ b/app/helpers/schemes_helper.rb @@ -34,6 +34,17 @@ module SchemesHelper return govuk_button_link_to "Reactivate this scheme", scheme_new_reactivation_path(scheme) if scheme.deactivated? end + def owning_organisation_options(current_user) + all_orgs = Organisation.all.map { |org| OpenStruct.new(id: org.id, name: org.name) } + user_org = [OpenStruct.new(id: current_user.organisation_id, name: current_user.organisation.name)] + stock_owners = current_user.organisation.stock_owners.map { |org| OpenStruct.new(id: org.id, name: org.name) } + current_user.support? ? all_orgs : user_org + stock_owners + end + + def null_option + [OpenStruct.new(id: "", name: "Select an option")] + end + private ActivePeriod = Struct.new(:from, :to) diff --git a/app/views/schemes/details.html.erb b/app/views/schemes/details.html.erb index 962d72548..3dc6208b1 100644 --- a/app/views/schemes/details.html.erb +++ b/app/views/schemes/details.html.erb @@ -44,16 +44,11 @@ :description, legend: { text: "Is this scheme registered under the Care Standards Act 2000?", size: "m" } %> - <% all_orgs = Organisation.all.map { |org| OpenStruct.new(id: org.id, name: org.name) } %> - <% user_org = [OpenStruct.new(id: current_user.organisation_id, name: current_user.organisation.name)] %> - <% stock_owners = current_user.organisation.stock_owners.map { |org| OpenStruct.new(id: org.id, name: org.name) } %> - <% organisations = current_user.support? ? all_orgs : user_org + stock_owners %> - <% if current_user.data_coordinator? && current_user.organisation.stock_owners.count.zero? %> <%= f.hidden_field :owning_organisation_id, value: current_user.organisation.id %> <% else %> <%= f.govuk_collection_select :owning_organisation_id, - organisations, + owning_organisation_options(current_user), :id, :name, label: { text: "Which organisation owns the housing stock for this scheme?", size: "m" }, diff --git a/app/views/schemes/edit_name.html.erb b/app/views/schemes/edit_name.html.erb index 5453deda2..0c7c1091e 100644 --- a/app/views/schemes/edit_name.html.erb +++ b/app/views/schemes/edit_name.html.erb @@ -25,16 +25,11 @@ label: { text: "This scheme contains confidential information" } %> <% end %> - <% all_orgs = Organisation.all.map { |org| OpenStruct.new(id: org.id, name: org.name) } %> - <% user_org = [OpenStruct.new(id: current_user.organisation_id, name: current_user.organisation.name)] %> - <% stock_owners = current_user.organisation.stock_owners.map { |org| OpenStruct.new(id: org.id, name: org.name) } %> - <% organisations = current_user.support? ? all_orgs : user_org + stock_owners %> - <% if current_user.data_coordinator? && current_user.organisation.stock_owners.count.zero? %> <%= f.hidden_field :owning_organisation_id, value: current_user.organisation.id %> <% else %> <%= f.govuk_collection_select :owning_organisation_id, - organisations, + owning_organisation_options(current_user), :id, :name, label: { text: "Which organisation owns the housing stock for this scheme?", size: "m" }, diff --git a/app/views/schemes/new.html.erb b/app/views/schemes/new.html.erb index 6f347c359..af5c2089a 100644 --- a/app/views/schemes/new.html.erb +++ b/app/views/schemes/new.html.erb @@ -44,21 +44,15 @@ :description, legend: { text: "Is this scheme registered under the Care Standards Act 2000?", size: "m" } %> - <% null_option = [OpenStruct.new(id: "", name: "Select an option")] %> - <% all_orgs = Organisation.all.map { |org| OpenStruct.new(id: org.id, name: org.name) } %> - <% user_org = [OpenStruct.new(id: current_user.organisation_id, name: current_user.organisation.name)] %> - <% stock_owners = current_user.organisation.stock_owners.map { |org| OpenStruct.new(id: org.id, name: org.name) } %> - <% answer_options = current_user.support? ? null_option + all_orgs : null_option + user_org + stock_owners %> - <% if current_user.data_coordinator? && current_user.organisation.stock_owners.count.zero? %> <%= f.hidden_field :owning_organisation_id, value: current_user.organisation.id %> <% else %> <%= f.govuk_collection_select :owning_organisation_id, - answer_options, - :id, - :name, - label: { text: "Which organisation owns the housing stock for this scheme?", size: "m" }, - "data-controller": %w[accessible-autocomplete conditional-filter] %> + null_option + owning_organisation_options(current_user), + :id, + :name, + label: { text: "Which organisation owns the housing stock for this scheme?", size: "m" }, + "data-controller": %w[accessible-autocomplete conditional-filter] %> <% end %> <% mantype_selection = Scheme.arrangement_types.keys.excluding("Missing").map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %>