diff --git a/apps/assets/utils.py b/apps/assets/utils.py index 6e5952ff8..305bcbf36 100644 --- a/apps/assets/utils.py +++ b/apps/assets/utils.py @@ -26,10 +26,6 @@ def get_system_user_by_id(id): class TreeService(Tree): tag_sep = ' / ' - cache_key = '_NODE_FULL_TREE' - cache_time = 3600 - has_empty_node = False - has_ungrouped_node = False def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -43,13 +39,17 @@ class TreeService(Tree): from orgs.utils import tmp_to_root_org with tmp_to_root_org(): - all_nodes = Node.objects.all() + all_nodes = list(Node.objects.all().values("key", "value")) + all_nodes.sort(key=lambda x: len(x["key"].split(":"))) tree = cls() tree.create_node(tag='', identifier='') for node in all_nodes: + key = node["key"] + value = node["value"] + parent_key = ":".join(key.split(":")[:-1]) tree.create_node( - tag=node.value, identifier=node.key, - parent=node.parent_key, + tag=value, identifier=key, + parent=parent_key, ) tree.init_assets() return tree