diff --git a/odoo/models.py b/odoo/models.py index a11463dbda9..8150c6b678f 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -3797,6 +3797,11 @@ class BaseModel(metaclass=MetaModel): ir_model_data_unlink = Data ir_attachment_unlink = Attachment + # mark fields that depend on 'self' to recompute them after 'self' has + # been deleted (like updating a sum of lines after deleting one line) + with self.env.protecting(self._fields.values(), self): + self.modified(self._fields, before=True) + for sub_ids in cr.split_for_in_conditions(self.ids): records = self.browse(sub_ids) @@ -3811,11 +3816,6 @@ class BaseModel(metaclass=MetaModel): # Delete the records' properties. ir_property_unlink |= Property.search([('res_id', 'in', refs)]) - # mark fields that depend on 'self' to recompute them after 'self' has - # been deleted (like updating a sum of lines after deleting one line) - with self.env.protecting(self._fields.values(), records): - records.modified(self._fields, before=True) - query = f'DELETE FROM "{self._table}" WHERE id IN %s' cr.execute(query, (sub_ids,))