From 598d54527a019ad58dbcfd833cfdd4ff8959a675 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Thu, 7 Dec 2017 09:41:28 +0100 Subject: [PATCH] [FIX] base: do not unlink() to remove ir.property records (#21269) Unlinking such a record causes a cache invalidation, that drops the values of other company-dependent fields to set. This may cause other company-dependent fields to be set to their former value. OPW 782080 --- odoo/addons/base/res/ir_property.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/res/ir_property.py b/odoo/addons/base/res/ir_property.py index 73f8aafccad..99b63a95887 100644 --- a/odoo/addons/base/res/ir_property.py +++ b/odoo/addons/base/res/ir_property.py @@ -212,7 +212,11 @@ class Property(models.Model): id = refs.pop(prop.res_id) value = clean(values[id]) if value == default_value: - prop.unlink() + # avoid prop.unlink(), as it clears the record cache that can + # contain the value of other properties to set on record! + prop.check_access_rights('unlink') + prop.check_access_rule('unlink') + self._cr.execute("DELETE FROM ir_property WHERE id=%s", [prop.id]) elif value != clean(prop.get_by_record()): prop.write({'value': value})