Browse Source

SPIKE WIP

pull/671/head
JG 3 years ago
parent
commit
8674413094
  1. 43
      app/controllers/schemes_controller.rb
  2. 2
      app/views/schemes/index.html.erb
  3. 2
      app/views/schemes/new.html.erb
  4. 8
      app/views/schemes/secondary_client_group.html.erb
  5. 3
      config/routes.rb

43
app/controllers/schemes_controller.rb

@ -27,7 +27,7 @@ class SchemesController < ApplicationController
end end
def new def new
@resource = Scheme.new @scheme = Scheme.new
end end
def create def create
@ -40,27 +40,48 @@ class SchemesController < ApplicationController
def edit def edit
if !params[:scheme] if !params[:scheme]
@scheme = Scheme.find(params[:id]) @scheme = Scheme.find(params[:id])
render "schemes/primary_client_group", locals: { scheme: @scheme } render "schemes/primary_client_group"
elsif params[:scheme][:primary_client_group] elsif primary_client_group_patch?
required_params = params.require(:scheme).permit(:primary_client_group) required_params = params.require(:scheme).permit(:primary_client_group)
@scheme.update(required_params) @scheme.update(required_params)
render "schemes/secondary_client_group", locals: { scheme: @scheme } render "schemes/secondary_client_group"
elsif params[:scheme][:secondary_client_group] elsif secondary_client_group_patch?
required_params = params.require(:scheme).permit(:secondaryy_client_group) required_params = params.require(:scheme).permit(:secondary_client_group)
@scheme.update(required_params) @scheme.update(required_params)
render "schemes/secondary_client_group", locals: { scheme: @scheme } render "schemes/support"
elsif params[:scheme][:support] elsif support_patch?
required_params = params.require(:scheme).permit(:secondaryy_client_group) required_params = params.require(:scheme).permit(:intended_stay, :support_type)
@scheme.update(required_params) @scheme.update(required_params)
render "schemes/secondary_client_group", locals: { scheme: @scheme } render "schemes/details"
elsif details_patch?
required_params = params.require(:scheme).permit(:service_name, :sensitive, :organisation_id, :scheme_type, :registered_under_care_act, :total_units, :id)
required_params[:sensitive] = required_params[:sensitive].to_i
@scheme.update(required_params)
redirect_to schemes_path
end end
end end
private private
def primary_client_group_patch?
params[:scheme][:primary_client_group]
end
def secondary_client_group_patch?
params[:scheme][:secondary_client_group]
end
def support_patch?
params[:scheme][:intended_stay]
end
def details_patch?
params[:scheme][:service_name]
end
def clean_params def clean_params
code = "S#{SecureRandom.alphanumeric(5)}".upcase code = "S#{SecureRandom.alphanumeric(5)}".upcase
required_params = params.require(:scheme).permit(:service_name, :sensitive, :organisation_id, :scheme_type, :registered_under_care_act, :total_units).merge(code: code) required_params = params.require(:scheme).permit(:service_name, :sensitive, :organisation_id, :scheme_type, :registered_under_care_act, :total_units, :id).merge(code: code)
required_params[:sensitive] = required_params[:sensitive].to_i required_params[:sensitive] = required_params[:sensitive].to_i
required_params required_params
end end

2
app/views/schemes/index.html.erb

@ -7,7 +7,7 @@
<h2 class="govuk-visually-hidden">Supported housing schemes</h2> <h2 class="govuk-visually-hidden">Supported housing schemes</h2>
<%= govuk_button_link_to "Create a new supported housing scheme", new_scheme_path, html: { method: :get } %> <%= govuk_button_link_to "Create a new supported housing scheme", new_scheme_path, html: { method: :post } %>
<%= render SearchComponent.new(current_user:, search_label: "Search by service name or code", value: @searched) %> <%= render SearchComponent.new(current_user:, search_label: "Search by service name or code", value: @searched) %>

2
app/views/schemes/new.html.erb

@ -7,7 +7,7 @@
) %> ) %>
<% end %> <% end %>
<%= form_for(@resource, as: :scheme, method: :post, url: schemes_path(scheme: @resource)) do |f| %> <%= form_for(@scheme, as: :scheme, method: :post, url: schemes_path(scheme: @scheme)) do |f| %>
<div class="govuk-grid-row"> <div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds"> <div class="govuk-grid-column-two-thirds">
<%= f.govuk_error_summary %> <%= f.govuk_error_summary %>

8
app/views/schemes/secondary_client_group.html.erb

@ -7,7 +7,7 @@
<%= render partial: "organisations/headings", locals: { main: "Does this scheme provide for another client group?", sub: @scheme.service_name } %> <%= render partial: "organisations/headings", locals: { main: "Does this scheme provide for another client group?", sub: @scheme.service_name } %>
<%= form_for(@scheme, method: :patch, url: scheme_primary_path(scheme_id: @scheme.id)) do |f| %> <%= form_for(@scheme, method: :patch, url: scheme_secondary_path(scheme_id: @scheme.id)) do |f| %>
<div class="govuk-grid-row"> <div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds"> <div class="govuk-grid-column-two-thirds">
<%= f.govuk_error_summary %> <%= f.govuk_error_summary %>
@ -19,9 +19,9 @@
<legend class="govuk-fieldset__legend"> <legend class="govuk-fieldset__legend">
</legend> </legend>
<% primary_client_group_selection = Scheme.primary_client_groups.keys.excluding("Missing").map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %> <% secondary_client_group_selection = Scheme.secondary_client_groups.keys.excluding("Missing").map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %>
<%= f.govuk_collection_radio_buttons :primary_client_group, <%= f.govuk_collection_radio_buttons :secondary_client_group,
primary_client_group_selection, secondary_client_group_selection,
:id, :id,
:name, :name,
legend: nil %> legend: nil %>

3
config/routes.rb

@ -37,6 +37,9 @@ Rails.application.routes.draw do
resources :schemes do resources :schemes do
patch "primary", to: "schemes#edit" patch "primary", to: "schemes#edit"
patch "secondary", to: "schemes#edit"
patch "support", to: "schemes#edit"
patch "details", to: "schemes#edit"
member do member do
get "locations", to: "schemes#locations" get "locations", to: "schemes#locations"

Loading…
Cancel
Save