changeset 64b0febfc940 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset;node=64b0febfc940
description:
Do not prefetch view of xxx2many using multiselection widget
The view is not required by the widget and it allows non ModelView
relation to
be used.
issue8894
review288631002
diffstat:
trytond/model/modelview.py | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diffs (26 lines):
diff -r 7ab165ec4de9 -r 64b0febfc940 trytond/model/modelview.py
--- a/trytond/model/modelview.py Mon Dec 16 17:31:15 2019 +0100
+++ b/trytond/model/modelview.py Wed Dec 18 21:40:42 2019 +0100
@@ -540,10 +540,10 @@
elif hasattr(field, 'get_target'):
return field.get_target().__name__
- def get_views(relation, view_ids, mode):
+ def get_views(relation, widget, view_ids, mode):
Relation = pool.get(relation)
views = {}
- if field._type in ['one2many', 'many2many']:
+ if widget in {'one2many', 'many2many'}:
# Prefetch only the first view to prevent infinite loop
if view_ids:
for view_id in view_ids:
@@ -576,7 +576,8 @@
continue
mode = (
element.attrib.pop('mode', None) or 'tree,form').split(',')
- views = get_views(relation, view_ids, mode)
+ widget = element.attrib.get('widget', field._type)
+ views = get_views(relation, widget, view_ids, mode)
element.attrib['mode'] = ','.join(mode)
fields_attrs[fname].setdefault('views', {}).update(views)