summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/tests/test_onchange.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2019-10-28 14:59:27 +0000
committerRaphael Collet <rco@odoo.com>2020-08-20 13:39:04 +0000
commit3e91fa1dbf9056f1557ff7a747ba3407e851b18e (patch)
tree83026623a533cedb334a35c0b128b7bede175622 /odoo/addons/test_new_api/tests/test_onchange.py
parent38b7462dcf7541bbcb51ac75cc1f7b6715f13ace (diff)
[FIX] core: first onchange on new one2many line
Consider models `M` and `L`, with a one2many field `M.l_ids` with inverse `L.m_id`. Consider also a computed field `L.foo` that depends on `L.m_id`. The field `L.foo` is not computed correctly by `onchange` on a new line in the form view of `M`: its value is forced to `False` because it has no default, and is not recomputed by `onchange` since the field `L.m_id` is never triggered an `onchange`. Modify the method `onchange` to not force fields without a default to `False`, and return all fields.
Diffstat (limited to 'odoo/addons/test_new_api/tests/test_onchange.py')
-rw-r--r--odoo/addons/test_new_api/tests/test_onchange.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/tests/test_onchange.py b/odoo/addons/test_new_api/tests/test_onchange.py
index 5bffeae5f86..38c7b8be531 100644
--- a/odoo/addons/test_new_api/tests/test_onchange.py
+++ b/odoo/addons/test_new_api/tests/test_onchange.py
@@ -378,6 +378,19 @@ class TestOnChange(SavepointCaseWithUserDemo):
result = Foo.onchange(values, 'value1', field_onchange)
self.assertEqual(result['value'], {})
+ def test_onchange_one2many_first(self):
+ partner = self.env['res.partner'].create({
+ 'name': 'X',
+ 'country_id': self.env.ref('base.be').id,
+ })
+ with common.Form(self.env['test_new_api.multi']) as form:
+ form.partner = partner
+ self.assertEqual(form.partner, partner)
+ self.assertEqual(form.name, partner.name)
+ with form.lines.new() as line:
+ # the first onchange() must have computed partner
+ self.assertEqual(line.partner, partner)
+
def test_onchange_one2many_value(self):
""" test the value of the one2many field inside the onchange """
discussion = self.env.ref('test_new_api.discussion_0')