mirror of https://github.com/jumpserver/jumpserver
[Bugfix] 修复资产数量不对的bug
parent
7da46354ca
commit
6b86b8b485
|
@ -43,10 +43,6 @@ class NodeViewSet(viewsets.ModelViewSet):
|
|||
permission_classes = (IsOrgAdmin,)
|
||||
serializer_class = serializers.NodeSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset().annotate(Count('assets'))
|
||||
return queryset
|
||||
|
||||
def perform_create(self, serializer):
|
||||
child_key = Node.root().get_next_child_key()
|
||||
serializer.validated_data["key"] = child_key
|
||||
|
@ -108,9 +104,9 @@ class NodeChildrenApi(mixins.ListModelMixin, generics.CreateAPIView):
|
|||
queryset.append(node)
|
||||
|
||||
if query_all:
|
||||
children = node.get_all_children().annotate(Count("assets"))
|
||||
children = node.get_all_children()
|
||||
else:
|
||||
children = node.get_children().annotate(Count("assets"))
|
||||
children = node.get_children()
|
||||
queryset.extend(list(children))
|
||||
|
||||
if query_assets:
|
||||
|
|
|
@ -199,6 +199,11 @@ class Node(OrgModelMixin):
|
|||
else:
|
||||
return cls.create_root_node()
|
||||
|
||||
@classmethod
|
||||
def default_node(cls):
|
||||
defaults = {'value': 'Default'}
|
||||
return cls.objects.get_or_create(defaults=defaults, key='0')
|
||||
|
||||
@classmethod
|
||||
def generate_fake(cls, count=100):
|
||||
import random
|
||||
|
|
|
@ -68,7 +68,7 @@ class NodeSerializer(serializers.ModelSerializer):
|
|||
|
||||
@staticmethod
|
||||
def get_assets_amount(obj):
|
||||
return obj.assets__count if hasattr(obj, 'assets__count') else 0
|
||||
return obj.get_all_assets().count()
|
||||
|
||||
@staticmethod
|
||||
def get_tree_id(obj):
|
||||
|
|
|
@ -8,7 +8,6 @@ import codecs
|
|||
import chardet
|
||||
from io import StringIO
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import transaction
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic import TemplateView, ListView, View
|
||||
|
@ -25,11 +24,12 @@ from django.shortcuts import redirect
|
|||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
|
||||
from common.mixins import JSONResponseMixin
|
||||
from common.utils import get_object_or_none, get_logger, is_uuid
|
||||
from common.utils import get_object_or_none, get_logger
|
||||
from common.permissions import AdminUserRequiredMixin
|
||||
from common.const import create_success_msg, update_success_msg
|
||||
from orgs.utils import current_org
|
||||
from .. import forms
|
||||
from ..models import Asset, AdminUser, SystemUser, Label, Node, Domain
|
||||
from common.permissions import AdminUserRequiredMixin
|
||||
|
||||
|
||||
__all__ = [
|
||||
|
@ -44,7 +44,10 @@ class AssetListView(AdminUserRequiredMixin, TemplateView):
|
|||
template_name = 'assets/asset_list.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
Node.root()
|
||||
if current_org.is_default():
|
||||
Node.default_node()
|
||||
else:
|
||||
Node.root()
|
||||
context = {
|
||||
'app': _('Assets'),
|
||||
'action': _('Asset list'),
|
||||
|
|
|
@ -139,8 +139,6 @@ class AssetPermissionUtil:
|
|||
for node, system_users in nodes.items():
|
||||
_assets = node.get_all_assets().valid().prefetch_related('nodes')
|
||||
for asset in _assets:
|
||||
if isinstance(asset, Node):
|
||||
print(_assets)
|
||||
assets[asset].update(system_users)
|
||||
self._assets = assets
|
||||
return self._assets
|
||||
|
|
|
@ -243,7 +243,6 @@ class CommandViewSet(viewsets.ViewSet):
|
|||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.serializer_class(data=request.data, many=True)
|
||||
if serializer.is_valid():
|
||||
print(serializer.validated_data)
|
||||
ok = self.command_store.bulk_save(serializer.validated_data)
|
||||
if ok:
|
||||
return Response("ok", status=201)
|
||||
|
|
Loading…
Reference in New Issue