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:

Reply via email to