diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb index b696cc3bc..90f06413b 100644 --- a/app/controllers/case_logs_controller.rb +++ b/app/controllers/case_logs_controller.rb @@ -59,13 +59,11 @@ class CaseLogsController < ApplicationController @case_log.page = params[:case_log][:page] responses_for_page = responses_for_page(@case_log.page) if @case_log.update(responses_for_page) && (@case_log.soft_errors.empty? || @case_log.soft_errors_overridden?) - @case_log.previous_page = @case_log.page redirect_path = get_next_page_path(form, @case_log.page, @case_log) redirect_to(send(redirect_path, @case_log)) else page_info = form.all_pages[@case_log.page] - back_path = get_previous_page_path(form, @case_log.page, @case_log) - render "form/page", locals: { form: form, back_path: back_path, page_key: @case_log.page, page_info: page_info }, status: :unprocessable_entity + render "form/page", locals: { form: form, page_key: @case_log.page, page_info: page_info }, status: :unprocessable_entity end end @@ -93,8 +91,7 @@ class CaseLogsController < ApplicationController form.all_pages.map do |page_key, page_info| define_method(page_key) do |_errors = {}| @case_log = CaseLog.find(params[:case_log_id]) - back_path = get_previous_page_path(form, page_key, @case_log) - render "form/page", locals: { form: form, back_path: back_path, page_key: page_key, page_info: page_info } + render "form/page", locals: { form: form, page_key: page_key, page_info: page_info } end end @@ -149,10 +146,4 @@ private end form.next_page_redirect_path(page) end - - def get_previous_page_path(form, current_page, case_log = {}) - return case_log.previous_page if case_log.previous_page - return request.referer.split("/")[-2..-1].join("/") if request.referer&.ends_with?("check_answers") - return form.previous_page(current_page) if current_page - end end diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 99e163fc5..6d5cab9b1 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -44,7 +44,6 @@ class CaseLog < ApplicationRecord validates_with CaseLogValidator, ({ page: @page } || {}) before_save :update_status! - attr_accessor :previous_page attr_accessor :page enum status: { "not_started" => 0, "in_progress" => 1, "completed" => 2 } diff --git a/app/views/form/page.html.erb b/app/views/form/page.html.erb index 42c89c2f9..380601d15 100644 --- a/app/views/form/page.html.erb +++ b/app/views/form/page.html.erb @@ -1,7 +1,11 @@ + + <% content_for :before_content do %> - <%= govuk_back_link href: "/case_logs/#{@case_log.id}/#{back_path}" do %> - Back - <% end %> + <%= link_to 'Back', :back, class: "govuk-back-link" %> <% end %> <%= turbo_frame_tag "case_log_form", target: "_top" do %> diff --git a/spec/features/case_log_spec.rb b/spec/features/case_log_spec.rb index a4a81c420..2bea25c98 100644 --- a/spec/features/case_log_spec.rb +++ b/spec/features/case_log_spec.rb @@ -411,7 +411,7 @@ RSpec.describe "Test Features" do expect(case_log.override_net_income_validation).to be_nil end - it "clears the confirmation question if the amount was amended and the page is returned to using the back button" do + it "clears the confirmation question if the amount was amended and the page is returned to using the back button", js: true do visit("/case_logs/#{case_log.id}/net_income") fill_in("case-log-net-income-field", with: income_over_soft_limit) choose("case-log-net-income-frequency-weekly-field", allow_label_click: true) @@ -422,7 +422,7 @@ RSpec.describe "Test Features" do expect(page).not_to have_content("Are you sure this is correct?") end - it "does not clear the confirmation question if the page is returned to using the back button and the amount is still over the soft limit" do + it "does not clear the confirmation question if the page is returned to using the back button and the amount is still over the soft limit", js: true do visit("/case_logs/#{case_log.id}/net_income") fill_in("case-log-net-income-field", with: income_over_soft_limit) choose("case-log-net-income-frequency-weekly-field", allow_label_click: true)