changeset b048eaced523 in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset&node=b048eaced523
description:
Get view_tree_state only for view with tree_state attribute set
issue11794
review415781003
diffstat:
tryton/gui/window/view_form/screen/screen.py | 40 ++++++++++++++-------------
1 files changed, 21 insertions(+), 19 deletions(-)
diffs (57 lines):
diff -r e695ee784608 -r b048eaced523
tryton/gui/window/view_form/screen/screen.py
--- a/tryton/gui/window/view_form/screen/screen.py Sat Nov 05 09:51:17
2022 +0100
+++ b/tryton/gui/window/view_form/screen/screen.py Sat Nov 05 09:59:44
2022 +0100
@@ -845,32 +845,34 @@
if view.view_type == 'form' and self.tree_states_done:
return
if (view.view_type == 'tree'
- and not view.attributes.get('tree_state', False)):
+ and not int(view.attributes.get('tree_state', False))):
# Mark as done to not set later when the view_type change
self.tree_states_done.add(id(view))
parent = self.parent.id if self.parent else None
if parent is not None and parent < 0:
return
expanded_nodes, selected_nodes = [], []
- state = self.tree_states[parent][view.children_field]
- if state:
- expanded_nodes, selected_nodes = state
- if state is None and CONFIG['client.save_tree_state']:
- json_domain = self.get_tree_domain(parent)
- try:
- expanded_nodes, selected_nodes = RPCExecute('model',
- 'ir.ui.view_tree_state', 'get',
- self.model_name, json_domain,
- view.children_field)
- expanded_nodes = json.loads(expanded_nodes)
- selected_nodes = json.loads(selected_nodes)
- except RPCException:
- logger.warn(
- 'Unable to get view tree state for %s',
- self.model_name)
- self.tree_states[parent][view.children_field] = (
- expanded_nodes, selected_nodes)
if view.view_type == 'tree':
+ state = self.tree_states[parent][view.children_field]
+ if state:
+ expanded_nodes, selected_nodes = state
+ if (state is None
+ and CONFIG['client.save_tree_state']
+ and int(view.attributes.get('tree_state', False))):
+ json_domain = self.get_tree_domain(parent)
+ try:
+ expanded_nodes, selected_nodes = RPCExecute('model',
+ 'ir.ui.view_tree_state', 'get',
+ self.model_name, json_domain,
+ view.children_field)
+ expanded_nodes = json.loads(expanded_nodes)
+ selected_nodes = json.loads(selected_nodes)
+ except RPCException:
+ logger.warn(
+ 'Unable to get view tree state for %s',
+ self.model_name)
+ self.tree_states[parent][view.children_field] = (
+ expanded_nodes, selected_nodes)
view.expand_nodes(expanded_nodes)
view.select_nodes(selected_nodes)
else: