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: