summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/models/test_new_api.py
diff options
context:
space:
mode:
authorsvs-odoo <svs@odoo.com>2020-12-28 15:45:41 +0000
committersvs-odoo <svs@odoo.com>2021-01-04 09:59:50 +0000
commitcf2b0a505c117a50a91fa022bc1d6bf1eb6d9f77 (patch)
treeb0b7f0fa2798fb2006c3cafc3dc1ab5261e5fc45 /odoo/addons/test_new_api/models/test_new_api.py
parent1b10d4e9240a1d4892143284e806ba8ab8281c9d (diff)
[FIX] core: avoid duplicate onchanges
When performing the onchange for the first time on a new record, if a field has a default value, it could be two times in the `todo` field list to compute. closes odoo/odoo#63983 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Diffstat (limited to 'odoo/addons/test_new_api/models/test_new_api.py')
-rw-r--r--odoo/addons/test_new_api/models/test_new_api.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/models/test_new_api.py b/odoo/addons/test_new_api/models/test_new_api.py
index bfe9b2fcee9..0f40589636c 100644
--- a/odoo/addons/test_new_api/models/test_new_api.py
+++ b/odoo/addons/test_new_api/models/test_new_api.py
@@ -553,6 +553,7 @@ class ComputeOnchange(models.Model):
foo = fields.Char()
bar = fields.Char(compute='_compute_bar', store=True)
baz = fields.Char(compute='_compute_baz', store=True, readonly=False)
+ count = fields.Integer(default=0)
line_ids = fields.One2many(
'test_new_api.compute.onchange.line', 'record_id',
compute='_compute_line_ids', store=True, readonly=False
@@ -562,6 +563,10 @@ class ComputeOnchange(models.Model):
compute='_compute_tag_ids', store=True, readonly=False,
)
+ @api.onchange('foo')
+ def _onchange_foo(self):
+ self.count += 1
+
@api.depends('foo')
def _compute_bar(self):
for record in self: