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
def new
@resource = Scheme.new
@scheme = Scheme.new
end
def create
@ -40,27 +40,48 @@ class SchemesController < ApplicationController
def edit
if !params[:scheme]
@scheme = Scheme.find(params[:id])
render "schemes/primary_client_group", locals: { scheme: @scheme }
elsif params[:scheme][:primary_client_group]
render "schemes/primary_client_group"
elsif primary_client_group_patch?
required_params = params.require(:scheme).permit(:primary_client_group)
@scheme.update(required_params)
render "schemes/secondary_client_group", locals: { scheme: @scheme }
elsif params[:scheme][:secondary_client_group]
required_params = params.require(:scheme).permit(:secondaryy_client_group)
render "schemes/secondary_client_group"
elsif secondary_client_group_patch?
required_params = params.require(:scheme).permit(:secondary_client_group)
@scheme.update(required_params)
render "schemes/secondary_client_group", locals: { scheme: @scheme }
elsif params[:scheme][:support]
required_params = params.require(:scheme).permit(:secondaryy_client_group)
render "schemes/support"
elsif support_patch?
required_params = params.require(:scheme).permit(:intended_stay, :support_type)
@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
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
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
end

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

@ -7,7 +7,7 @@
<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) %>

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

@ -7,7 +7,7 @@
) %>
<% 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-column-two-thirds">
<%= 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 } %>
<%= 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-column-two-thirds">
<%= f.govuk_error_summary %>
@ -19,9 +19,9 @@
<legend class="govuk-fieldset__legend">
</legend>
<% primary_client_group_selection = Scheme.primary_client_groups.keys.excluding("Missing").map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %>
<%= f.govuk_collection_radio_buttons :primary_client_group,
primary_client_group_selection,
<% 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 :secondary_client_group,
secondary_client_group_selection,
:id,
:name,
legend: nil %>

3
config/routes.rb

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

Loading…
Cancel
Save