from rest_framework.response import Response from assets.api import SerializeToTreeNodeMixin from common.utils import get_logger from .mixin import RebuildTreeMixin from ..nodes import ( UserAllPermedNodesApi, UserPermedNodeChildrenApi, ) logger = get_logger(__name__) __all__ = [ 'UserAllPermedNodesAsTreeApi', 'UserPermedNodeChildrenAsTreeApi', ] class NodeTreeMixin(RebuildTreeMixin, SerializeToTreeNodeMixin): filter_queryset: callable get_queryset: callable def list(self, request, *args, **kwargs): nodes = self.filter_queryset(self.get_queryset()) data = self.serialize_nodes(nodes, with_asset_amount=True) return Response(data) class UserAllPermedNodesAsTreeApi(NodeTreeMixin, UserAllPermedNodesApi): """ 用户 '授权的节点' 作为树 """ pass class UserPermedNodeChildrenAsTreeApi(NodeTreeMixin, UserPermedNodeChildrenApi): """ 用户授权的节点下的子节点树 """ pass