Skip to content

Commit

Permalink
fix: 解决类型树展开全部时,根节点无限递归展开问题
Browse files Browse the repository at this point in the history
  • Loading branch information
O-Jiangweidong committed Aug 14, 2023
1 parent 237c71f commit db4f05a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 3 additions & 3 deletions apps/assets/const/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ def get_root_nodes(cls):
return dict(id='ROOT', name=_('All types'), title=_('All types'), open=True, isParent=True)

@classmethod
def get_tree_nodes(cls, resource_platforms, include_asset=False):
def get_tree_nodes(cls, resource_platforms, include_asset=False, get_root=True):
from ..models import Platform
platform_count = defaultdict(int)
for platform_id in resource_platforms:
Expand All @@ -239,10 +239,10 @@ def get_tree_nodes(cls, resource_platforms, include_asset=False):
category_type_mapper[p.category] += platform_count[p.id]
tp_platforms[p.category + '_' + p.type].append(p)

nodes = [cls.get_root_nodes()]
nodes = [cls.get_root_nodes()] if get_root else []
for category, type_cls in cls.category_types():
# Category 格式化
meta = {'type': 'category', 'category': category.value}
meta = {'type': 'category', 'category': category.value, '_type': category.value}
category_node = cls.choice_to_node(category, 'ROOT', meta=meta)
category_count = category_type_mapper.get(category, 0)
category_node['name'] += f'({category_count})'
Expand Down
4 changes: 3 additions & 1 deletion apps/perms/api/user_permission/tree/node_with_asset.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,10 @@ def to_tree_nodes(self, assets):
return []
pid = f'ROOT_{str(assets[0].category).upper()}_{tp}'
return self.serialize_assets(assets, pid=pid)
params = self.request.query_params
get_root = not list(filter(lambda x: params.get(x), ('type', 'n')))
resource_platforms = assets.order_by('id').values_list('platform_id', flat=True)
node_all = AllTypes.get_tree_nodes(resource_platforms)
node_all = AllTypes.get_tree_nodes(resource_platforms, get_root=get_root)
pattern = re.compile(r'\(0\)?')
nodes = []
for node in node_all:
Expand Down

0 comments on commit db4f05a

Please sign in to comment.