Browse Source

refactored

pull/671/head
JG 3 years ago
parent
commit
363ddc1257
  1. 73
      app/controllers/schemes_controller.rb
  2. 4
      app/views/schemes/check_answers.html.erb
  3. 30
      app/views/schemes/confirm_secondary.html.erb
  4. 2
      app/views/schemes/details.html.erb
  5. 4
      app/views/schemes/primary_client_group.html.erb
  6. 6
      app/views/schemes/secondary_client_group.html.erb
  7. 4
      app/views/schemes/support.html.erb
  8. 15
      config/routes.rb

73
app/controllers/schemes_controller.rb

@ -34,57 +34,60 @@ class SchemesController < ApplicationController
@scheme = Scheme.new(clean_params)
@scheme.save
redirect_to edit_scheme_path(id: @scheme.id)
render "schemes/primary_client_group"
end
def edit
if !params[:scheme]
@scheme = Scheme.find(params[:id])
def primary_client_group
@scheme = Scheme.find_by(id: params[:scheme_id])
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"
render "schemes/check_answers"
elsif secondary_client_group_patch?
required_params = params.require(:scheme).permit(:secondary_client_group)
@scheme.update(required_params)
# render "schemes/support"
render "schemes/check_answers"
elsif support_patch?
required_params = params.require(:scheme).permit(:intended_stay, :support_type)
@scheme.update(required_params)
# render "schemes/details"
render "schemes/check_answers"
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)
render "schemes/check_answers"
end
end
private
def confirm_secondary_group
@scheme = Scheme.find_by(id: params[:scheme_id])
if params[:scheme]
required_params = params.require(:scheme).permit(:primary_client_group) if params
@scheme.update(required_params) if required_params
end
render "schemes/confirm_secondary"
end
def primary_client_group_patch?
params[:scheme][:primary_client_group]
def secondary_client_group
@scheme = Scheme.find_by(id: params[:scheme_id])
if params[:confirmed]
params[:confirmed][:selection] == "Yes" ? render("schemes/secondary_client_group") : render("schemes/support")
else
render "schemes/secondary_client_group"
end
end
def secondary_client_group_patch?
params[:scheme][:secondary_client_group]
def support
@scheme = Scheme.find_by(id: params[:scheme_id])
if params[:scheme]
required_params = params.require(:scheme).permit(:secondary_client_group)
@scheme.update(required_params) if required_params
end
render "schemes/support"
end
def support_patch?
params[:scheme][:intended_stay]
def check_answers
@scheme = Scheme.find_by(id: params[:scheme_id])
if params[:scheme]
required_params = params.require(:scheme).permit(:intended_stay, :support_type)
@scheme.update(required_params)
end
render "schemes/check_answers"
end
def details_patch?
params[:scheme][:service_name]
def update
flash[:notice] = I18n.t("Scheme has been created.")
redirect_to schemes_path
end
private
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, :id).merge(code: code)
required_params = params.require(:scheme).permit(:service_name, :sensitive, :organisation_id, :scheme_type, :registered_under_care_act, :total_units, :id, :confirmed).merge(code: code)
required_params[:sensitive] = required_params[:sensitive].to_i
required_params
end

4
app/views/schemes/check_answers.html.erb

@ -3,7 +3,7 @@
<% content_for :before_content do %>
<%= govuk_back_link(
text: "Back",
href: :back,
href: 'javascript:history.go(-1);',
) %>
<% end %>
@ -20,4 +20,4 @@
<% end %>
<% end %>
<%= govuk_button_link_to "Create scheme", root_path, html: { method: :get } %>
<%= govuk_button_link_to "Create scheme", scheme_update_path, html: { method: :put } %>

30
app/views/schemes/confirm_secondary.html.erb

@ -0,0 +1,30 @@
<% content_for :before_content do %>
<%= govuk_back_link(
text: "Back",
href: :back,
) %>
<% end %>
<%= render partial: "organisations/headings", locals: { main: "Does this scheme provide for another client group?", sub: @scheme.service_name } %>
<%= form_for(:confirmed, method: :patch, url: scheme_secondary_path(scheme_id: @scheme.id)) do |f| %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<h1 class="govuk-heading-l">
<%= content_for(:title) %>
</h1>
<% selection = ["Yes", "No"].map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %>
<%= f.govuk_collection_radio_buttons :selection,
selection,
:id,
:name,
legend: nil
%>
<%= f.govuk_submit "Save and continue" %>
</div>
</div>
<% end %>

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

@ -3,7 +3,7 @@
<% content_for :before_content do %>
<%= govuk_back_link(
text: "Back",
href: :back,
href: 'javascript:history.go(-1);',
) %>
<% end %>

4
app/views/schemes/primary_client_group.html.erb

@ -1,13 +1,13 @@
<% content_for :before_content do %>
<%= govuk_back_link(
text: "Back",
href: :back,
href: 'javascript:history.go(-1);',
) %>
<% end %>
<%= render partial: "organisations/headings", locals: { main: "What client group is this scheme intended for?", 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_confirm_secondary_path(scheme_id: @scheme.id)) do |f| %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<%= f.govuk_error_summary %>

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

@ -1,13 +1,13 @@
<% content_for :before_content do %>
<%= govuk_back_link(
text: "Back",
href: :back,
href: 'javascript:history.go(-1);',
) %>
<% end %>
<%= render partial: "organisations/headings", locals: { main: "Does this scheme provide for another client group?", sub: @scheme.service_name } %>
<%= render partial: "organisations/headings", locals: { main: "What is the other client group?", sub: @scheme.service_name } %>
<%= form_for(@scheme, method: :patch, url: scheme_secondary_path(scheme_id: @scheme.id)) do |f| %>
<%= form_for(@scheme, method: :patch, url: scheme_support_path(scheme_id: @scheme.id)) do |f| %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<%= f.govuk_error_summary %>

4
app/views/schemes/support.html.erb

@ -1,13 +1,13 @@
<% content_for :before_content do %>
<%= govuk_back_link(
text: "Back",
href: :back,
href: 'javascript:history.go(-1);',
) %>
<% end %>
<%= render partial: "organisations/headings", locals: { main: "What support does this scheme provide?", sub: @scheme.service_name } %>
<%= form_for(@scheme, method: :patch, url: scheme_support_path(scheme_id: @scheme.id)) do |f| %>
<%= form_for(@scheme, method: :patch, url: scheme_check_answers_path(scheme_id: @scheme.id)) do |f| %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<%= f.govuk_error_summary %>

15
config/routes.rb

@ -36,10 +36,17 @@ Rails.application.routes.draw do
end
resources :schemes do
patch "primary", to: "schemes#edit"
patch "secondary", to: "schemes#edit"
patch "support", to: "schemes#edit"
patch "details", to: "schemes#edit"
patch "primary", to: "schemes#primary_client_group"
get "primary", to: "schemes#primary_client_group"
patch "secondary", to: "schemes#secondary_client_group"
get "secondary", to: "schemes#secondary_client_group"
patch "support", to: "schemes#support"
get "support", to: "schemes#support"
get "update", to: "schemes#update"
patch "check_answers", to: "schemes#check_answers"
get "check_answers", to: "schemes#check_answers"
patch "confirm_secondary", to: "schemes#confirm_secondary_group"
get "confirm_secondary", to: "schemes#confirm_secondary_group"
member do
get "locations", to: "schemes#locations"

Loading…
Cancel
Save