diff --git a/app/controllers/locations_controller.rb b/app/controllers/locations_controller.rb index 3cf231246..496007740 100644 --- a/app/controllers/locations_controller.rb +++ b/app/controllers/locations_controller.rb @@ -6,12 +6,16 @@ class LocationsController < ApplicationController before_action :find_scheme before_action :authenticate_action! + def index + @pagy, @locations = pagy(@scheme.locations) + @total_count = @scheme.locations.size + end + def new @location = Location.new end def create - debugger @location = Location.new(location_params) if @location.save @@ -21,7 +25,7 @@ class LocationsController < ApplicationController end end - def details; end + def edit; end def update if @location.update(location_params) @@ -31,16 +35,14 @@ class LocationsController < ApplicationController end end - def index - @scheme = Scheme.find_by(id: params[:id]) - @pagy, @locations = pagy(@scheme.locations) - @total_count = @scheme.locations.size - end - private 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 def find_location @@ -52,7 +54,7 @@ private end 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 end end diff --git a/app/helpers/tab_nav_helper.rb b/app/helpers/tab_nav_helper.rb index ef8b240bc..4df951357 100644 --- a/app/helpers/tab_nav_helper.rb +++ b/app/helpers/tab_nav_helper.rb @@ -8,7 +8,7 @@ module TabNavHelper def location_cell(location) link_text = location.postcode - [govuk_link_to(link_text, location_path(location)), "Location #{location.name}"].join("\n") + [govuk_link_to(link_text, edit_location_path(location)), "Location #{location.name}"].join("\n") end def scheme_cell(scheme) diff --git a/app/views/locations/edit.html.erb b/app/views/locations/edit.html.erb new file mode 100644 index 000000000..bbcccdef6 --- /dev/null +++ b/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| %> +