Browse Source

Display additional resources on the homepage

pull/2690/head
Kat 2 years ago
parent
commit
d5a3fad39d
  1. 6
      app/controllers/collection_resources_controller.rb
  2. 2
      app/controllers/start_controller.rb
  3. 4
      app/views/layouts/_collection_resources.html.erb
  4. 2
      spec/requests/start_controller_spec.rb

6
app/controllers/collection_resources_controller.rb

@ -100,12 +100,12 @@ class CollectionResourcesController < ApplicationController
return render_not_found unless resource_for_year_can_be_updated?(@collection_resource.year) return render_not_found unless resource_for_year_can_be_updated?(@collection_resource.year)
@collection_resource.file = resource_params[:file] @collection_resource.file = resource_params[:file]
@collection_resource.short_display_name = resource_params[:short_display_name]
@collection_resource.download_filename = @collection_resource.file&.original_filename
@collection_resource.display_name = "#{@collection_resource.log_type} #{@collection_resource.short_display_name} (#{text_year_range_format(@collection_resource.year)})"
@collection_resource.validate_attached_file @collection_resource.validate_attached_file
return render "collection_resources/edit" if @collection_resource.errors.any? return render "collection_resources/edit" if @collection_resource.errors.any?
@collection_resource.short_display_name = resource_params[:short_display_name]
@collection_resource.download_filename = @collection_resource.file&.original_filename
@collection_resource.display_name = "#{@collection_resource.log_type} #{@collection_resource.short_display_name} (#{text_year_range_format(@collection_resource.year)})"
if @collection_resource.save if @collection_resource.save
begin begin
CollectionResourcesService.new.upload_collection_resource(@collection_resource.download_filename, @collection_resource.file) CollectionResourcesService.new.upload_collection_resource(@collection_resource.download_filename, @collection_resource.file)

2
app/controllers/start_controller.rb

@ -4,6 +4,8 @@ class StartController < ApplicationController
def index def index
@mandatory_lettings_collection_resources_per_year = MandatoryCollectionResourcesService.generate_resources("lettings", displayed_collection_resource_years) @mandatory_lettings_collection_resources_per_year = MandatoryCollectionResourcesService.generate_resources("lettings", displayed_collection_resource_years)
@mandatory_sales_collection_resources_per_year = MandatoryCollectionResourcesService.generate_resources("sales", displayed_collection_resource_years) @mandatory_sales_collection_resources_per_year = MandatoryCollectionResourcesService.generate_resources("sales", displayed_collection_resource_years)
@additional_lettings_collection_resources_per_year = CollectionResource.where(log_type: "lettings", mandatory: false, year: displayed_collection_resource_years).group_by(&:year)
@additional_sales_collection_resources_per_year = CollectionResource.where(log_type: "sales", mandatory: false, year: displayed_collection_resource_years).group_by(&:year)
if current_user if current_user
@homepage_presenter = HomepagePresenter.new(current_user) @homepage_presenter = HomepagePresenter.new(current_user)
render "home/index" render "home/index"

4
app/views/layouts/_collection_resources.html.erb

@ -12,12 +12,12 @@
<%= govuk_tabs(title: "Collection resources", classes: %w[app-tab__small-headers]) do |c| %> <%= govuk_tabs(title: "Collection resources", classes: %w[app-tab__small-headers]) do |c| %>
<% @mandatory_lettings_collection_resources_per_year.each do |year, resources| %> <% @mandatory_lettings_collection_resources_per_year.each do |year, resources| %>
<% c.with_tab(label: "Lettings #{year_range_format(year)}") do %> <% c.with_tab(label: "Lettings #{year_range_format(year)}") do %>
<%= render DocumentListComponent.new(items: document_list_component_items(resources), label: "Lettings #{text_year_range_format(year)}") %> <%= render DocumentListComponent.new(items: document_list_component_items(resources.concat(@additional_lettings_collection_resources_per_year[year] || [])), label: "Lettings #{text_year_range_format(year)}") %>
<% end %> <% end %>
<% end %> <% end %>
<% @mandatory_sales_collection_resources_per_year.each do |year, resources| %> <% @mandatory_sales_collection_resources_per_year.each do |year, resources| %>
<% c.with_tab(label: "Sales #{year_range_format(year)}") do %> <% c.with_tab(label: "Sales #{year_range_format(year)}") do %>
<%= render DocumentListComponent.new(items: document_list_component_items(resources), label: "Sales #{text_year_range_format(year)}") %> <%= render DocumentListComponent.new(items: document_list_component_items(resources.concat(@additional_sales_collection_resources_per_year[year] || [])), label: "Sales #{text_year_range_format(year)}") %>
<% end %> <% end %>
<% end %> <% end %>
<% end %> <% end %>

2
spec/requests/start_controller_spec.rb

@ -324,6 +324,7 @@ RSpec.describe StartController, type: :request do
context "and 2023 collection window is open for editing" do context "and 2023 collection window is open for editing" do
before do before do
create(:collection_resource, :additional, year: 2023, log_type: "sales", display_name: "sales additional resource (2023 to 2024)")
allow(Time).to receive(:now).and_return(Time.zone.local(2024, 4, 1)) allow(Time).to receive(:now).and_return(Time.zone.local(2024, 4, 1))
end end
@ -337,6 +338,7 @@ RSpec.describe StartController, type: :request do
expect(page).to have_content("Sales 23/24") expect(page).to have_content("Sales 23/24")
expect(page).to have_content("Sales 2024 to 2025") expect(page).to have_content("Sales 2024 to 2025")
expect(page).to have_content("Sales 2023 to 2024") expect(page).to have_content("Sales 2023 to 2024")
expect(page).to have_content("Download the sales additional resource (2023 to 2024)")
end end
end end

Loading…
Cancel
Save