diff options
| author | Raphael Collet <rco@odoo.com> | 2019-10-28 14:59:27 +0000 |
|---|---|---|
| committer | Raphael Collet <rco@odoo.com> | 2020-08-20 13:39:04 +0000 |
| commit | 3e91fa1dbf9056f1557ff7a747ba3407e851b18e (patch) | |
| tree | 83026623a533cedb334a35c0b128b7bede175622 /odoo/addons/test_new_api/tests/test_onchange.py | |
| parent | 38b7462dcf7541bbcb51ac75cc1f7b6715f13ace (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.py | 13 |
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') |
