From ac44685b71dfb03eddb54524b46f3ebdbc425e3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Voet=20=28ryv=29?= Date: Tue, 9 Nov 2021 13:13:06 +0000 Subject: [PATCH] [IMP] core: two small optimizations The method BaseModel.update does not batch records for no reason. This method is used in `_onchange_eval` and in few onchange in Odoo. In _modified_triggers() avoid a useless record union. Part-of: odoo/odoo#79563 --- odoo/models.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/odoo/models.py b/odoo/models.py index ba8c98d8a81..32d4fed2829 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -5693,9 +5693,8 @@ Fields: def update(self, values): """ Update the records in ``self`` with ``values``. """ - for record in self: - for name, value in values.items(): - record[name] = value + for name, value in values.items(): + self[name] = value @api.model def flush(self, fnames=None, records=None): @@ -6160,7 +6159,7 @@ Fields: real_records = self - new_records records = model.browse() if real_records: - records |= model.search([(key.name, 'in', real_records.ids)], order='id') + records = model.search([(key.name, 'in', real_records.ids)], order='id') if new_records: cache_records = self.env.cache.get_records(model, key) records |= cache_records.filtered(lambda r: set(r[key.name]._ids) & set(self._ids))