diff --git a/app/models/form.rb b/app/models/form.rb index 8f9dc47f9..af4c955f2 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -88,6 +88,17 @@ class Form end end + def previous_page_redirect_path(page, log, current_user) + page_ids = subsection_for_page(page).pages.map(&:id) + page_index = page_ids.index(page.id) + previous_page = previous_page(page_ids, page_index, log, current_user) + if previous_page == :check_answers + "#{type}_log_#{subsection_for_page(page).id}_check_answers_path" + else + "#{type}_log_#{previous_page}_path" + end + end + def cancel_path(page, log) "#{log.class.name.underscore}_#{page.subsection.id}_check_answers_path" end diff --git a/app/views/form/page.html.erb b/app/views/form/page.html.erb index 98b3338b0..7b8e89a83 100644 --- a/app/views/form/page.html.erb +++ b/app/views/form/page.html.erb @@ -1,7 +1,7 @@ <% content_for :title, @page.header.presence || @page.questions.first.header.html_safe %> <% content_for :before_content do %> - <%= govuk_back_link(href: :back) %> + <%= govuk_back_link(href: send(@log.form.previous_page_redirect_path(@page, @log, current_user), @log)) %> <% end %>