Merge pull request #2988 from Matt-Yorkley/pi/utf8

Pi/utf8
This commit is contained in:
Maikel
2019-01-09 15:39:05 +11:00
committed by GitHub
3 changed files with 17 additions and 4 deletions

View File

@@ -16,8 +16,7 @@ module Admin
@original_filename = params[:file].try(:original_filename)
@non_updatable_fields = ProductImport::EntryValidator.non_updatable_fields
check_file_errors @importer
check_spreadsheet_has_data @importer
return if contains_errors? @importer
@ams_data = ams_data
end
@@ -63,15 +62,19 @@ module Admin
true
end
def check_file_errors(importer)
def contains_errors?(importer)
if importer.errors.present?
redirect_to '/admin/product_import', notice: @importer.errors.full_messages.to_sentence
return true
end
check_spreadsheet_has_data importer
end
def check_spreadsheet_has_data(importer)
unless importer.item_count
redirect_to '/admin/product_import', notice: I18n.t(:product_import_no_data_in_spreadsheet_notice)
true
end
end

View File

@@ -206,7 +206,7 @@ module ProductImport
def open_spreadsheet
if accepted_mimetype
Roo::Spreadsheet.open(@file, extension: accepted_mimetype)
Roo::Spreadsheet.open(@file, extension: accepted_mimetype, encoding: Encoding::UTF_8)
else
errors.add(:importer, I18n.t(:product_importer_spreadsheet_error))
delete_uploaded_file
@@ -227,6 +227,14 @@ module ProductImport
(2..@sheet.last_row).map do |i|
@sheet.row(i)
end
rescue ArgumentError => e
if e.message.include? 'invalid byte sequence'
errors.add(:importer, I18n.t('admin.product_import.model.encoding_error'))
else
errors.add(:importer, I18n.t('admin.product_import.model.unexpected_error',
error_message: e.message))
end
[]
end
def build_entries_in_range

View File

@@ -530,6 +530,8 @@ en:
inventory_no_permission: you do not have permission to create inventory for this producer
none_saved: did not save any products successfully
line_number: "Line %{number}:"
encoding_error: "Please check the language setting of your source file and ensure it is saved with UTF-8 encoding"
unexpected_error: "Product Import encountered an unexpected error whilst opening the file: %{error_message}"
index:
select_file: Select a spreadsheet to upload
spreadsheet: Spreadsheet