Browse Source

Extract collection period check into a before_action and change path to rails route

pull/1044/head
Kat 4 years ago
parent
commit
039e32e1df
  1. 9
      app/controllers/form_controller.rb
  2. 2
      app/helpers/tasklist_helper.rb
  3. 1
      spec/requests/form_controller_spec.rb

9
app/controllers/form_controller.rb

@ -2,6 +2,7 @@ class FormController < ApplicationController
before_action :authenticate_user!
before_action :find_resource, only: %i[submit_form review]
before_action :find_resource_by_named_id, except: %i[submit_form review]
before_action :check_collection_period, only: %i[submit_form show_page]
def submit_form
if @log
@ -50,7 +51,7 @@ class FormController < ApplicationController
page_id = request.path.split("/")[-1].underscore
@page = @log.form.get_page(page_id)
@subsection = @log.form.subsection_for_page(@page)
if @page.routed_to?(@log, current_user) && @log.collection_period_open?
if @page.routed_to?(@log, current_user)
render "form/page"
else
redirect_to lettings_log_path(@log)
@ -176,4 +177,10 @@ private
responses_for_page[question.id].nil? || responses_for_page[question.id].blank?
end
end
def check_collection_period
return unless @log
redirect_to lettings_log_path(@log) unless @log.collection_period_open?
end
end

2
app/helpers/tasklist_helper.rb

@ -39,7 +39,7 @@ module TasklistHelper
def review_log_text(log)
if log.collection_period_open?
"You can #{govuk_link_to 'review and make changes to this log', "/lettings-logs/#{log.id}/review"} until #{(log.form.end_date + 1.day).to_formatted_s(:govuk_date)}.".html_safe
"You can #{govuk_link_to 'review and make changes to this log', review_lettings_log_path(log)} until #{(log.form.end_date + 1.day).to_formatted_s(:govuk_date)}.".html_safe
else
"This log is from the #{log.form.start_date.year}/#{log.form.start_date.year + 1} collection window, which is now closed."
end

1
spec/requests/form_controller_spec.rb

@ -509,6 +509,7 @@ RSpec.describe FormController, type: :request do
before do
completed_lettings_log.update!(ecstat1: 1, earnings: 130, hhmemb: 1) # we're not routing to that page, so it gets cleared?§
allow(completed_lettings_log).to receive(:net_income_soft_validation_triggered?).and_return(true)
allow(completed_lettings_log.form).to receive(:end_date).and_return(Time.zone.today + 1.day)
post "/lettings-logs/#{completed_lettings_log.id}/form", params: interrupt_params, headers: headers.merge({ "HTTP_REFERER" => referrer })
end

Loading…
Cancel
Save