From 1ec6c069aa51f1bb2d385f55fae56fc117c67f44 Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Thu, 20 Sep 2018 11:49:30 +0200 Subject: [PATCH] [FIX] base: Traceback when uploading a file with no ASCII name When trying to upload a file with no ASCII name, it raised a traceback saying: "UnicodeEncodeError: 'ascii' codec can't encode character ..." opw:1886602 --- odoo/addons/base/i18n/base.pot | 6 ++++++ odoo/fields.py | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index 616e3859b8a..083ef4a5adc 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -4821,6 +4821,12 @@ msgstr "" msgid "A9 13 37 x 52 mm" msgstr "" +#. module: base +#: code:addons/fields.py:1687 +#, python-format +msgid "ASCII characters are required for %s in %s" +msgstr "" + #. module: base #: model:ir.model.fields,field_description:base.field_res_partner_title__shortcut msgid "Abbreviation" diff --git a/odoo/fields.py b/odoo/fields.py index 3f7b734796d..39fe7825e30 100644 --- a/odoo/fields.py +++ b/odoo/fields.py @@ -1681,7 +1681,10 @@ class Binary(Field): return None if isinstance(value, bytes): return psycopg2.Binary(value) - return psycopg2.Binary(pycompat.text_type(value).encode('ascii')) + try: + return psycopg2.Binary(pycompat.text_type(value).encode('ascii')) + except UnicodeEncodeError: + raise UserError(_("ASCII characters are required for %s in %s") % (value, self.name)) def convert_to_cache(self, value, record, validate=True): if isinstance(value, _BINARY):