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)

Reply via email to