diff --git a/addons/base_import/i18n/base_import.pot b/addons/base_import/i18n/base_import.pot index 8bd249014bc..9569385f43d 100644 --- a/addons/base_import/i18n/base_import.pot +++ b/addons/base_import/i18n/base_import.pot @@ -260,6 +260,13 @@ msgstr "" #: code:addons/base_import/models/base_import.py:0 #, python-format msgid "" +"Error while importing records: Text Delimiter should be a single character." +msgstr "" + +#. module: base_import +#: code:addons/base_import/models/base_import.py:0 +#, python-format +msgid "" "Error while importing records: all rows should be of the same size, but the " "title row has %d entries while the first row has %d. You may need to change " "the separator character." diff --git a/addons/base_import/models/base_import.py b/addons/base_import/models/base_import.py index 48d75aba83a..d4017e97ee3 100644 --- a/addons/base_import/models/base_import.py +++ b/addons/base_import/models/base_import.py @@ -348,6 +348,8 @@ class Import(models.TransientModel): return getattr(self, '_read_' + file_extension)(options) except ValueError as e: raise e + except ImportValidationError as e: + raise e except Exception: _logger.warning("Failed to read file '%s' (transient id %d) using guessed mimetype %s", self.file_name or '', self.id, mimetype) @@ -358,6 +360,8 @@ class Import(models.TransientModel): return getattr(self, '_read_' + file_extension)(options) except ValueError as e: raise e + except ImportValidationError as e: + raise e except Exception: _logger.warning("Failed to read file '%s' (transient id %d) using user-provided mimetype %s", self.file_name or '', self.id, self.file_type) @@ -485,6 +489,9 @@ class Import(models.TransientModel): separator = options['separator'] = candidate break + if not len(options['quoting']) == 1: + raise ImportValidationError(_("Error while importing records: Text Delimiter should be a single character.")) + csv_iterator = pycompat.csv_reader( io.BytesIO(csv_data), quotechar=options['quoting'],