diff --git a/app/models/form.rb b/app/models/form.rb index 426f4e21c..bef73eb6e 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -46,7 +46,7 @@ class Form @submission_deadline = Time.zone.local(2023, 6, 9) @unresolved_log_redirect_page_id = form_definition["unresolved_log_redirect_page_id"] end - @edit_end_date = @new_logs_end_date + @edit_end_date = @new_logs_end_date + 2.months # it depends on the year and QA activities, but it would always be later than new logs end date @name = "#{start_date.year}_#{new_logs_end_date.year}_#{type}" end diff --git a/app/models/log.rb b/app/models/log.rb index 583556e1d..f2c67771a 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -97,6 +97,12 @@ class Log < ApplicationRecord form.new_logs_end_date > Time.zone.today end + def collection_period_open_for_editing? + return false if older_than_previous_collection_year? + + form.edit_end_date > Time.zone.today + end + def blank_invalid_non_setup_fields! setup_ids = form.setup_sections.flat_map(&:subsections).flat_map(&:questions).map(&:id) diff --git a/app/views/form/_check_answers_summary_list.html.erb b/app/views/form/_check_answers_summary_list.html.erb index 513438afc..4d1bbd8a4 100644 --- a/app/views/form/_check_answers_summary_list.html.erb +++ b/app/views/form/_check_answers_summary_list.html.erb @@ -25,7 +25,7 @@ <% end %> <% end %> - <% if @log.collection_period_open? %> + <% if @log.collection_period_open_for_editing? %> <% row.action( text: question.action_text(@log), href: action_href(@log, question.page.id, referrer), diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 0f5344435..084d32bec 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -1095,6 +1095,24 @@ RSpec.describe LettingsLogsController, type: :request do expect(page).not_to have_link("Answer") end + context "when the edit end date is in the future" do + before do + Timecop.freeze(2022, 7, 5) + end + + after do + Timecop.return + end + + it "allows you to change the answers for previous collection year logs" do + get "/lettings-logs/#{completed_lettings_log.id}/setup/check-answers", headers: { "Accept" => "text/html" }, params: {} + expect(page).to have_link("Change") + + get "/lettings-logs/#{completed_lettings_log.id}/income-and-benefits/check-answers", headers: { "Accept" => "text/html" }, params: {} + expect(page).to have_link("Change") + end + end + it "does not let the user navigate to questions for previous collection year logs" do get "/lettings-logs/#{completed_lettings_log.id}/needs-type", headers: { "Accept" => "text/html" }, params: {} expect(response).to redirect_to("/lettings-logs/#{completed_lettings_log.id}")