changeset 51e31eec316f in proteus:4.6 details: https://hg.tryton.org/proteus?cmd=changeset;node=51e31eec316f description: Ensure on_change arguments are loaded
As proteus is lazy about field it read, after a save call there is no field read. But if the next on_change need the value of a field no loaded, it will send an empty value because Eval accessors do not trigger a read. So to behave like other client (which load displayed fields), we ensure to load the needed arguments. issue8450 review264411005 (grafted from 983a7c8286f19dcbac2cf5a50d999f36bc82f389) diffstat: proteus/__init__.py | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diffs (20 lines): diff -r 81a49b4a5dce -r 51e31eec316f proteus/__init__.py --- a/proteus/__init__.py Thu Oct 24 19:00:37 2019 +0200 +++ b/proteus/__init__.py Thu Oct 24 19:02:31 2019 +0200 @@ -978,6 +978,16 @@ return values def _on_change_args(self, args): + # Ensure arguments has been read + for arg in args: + record = self + for i in arg.split('.'): + if i in record._fields: + getattr(record, i) + elif i == '_parent_' + record._parent_name: + getattr(record, record._parent_name) + record = record._parent + res = {} values = _EvalEnvironment(self, 'on_change') for arg in args: