diff --git a/app/components/bulk_upload_summary_component.rb b/app/components/bulk_upload_summary_component.rb index c9776afeb..9380afd41 100644 --- a/app/components/bulk_upload_summary_component.rb +++ b/app/components/bulk_upload_summary_component.rb @@ -53,13 +53,17 @@ class BulkUploadSummaryComponent < ViewComponent::Base def view_error_report_link(bulk_upload) return nil if %w[errors_fixed_in_service logs_uploaded_with_errors logs_uploaded_no_errors wrong_template blank_template].include?(bulk_upload.status.to_s) + return link_to "View error report", send("summary_bulk_upload_#{bulk_upload.log_type}_result_url", bulk_upload), class: "govuk-link" if %w[important_errors].include?(bulk_upload.status.to_s) + link_to "View error report", send("bulk_upload_#{bulk_upload.log_type}_result_path", bulk_upload.id), class: "govuk-link" end def view_logs_link(bulk_upload) return nil if %w[errors_fixed_in_service logs_uploaded_no_errors wrong_template blank_template].include?(bulk_upload.status.to_s) + return nil unless %w[logs_uploaded_with_errors].include?(bulk_upload.status.to_s) + link_to "View logs", send("#{bulk_upload.log_type}_logs_path", bulk_upload_id: [bulk_upload.id]), class: "govuk-link" end end diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index 7d7b418a8..83fd018a2 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -134,7 +134,7 @@ class LettingsLogsController < LogsController def download_bulk_upload bulk_upload = BulkUpload.find(params[:id]) - downloader = BulkUpload::Downloader.new(bulk_upload: bulk_upload) + downloader = BulkUpload::Downloader.new(bulk_upload:) downloader.call send_file downloader.file_path, filename: bulk_upload.filename, type: "text/csv" diff --git a/app/controllers/sales_logs_controller.rb b/app/controllers/sales_logs_controller.rb index dde13fb0a..c2bdebabe 100644 --- a/app/controllers/sales_logs_controller.rb +++ b/app/controllers/sales_logs_controller.rb @@ -104,7 +104,7 @@ class SalesLogsController < LogsController def download_bulk_upload bulk_upload = BulkUpload.find(params[:id]) - downloader = BulkUpload::Downloader.new(bulk_upload: bulk_upload) + downloader = BulkUpload::Downloader.new(bulk_upload:) downloader.call send_file downloader.file_path, filename: bulk_upload.filename, type: "text/csv" diff --git a/app/helpers/bulk_upload_helper.rb b/app/helpers/bulk_upload_helper.rb index 4c2fdcce9..4039c20a1 100644 --- a/app/helpers/bulk_upload_helper.rb +++ b/app/helpers/bulk_upload_helper.rb @@ -9,35 +9,4 @@ module BulkUploadHelper "Bulk uploads" end end - - def bulk_upload_status(bulk_upload) - validator = validator_class(bulk_upload).new(bulk_upload: bulk_upload, path: bulk_upload.file_path) - - if validator.invalid? - "The bulk upload has failed due to validation errors." - elsif validator.any_setup_errors? - "The bulk upload has setup errors." - elsif validator.soft_validation_errors_only? - "The bulk upload has soft validation errors." - elsif bulk_upload.logs.where.not(status_cache: %w[completed]).count.positive? - "The bulk upload has created logs but some are incomplete." - elsif bulk_upload.logs.group(:status_cache).count.keys == %w[completed] - "The bulk upload has successfully completed." - else - "The bulk upload status is unknown." - end - end - -private - - def validator_class(bulk_upload) - case bulk_upload.log_type - when "lettings" - BulkUpload::Lettings::Validator - when "sales" - BulkUpload::Sales::Validator - else - raise "Validator not found for #{bulk_upload.log_type}" - end - end end diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 7c5183b39..03b8db436 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -21,6 +21,7 @@ module FiltersHelper return true if (selected_filters["uploading_organisation"].present? || selected_filters["uploading_organisation_text_search"].present?) && filter == "uploading_organisation_select" && value == :specific_org return false if selected_filters[filter].blank? + selected_filters[filter].include?(value.to_s) end diff --git a/app/models/bulk_upload.rb b/app/models/bulk_upload.rb index cc3d30bfb..ab239fd43 100644 --- a/app/models/bulk_upload.rb +++ b/app/models/bulk_upload.rb @@ -34,7 +34,7 @@ class BulkUpload < ApplicationRecord scope :filter_by_uploaded_by, ->(user_id, _user = nil) { where(user_id:) } scope :filter_by_user_text_search, ->(param, _user = nil) { where(user_id: User.search_by(param).select(:id)) } scope :filter_by_user, ->(user_id, _user = nil) { user_id.present? ? where(user_id:) : all } - scope :filter_by_uploading_organisation , ->(organisation_id, _user = nil) { where(user_id: User.where(organisation_id: organisation_id).select(:id)) } + scope :filter_by_uploading_organisation, ->(organisation_id, _user = nil) { where(user_id: User.where(organisation_id:).select(:id)) } def completed? incomplete_logs = logs.where.not(status: "completed")