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)