Browse Source

fixed routing - WIP

pull/704/head
JG 3 years ago
parent
commit
8033d2f1dc
  1. 22
      app/controllers/locations_controller.rb
  2. 2
      app/helpers/tab_nav_helper.rb
  3. 63
      app/views/locations/edit.html.erb
  4. 5
      config/routes.rb

22
app/controllers/locations_controller.rb

@ -6,12 +6,16 @@ class LocationsController < ApplicationController
before_action :find_scheme before_action :find_scheme
before_action :authenticate_action! before_action :authenticate_action!
def index
@pagy, @locations = pagy(@scheme.locations)
@total_count = @scheme.locations.size
end
def new def new
@location = Location.new @location = Location.new
end end
def create def create
debugger
@location = Location.new(location_params) @location = Location.new(location_params)
if @location.save if @location.save
@ -21,7 +25,7 @@ class LocationsController < ApplicationController
end end
end end
def details; end def edit; end
def update def update
if @location.update(location_params) if @location.update(location_params)
@ -31,16 +35,14 @@ class LocationsController < ApplicationController
end end
end end
def index
@scheme = Scheme.find_by(id: params[:id])
@pagy, @locations = pagy(@scheme.locations)
@total_count = @scheme.locations.size
end
private private
def find_scheme def find_scheme
@scheme = params[:scheme_id] && params[:id] ? Scheme.find(params[:scheme_id]) : Scheme.find(params[:id]) if %w[new create].include?(action_name)
@scheme = Scheme.find(params[:id])
else
@scheme = @location.scheme
end
end end
def find_location def find_location
@ -52,7 +54,7 @@ private
end end
def authenticate_action! def authenticate_action!
if %w[new create details update].include?(action_name) && !((current_user.organisation == @scheme.organisation) || current_user.support?) if %w[details edit update].include?(action_name) && !((current_user.organisation == @scheme.organisation) || current_user.support?)
render_not_found and return render_not_found and return
end end
end end

2
app/helpers/tab_nav_helper.rb

@ -8,7 +8,7 @@ module TabNavHelper
def location_cell(location) def location_cell(location)
link_text = location.postcode link_text = location.postcode
[govuk_link_to(link_text, location_path(location)), "<span class=\"govuk-visually-hidden\">Location </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{location.name}</span>"].join("\n") [govuk_link_to(link_text, edit_location_path(location)), "<span class=\"govuk-visually-hidden\">Location </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{location.name}</span>"].join("\n")
end end
def scheme_cell(scheme) def scheme_cell(scheme)

63
app/views/locations/edit.html.erb

@ -0,0 +1,63 @@
<% content_for :title, "Add a location to this scheme" %>
<% content_for :before_content do %>
<%= govuk_back_link(
text: "Back",
href: "/schemes/#{@scheme.id}/support",
) %>
<% end %>
<%= render partial: "organisations/headings", locals: { main: "Add a location to this scheme", sub: @scheme.service_name } %>
<%= form_for(@location, method: :patch, url: location_path) do |f| %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<%= f.govuk_error_summary %>
<%= f.govuk_text_field :postcode,
label: { size: "m" },
hint: { text: "For example, SW1P 4DF." },
width: 5 %>
<%= f.govuk_text_field :name,
label: { text: "Name (optional)", size: "m" },
hint: { text: "This is how you refer to this location within your organisation" } %>
<%= f.govuk_number_field :total_units,
label: { text: "Total number of units at this location", size: "m" },
width: 2,
hint: { text: "A unit can be a bedroom in a shared house or flat, or a house with 4 bedrooms. Do not include bedrooms used for wardens, managers, volunteers or sleep-in staff.s" },
autofocus: true %>
<% type_of_units_selection = Location.type_of_units.keys.map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %>
<%= f.govuk_collection_radio_buttons :type_of_unit,
type_of_units_selection,
:id,
:name,
legend: { text: "What is this type of scheme?", size: "m" } %>
<% wheelchair_user_selection = Location.wheelchair_adaptations.keys.map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %>
<%= f.govuk_collection_radio_buttons :wheelchair_adaptation,
wheelchair_user_selection,
:id,
:name,
hint: { text: "This includes stairlifts, ramps, level-access showers or grab rails" },
legend: { text: "Are the majority of units in this location built or adapted to wheelchair-user standards?", size: "m" } %>
<%= govuk_section_break(visible: true, size: "m") %>
<% another_location_selection = %w[Yes no].map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } %>
<%= f.govuk_collection_radio_buttons :add_another_location,
another_location_selection,
:id,
:name,
inline: true,
legend: { text: "Do you want to add another location?", size: "m" } %>
<%= f.govuk_submit "Save and continue" %>
</div>
</div>
<% end %>

5
config/routes.rb

@ -45,11 +45,6 @@ Rails.application.routes.draw do
member do member do
resources :locations resources :locations
# get "locations", to: "schemes#locations"
# get "location/new", to: "locations#new"
# post "location/create", to: "locations#create"
# get "location", to: "locations#details"
# patch "location", to: "locations#update"
end end
end end

Loading…
Cancel
Save