diff --git a/app/components/bulk_upload_summary_component.rb b/app/components/bulk_upload_summary_component.rb index d0d8af0fa..6cd5258c7 100644 --- a/app/components/bulk_upload_summary_component.rb +++ b/app/components/bulk_upload_summary_component.rb @@ -8,7 +8,7 @@ class BulkUploadSummaryComponent < ViewComponent::Base end def upload_status - helpers.status_tag("in_progress") + helpers.status_tag(bulk_upload.status, ["app-tag--small govuk-!-font-weight-regular no-max-width"]) end def setup_errors_count diff --git a/app/frontend/styles/_tag.scss b/app/frontend/styles/_tag.scss index dc6c366fa..20a5d51c5 100644 --- a/app/frontend/styles/_tag.scss +++ b/app/frontend/styles/_tag.scss @@ -5,3 +5,7 @@ padding-bottom: 2px; padding-left: 6px; } + +.no-max-width { + max-width: none; +} diff --git a/app/helpers/tag_helper.rb b/app/helpers/tag_helper.rb index 3c2e332f6..bc0d8e06b 100644 --- a/app/helpers/tag_helper.rb +++ b/app/helpers/tag_helper.rb @@ -19,6 +19,14 @@ module TagHelper request_merged: "Merged", ready_to_merge: "Ready to merge", processing: "Processing", + blank_template: "Blank template", + wrong_template: "Wrong template used", + important_errors: "Errors on important questions in CSV", + critical_errors: "Critical errors in CSV", + potential_errors: "Potential errors in CSV", + logs_uploaded_with_errors: "Logs uploaded with errors", + errors_fixed_in_service: "Errors fixed on site", + logs_uploaded_no_errors: "Logs uploaded with no errors", }.freeze COLOUR = { @@ -39,6 +47,14 @@ module TagHelper request_merged: "green", ready_to_merge: "blue", processing: "yellow", + blank_template: "red", + wrong_template: "red", + important_errors: "red", + critical_errors: "red", + potential_errors: "red", + logs_uploaded_with_errors: "blue", + errors_fixed_in_service: "green", + logs_uploaded_no_errors: "green", }.freeze def status_tag(status, classes = []) diff --git a/app/models/bulk_upload.rb b/app/models/bulk_upload.rb index 006f101f9..fba146e48 100644 --- a/app/models/bulk_upload.rb +++ b/app/models/bulk_upload.rb @@ -2,6 +2,17 @@ class BulkUpload < ApplicationRecord enum log_type: { lettings: "lettings", sales: "sales" } enum rent_type_fix_status: { not_applied: "not_applied", applied: "applied", not_needed: "not_needed" } + enum status: { + blank_template: 0, + wrong_template: 1, + important_errors: 2, + critical_errors: 3, + potential_errors: 4, + logs_uploaded_with_errors: 5, + errors_fixed_in_service: 6, + logs_uploaded_no_errors: 7, + } + belongs_to :user has_many :bulk_upload_errors, dependent: :destroy @@ -39,6 +50,24 @@ class BulkUpload < ApplicationRecord !incomplete_logs.exists? end + def status + return :logs_uploaded_no_errors if bulk_upload_errors.none? + + if logs.exists? + return :errors_fixed_in_service if completed? && bulk_upload_errors.any? + return :logs_uploaded_with_errors if bulk_upload_errors.any? + end + + case bulk_upload_errors.map(&:category).uniq + when ["setup"] + :important_errors + when ["soft_validations"] + :potential_errors + else + :critical_errors + end + end + def year_combo "#{year}/#{year - 2000 + 1}" end