diff --git a/openerp/addons/test_new_api/tests/test_onchange.py b/openerp/addons/test_new_api/tests/test_onchange.py index e9b7e1f83aa..3d0745a5f8b 100644 --- a/openerp/addons/test_new_api/tests/test_onchange.py +++ b/openerp/addons/test_new_api/tests/test_onchange.py @@ -146,8 +146,6 @@ class TestOnChange(common.TransactionCase): }), (1, message.id, { 'name': "[%s] %s" % ("Foo", USER.name), - # Note: size is computed because it was not provided beforehand - 'size': len(BODY), }), ]) diff --git a/openerp/models.py b/openerp/models.py index 3a8cb88423e..7dd628054a1 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -5787,6 +5787,11 @@ class BaseModel(object): # attach `self` with a different context (for cache consistency) record._origin = self.with_context(__onchange=True) + # load fields on secondary records, to avoid false changes + with env.do_in_onchange(): + for field_seq in secondary: + record.mapped(field_seq) + # determine which field(s) should be triggered an onchange todo = list(names) or list(values) done = set()