changeset dc0520e83643 in tryton:default details: https://hg.tryton.org/tryton?cmd=changeset;node=dc0520e83643 description: Ensure dependencies of fields are also loaded on Form display
issue9630 review298641002 diffstat: tryton/gui/window/view_form/view/form.py | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diffs (30 lines): diff -r 870ec68b29e4 -r dc0520e83643 tryton/gui/window/view_form/view/form.py --- a/tryton/gui/window/view_form/view/form.py Thu Mar 11 19:14:07 2021 +0100 +++ b/tryton/gui/window/view_form/view/form.py Thu Mar 11 23:34:44 2021 +0100 @@ -510,13 +510,19 @@ if record: # Force to set fields in record # Get first the lazy one from the view to reduce number of requests - fields = ((name, record.group.fields[name]) - for name in self.widgets) - fields = ( - (name, - field.attrs.get('loading', 'eager') == 'eager', - len(field.views)) - for name, field in fields) + field_names = set() + for name in self.widgets: + field = record.group.fields[name] + field_names.add(name) + field_names.update(f for f in field.attrs.get('depends', []) + if (not f.startswith('_parent') + and f in record.group.fields)) + fields = [] + for name in field_names: + field = record.group.fields[name] + fields.append( + (name, field.attrs.get('loading', 'eager') == 'eager', + len(field.views))) fields = sorted(fields, key=operator.itemgetter(1, 2)) for field, _, _ in fields: record[field].get(record)