From 4ffe8edb262a2ea7c72f99cb8e2dcd53ba5873d4 Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 23 Jun 2023 10:53:52 +0100 Subject: [PATCH] Do not display resources for a closed collection year --- .../layouts/_collection_resources.html.erb | 168 +++++++++--------- .../requests/organisations_controller_spec.rb | 38 ++++ 2 files changed, 124 insertions(+), 82 deletions(-) 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