diff --git a/app/services/bulk_upload/processor.rb b/app/services/bulk_upload/processor.rb index 83a8d1ca0..4a87ffcc1 100644 --- a/app/services/bulk_upload/processor.rb +++ b/app/services/bulk_upload/processor.rb @@ -3,12 +3,12 @@ class BulkUpload::Processor BLANK_TEMPLATE_ERRORS = [ I18n.t("activemodel.errors.models.bulk_upload/lettings/validator.attributes.base.blank_file"), - I18n.t("activemodel.errors.models.bulk_upload/sales/validator.attributes.base.blank_file"), + I18n.t("validations.sales.2024.bulk_upload.blank_file"), ].freeze WRONG_TEMPLATE_ERRORS = [ *I18n.t("activemodel.errors.models.bulk_upload/lettings/validator.attributes.base", default: {}).values, - *I18n.t("activemodel.errors.models.bulk_upload/sales/validator.attributes.base", default: {}).values, + *I18n.t("validations.sales.2024", default: {}).values, ].freeze def initialize(bulk_upload:) diff --git a/app/services/bulk_upload/sales/validator.rb b/app/services/bulk_upload/sales/validator.rb index a473a6461..070732a87 100644 --- a/app/services/bulk_upload/sales/validator.rb +++ b/app/services/bulk_upload/sales/validator.rb @@ -153,7 +153,7 @@ private def validate_file_not_empty if File.size(path).zero? || csv_parser.body_rows.flatten.compact.empty? - errors.add(:base, :blank_file) + errors.add(:base, I18n.t("validations.sales.#{@bulk_upload.year}.bulk_upload.blank_file")) halt_validations! end @@ -164,20 +164,20 @@ private column_count = rows.map(&:size).max - errors.add(:base, :over_max_column_count) if column_count > csv_parser.class::MAX_COLUMNS + errors.add(:base, I18n.t("validations.sales.#{@bulk_upload.year}.bulk_upload.over_max_column_count")) if column_count > csv_parser.class::MAX_COLUMNS end def validate_correct_template return if halt_validations? - errors.add(:base, :wrong_template) if csv_parser.wrong_template_for_year? + errors.add(:base, I18n.t("validations.sales.#{@bulk_upload.year}.bulk_upload.wrong_template")) if csv_parser.wrong_template_for_year? end def validate_missing_required_headers return if halt_validations? if csv_parser.missing_required_headers? - errors.add :base, I18n.t("activemodel.errors.models.bulk_upload/sales/validator.attributes.base.no_headers", guidance_link: bulk_upload_sales_log_url(id: "guidance", form: { year: bulk_upload.year }, host: ENV["APP_HOST"], anchor: "using-the-bulk-upload-template")) + errors.add :base, I18n.t("validations.sales.#{@bulk_upload.year}.bulk_upload.no_headers", guidance_link: bulk_upload_sales_log_url(id: "guidance", form: { year: bulk_upload.year }, host: ENV["APP_HOST"], anchor: "using-the-bulk-upload-template")) end end @@ -185,7 +185,7 @@ private return if halt_validations? unless csv_parser.correct_field_count? - errors.add(:base, :wrong_field_numbers_count) + errors.add(:base, I18n.t("validations.sales.#{@bulk_upload.year}.bulk_upload.wrong_field_numbers_count")) halt_validations! end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 7ed8f42e8..c88b176f9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -69,14 +69,6 @@ en: over_max_column_count: "Too many columns, please ensure you have used the correct template." wrong_template: "Incorrect start dates, please ensure you have used the correct template." no_headers: "Your file does not contain the required header rows. Add or check the header rows and upload your file again. [Read more about using the template headers](%{guidance_link})." - bulk_upload/sales/validator: - attributes: - base: - blank_file: "Template is blank - The template must be filled in for us to create the logs and check if data is correct." - wrong_field_numbers_count: "Incorrect number of fields, please ensure you have used the correct template." - over_max_column_count: "Too many columns, please ensure you have used the correct template." - wrong_template: "Incorrect sale dates, please ensure you have used the correct template." - no_headers: "Your file does not contain the required header rows. Add or check the header rows and upload your file again. [Read more about using the template headers](%{guidance_link})." forms/bulk_upload_lettings/year: attributes: year: diff --git a/config/locales/validations/sales/2023/bulk_upload.en.yml b/config/locales/validations/sales/2023/bulk_upload.en.yml index 63d835f4f..37d5314b7 100644 --- a/config/locales/validations/sales/2023/bulk_upload.en.yml +++ b/config/locales/validations/sales/2023/bulk_upload.en.yml @@ -3,6 +3,11 @@ en: sales: 2023: bulk_upload: + blank_file: "Template is blank - The template must be filled in for us to create the logs and check if data is correct." + over_max_column_count: "Too many columns, please ensure you have used the correct template." + no_headers: "Your file does not contain the required header rows. Add or check the header rows and upload your file again. [Read more about using the template headers](%{guidance_link})." + wrong_field_numbers_count: "Incorrect number of fields, please ensure you have used the correct template." + wrong_template: "Incorrect sale dates, please ensure you have used the correct template." not_answered: "You must answer %{question}" # this is the same as not default not answered for single log submission invalid_option: "Enter a valid value for %{question}" # this is the same as not default not answered for single log submission spreadsheet_dupe: "This is a duplicate of a log in your file." diff --git a/config/locales/validations/sales/2024/bulk_upload.en.yml b/config/locales/validations/sales/2024/bulk_upload.en.yml index b153f8b4a..fe670190b 100644 --- a/config/locales/validations/sales/2024/bulk_upload.en.yml +++ b/config/locales/validations/sales/2024/bulk_upload.en.yml @@ -3,6 +3,11 @@ en: sales: 2024: bulk_upload: + blank_file: "Template is blank - The template must be filled in for us to create the logs and check if data is correct." + over_max_column_count: "Too many columns, please ensure you have used the correct template." + no_headers: "Your file does not contain the required header rows. Add or check the header rows and upload your file again. [Read more about using the template headers](%{guidance_link})." + wrong_field_numbers_count: "Incorrect number of fields, please ensure you have used the correct template." + wrong_template: "Incorrect sale dates, please ensure you have used the correct template." not_answered: "You must answer %{question}" # this is the same as not default not answered for single log submission invalid_option: "Enter a valid value for %{question}" # this is the same as not default not answered for single log submission spreadsheet_dupe: "This is a duplicate of a log in your file." diff --git a/spec/services/bulk_upload/sales/validator_spec.rb b/spec/services/bulk_upload/sales/validator_spec.rb index d196126c9..149354bf1 100644 --- a/spec/services/bulk_upload/sales/validator_spec.rb +++ b/spec/services/bulk_upload/sales/validator_spec.rb @@ -15,7 +15,7 @@ RSpec.describe BulkUpload::Sales::Validator do context "when file is empty" do it "is not valid" do expect(validator).not_to be_valid - expect(validator.errors["base"]).to eql(["Template is blank - The template must be filled in for us to create the logs and check if data is correct."]) + expect(validator.errors["base"]).to eql([I18n.t("validations.sales.2024.bulk_upload.blank_file")]) end end @@ -27,7 +27,7 @@ RSpec.describe BulkUpload::Sales::Validator do it "is not valid" do expect(validator).not_to be_valid - expect(validator.errors["base"]).to eql(["Template is blank - The template must be filled in for us to create the logs and check if data is correct."]) + expect(validator.errors["base"]).to eql([I18n.t("validations.sales.2024.bulk_upload.blank_file")]) end end @@ -54,7 +54,7 @@ RSpec.describe BulkUpload::Sales::Validator do it "is not valid" do expect(validator).not_to be_valid - expect(validator.errors["base"]).to eql(["Incorrect sale dates, please ensure you have used the correct template."]) + expect(validator.errors["base"]).to eql([I18n.t("validations.sales.2024.bulk_upload.wrong_template")]) end end