mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-17 04:34:24 +00:00
Rescue ArgumentError and give user feedback
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -226,6 +226,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
|
||||
|
||||
@@ -524,6 +524,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
|
||||
|
||||
Reference in New Issue
Block a user