From 91e4b00b8bf4587ffb41f3d48efeafb5ffd99dba Mon Sep 17 00:00:00 2001 From: fw-bot Date: Wed, 9 Oct 2019 10:11:44 +0000 Subject: [PATCH] [FIX] base_sparse_field,mail: handle None _instanciate_attrs override MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The parent was expected to return a dict, but it can also return None in some cases. When that happens, the overrides were crashing because it is impossible to assign a key/val to None. Note that using `if` conditions like this also prevents from writing on the dict if it is existing but empty, but due to the definition of the parent, if there is a dict, it will not be empty. closes odoo/odoo#38316 X-original-commit: 3525fad3b1729286d139b19a4a92f1821d94ad88 Signed-off-by: Sébastien Theys (seb) --- addons/base_sparse_field/models/models.py | 2 +- addons/mail/models/ir_model_fields.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/base_sparse_field/models/models.py b/addons/base_sparse_field/models/models.py index c47d17eb5a5..cc886e808d8 100644 --- a/addons/base_sparse_field/models/models.py +++ b/addons/base_sparse_field/models/models.py @@ -57,7 +57,7 @@ class IrModelFields(models.Model): def _instanciate_attrs(self, field_data): attrs = super(IrModelFields, self)._instanciate_attrs(field_data) - if field_data.get('serialization_field_id'): + if attrs and field_data.get('serialization_field_id'): serialization_record = self.browse(field_data['serialization_field_id']) attrs['sparse'] = serialization_record.name return attrs diff --git a/addons/mail/models/ir_model_fields.py b/addons/mail/models/ir_model_fields.py index f7ace4f9509..bf9ff3e2de2 100644 --- a/addons/mail/models/ir_model_fields.py +++ b/addons/mail/models/ir_model_fields.py @@ -27,7 +27,7 @@ class IrModelField(models.Model): def _instanciate_attrs(self, field_data): attrs = super(IrModelField, self)._instanciate_attrs(field_data) - if field_data.get('tracking'): + if attrs and field_data.get('tracking'): attrs['tracking'] = field_data['tracking'] return attrs