diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py index 515f1f13c..12801b411 100644 --- a/apps/assets/api/node.py +++ b/apps/assets/api/node.py @@ -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: diff --git a/apps/assets/models/node.py b/apps/assets/models/node.py index c919edff6..ca3607cf6 100644 --- a/apps/assets/models/node.py +++ b/apps/assets/models/node.py @@ -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 diff --git a/apps/assets/serializers/node.py b/apps/assets/serializers/node.py index 4f7031065..a57da2cdc 100644 --- a/apps/assets/serializers/node.py +++ b/apps/assets/serializers/node.py @@ -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): diff --git a/apps/assets/views/asset.py b/apps/assets/views/asset.py index 5b136aa79..4b0387e36 100644 --- a/apps/assets/views/asset.py +++ b/apps/assets/views/asset.py @@ -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'), diff --git a/apps/perms/utils.py b/apps/perms/utils.py index 326a8cfcf..817c8b144 100644 --- a/apps/perms/utils.py +++ b/apps/perms/utils.py @@ -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 diff --git a/apps/terminal/api.py b/apps/terminal/api.py index 175ccd580..0b908d837 100644 --- a/apps/terminal/api.py +++ b/apps/terminal/api.py @@ -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)