Browse Source

feat: use helper for answer options

pull/1958/head
natdeanlewissoftwire 3 years ago
parent
commit
0d5d550ef5
  1. 11
      app/helpers/schemes_helper.rb
  2. 7
      app/views/schemes/details.html.erb
  3. 7
      app/views/schemes/edit_name.html.erb
  4. 16
      app/views/schemes/new.html.erb

11
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)

7
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" },

7
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" },

16
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) } %>

Loading…
Cancel
Save