diff --git a/app/views/layouts/_collection_resources.html.erb b/app/views/layouts/_collection_resources.html.erb
index 872e47e13..e2d56e4a5 100644
--- a/app/views/layouts/_collection_resources.html.erb
+++ b/app/views/layouts/_collection_resources.html.erb
@@ -2,89 +2,93 @@
Collection resources
For lettings starting during 1 April 2023 to 31 March 2024 and sales completing during the same period, use the 2023/24 forms.
- Lettings 2023/24
- <%= render DocumentListComponent.new(items: [
- {
- name: "Lettings log for tenants (2023/24)",
- href: download_23_24_lettings_form_path,
- metadata: file_type_size_and_pages("2023_24_lettings_paper_form.pdf", number_of_pages: 8),
- },
- {
- name: "Lettings bulk upload template (2023/24) – New question ordering",
- href: download_23_24_lettings_bulk_upload_template_path,
- metadata: file_type_size_and_pages("bulk-upload-lettings-template-2023-24.xlsx"),
- },
- {
- name: "Lettings bulk upload template (2023/24)",
- href: download_23_24_lettings_bulk_upload_legacy_template_path,
- metadata: file_type_size_and_pages("bulk-upload-lettings-legacy-template-2023-24.xlsx"),
- },
- {
- name: "Lettings bulk upload specification (2023/24)",
- href: download_23_24_lettings_bulk_upload_specification_path,
- metadata: file_type_size_and_pages("bulk-upload-lettings-specification-2023-24.xlsx"),
- },
- ]) %>
+ <% if FormHandler.instance.lettings_form_for_start_year(2023) && FormHandler.instance.lettings_form_for_start_year(2023).edit_end_date > Time.zone.today %>
+ Lettings 2023/24
+ <%= render DocumentListComponent.new(items: [
+ {
+ name: "Lettings log for tenants (2023/24)",
+ href: download_23_24_lettings_form_path,
+ metadata: file_type_size_and_pages("2023_24_lettings_paper_form.pdf", number_of_pages: 8),
+ },
+ {
+ name: "Lettings bulk upload template (2023/24) – New question ordering",
+ href: download_23_24_lettings_bulk_upload_template_path,
+ metadata: file_type_size_and_pages("bulk-upload-lettings-template-2023-24.xlsx"),
+ },
+ {
+ name: "Lettings bulk upload template (2023/24)",
+ href: download_23_24_lettings_bulk_upload_legacy_template_path,
+ metadata: file_type_size_and_pages("bulk-upload-lettings-legacy-template-2023-24.xlsx"),
+ },
+ {
+ name: "Lettings bulk upload specification (2023/24)",
+ href: download_23_24_lettings_bulk_upload_specification_path,
+ metadata: file_type_size_and_pages("bulk-upload-lettings-specification-2023-24.xlsx"),
+ },
+ ]) %>
- Sales 2023/24
- <%= render DocumentListComponent.new(items: [
- {
- name: "Sales log for buyers (2023/24)",
- href: download_23_24_sales_form_path,
- metadata: file_type_size_and_pages("2023_24_sales_paper_form.pdf", number_of_pages: 8),
- },
- {
- name: "Sales bulk upload template (2023/24) – New question ordering",
- href: download_23_24_sales_bulk_upload_template_path,
- metadata: file_type_size_and_pages("bulk-upload-sales-template-2023-24.xlsx"),
- },
- {
- name: "Sales bulk upload template (2023/24)",
- href: download_23_24_sales_bulk_upload_legacy_template_path,
- metadata: file_type_size_and_pages("bulk-upload-sales-legacy-template-2023-24.xlsx"),
- },
- {
- name: "Sales bulk upload specification (2023/24)",
- href: download_23_24_sales_bulk_upload_specification_path,
- metadata: file_type_size_and_pages("bulk-upload-sales-specification-2023-24.xlsx"),
- },
- ]) %>
+ Sales 2023/24
+ <%= render DocumentListComponent.new(items: [
+ {
+ name: "Sales log for buyers (2023/24)",
+ href: download_23_24_sales_form_path,
+ metadata: file_type_size_and_pages("2023_24_sales_paper_form.pdf", number_of_pages: 8),
+ },
+ {
+ name: "Sales bulk upload template (2023/24) – New question ordering",
+ href: download_23_24_sales_bulk_upload_template_path,
+ metadata: file_type_size_and_pages("bulk-upload-sales-template-2023-24.xlsx"),
+ },
+ {
+ name: "Sales bulk upload template (2023/24)",
+ href: download_23_24_sales_bulk_upload_legacy_template_path,
+ metadata: file_type_size_and_pages("bulk-upload-sales-legacy-template-2023-24.xlsx"),
+ },
+ {
+ name: "Sales bulk upload specification (2023/24)",
+ href: download_23_24_sales_bulk_upload_specification_path,
+ metadata: file_type_size_and_pages("bulk-upload-sales-specification-2023-24.xlsx"),
+ },
+ ]) %>
+ <% end %>
- Lettings 2022/23
- <%= render DocumentListComponent.new(items: [
- {
- name: "Lettings log for tenants (2022/23)",
- href: download_22_23_lettings_form_path,
- metadata: file_type_size_and_pages("2022_23_lettings_paper_form.pdf", number_of_pages: 4),
- },
- {
- name: "Lettings bulk upload template (2022/23)",
- href: download_22_23_lettings_bulk_upload_template_path,
- metadata: file_type_size_and_pages("bulk-upload-lettings-template-2022-23.xlsx"),
- },
- {
- name: "Lettings bulk upload specification (2022/23)",
- href: download_22_23_lettings_bulk_upload_specification_path,
- metadata: file_type_size_and_pages("bulk-upload-lettings-specification-2022-23.xlsx"),
- },
- ]) %>
+ <% if FormHandler.instance.lettings_form_for_start_year(2022) && FormHandler.instance.lettings_form_for_start_year(2022).edit_end_date > Time.zone.today %>
+ Lettings 2022/23
+ <%= render DocumentListComponent.new(items: [
+ {
+ name: "Lettings log for tenants (2022/23)",
+ href: download_22_23_lettings_form_path,
+ metadata: file_type_size_and_pages("2022_23_lettings_paper_form.pdf", number_of_pages: 4),
+ },
+ {
+ name: "Lettings bulk upload template (2022/23)",
+ href: download_22_23_lettings_bulk_upload_template_path,
+ metadata: file_type_size_and_pages("bulk-upload-lettings-template-2022-23.xlsx"),
+ },
+ {
+ name: "Lettings bulk upload specification (2022/23)",
+ href: download_22_23_lettings_bulk_upload_specification_path,
+ metadata: file_type_size_and_pages("bulk-upload-lettings-specification-2022-23.xlsx"),
+ },
+ ]) %>
- Sales 2022/23
- <%= render DocumentListComponent.new(items: [
- {
- name: "Sales log for buyers (2022/23)",
- href: download_22_23_sales_form_path,
- metadata: file_type_size_and_pages("2022_23_sales_paper_form.pdf", number_of_pages: 5),
- },
- {
- name: "Sales bulk upload template (2022/23)",
- href: download_22_23_sales_bulk_upload_template_path,
- metadata: file_type_size_and_pages("bulk-upload-sales-template-2022-23.xlsx"),
- },
- {
- name: "Sales bulk upload specification (2022/23)",
- href: download_22_23_sales_bulk_upload_specification_path,
- metadata: file_type_size_and_pages("bulk-upload-sales-template-2022-23.xlsx"),
- },
- ]) %>
+ Sales 2022/23
+ <%= render DocumentListComponent.new(items: [
+ {
+ name: "Sales log for buyers (2022/23)",
+ href: download_22_23_sales_form_path,
+ metadata: file_type_size_and_pages("2022_23_sales_paper_form.pdf", number_of_pages: 5),
+ },
+ {
+ name: "Sales bulk upload template (2022/23)",
+ href: download_22_23_sales_bulk_upload_template_path,
+ metadata: file_type_size_and_pages("bulk-upload-sales-template-2022-23.xlsx"),
+ },
+ {
+ name: "Sales bulk upload specification (2022/23)",
+ href: download_22_23_sales_bulk_upload_specification_path,
+ metadata: file_type_size_and_pages("bulk-upload-sales-template-2022-23.xlsx"),
+ },
+ ]) %>
+ <% end %>
diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb
index a3d5ac41e..7d1f95c52 100644
--- a/spec/requests/organisations_controller_spec.rb
+++ b/spec/requests/organisations_controller_spec.rb
@@ -175,7 +175,9 @@ RSpec.describe OrganisationsController, type: :request do
describe "#show" do
context "with an organisation that the user belongs to" do
+ let(:set_time) {}
before do
+ set_time
sign_in user
get "/organisations/#{organisation.id}", headers:, params: {}
end
@@ -183,6 +185,42 @@ RSpec.describe OrganisationsController, type: :request do
it "redirects to details" do
expect(response).to have_http_status(:redirect)
end
+
+ context "and 2022 collection window is open" do
+ let(:set_time) { allow(Time).to receive(:now).and_return(Time.zone.local(2023, 1, 1)) }
+
+ it "displays correct resources for 2022/23 and 2023/24 collection years" do
+ follow_redirect!
+ expect(page).to have_content("Lettings 2023/24")
+ expect(page).to have_content("Sales 2023/24")
+ expect(page).to have_content("Lettings 2022/23")
+ expect(page).to have_content("Sales 2022/23")
+ end
+ end
+
+ context "and 2022 collection window is closed for editing" do
+ let(:set_time) { allow(Time).to receive(:now).and_return(Time.zone.local(2024, 1, 1)) }
+
+ it "displays correct resources for 2022/23 and 2023/24 collection years" do
+ follow_redirect!
+ expect(page).to have_content("Lettings 2023/24")
+ expect(page).to have_content("Sales 2023/24")
+ expect(page).not_to have_content("Lettings 2022/23")
+ expect(page).not_to have_content("Sales 2022/23")
+ end
+ end
+
+ context "and 2023 collection window is closed for editing" do
+ let(:set_time) { allow(Time).to receive(:now).and_return(Time.zone.local(2025, 1, 1)) }
+
+ it "displays correct resources for 2022/23 and 2023/24 collection years" do
+ follow_redirect!
+ expect(page).not_to have_content("Lettings 2023/24")
+ expect(page).not_to have_content("Sales 2023/24")
+ expect(page).not_to have_content("Lettings 2022/23")
+ expect(page).not_to have_content("Sales 2022/23")
+ end
+ end
end
context "with an organisation that are not in scope for the user, i.e. that they do not belong to" do