diff --git a/apps/assets/views/asset.py b/apps/assets/views/asset.py index 40601d27f..cea174214 100644 --- a/apps/assets/views/asset.py +++ b/apps/assets/views/asset.py @@ -5,20 +5,18 @@ from django.contrib import messages from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView from django.views.generic.edit import FormMixin -from django.views.generic.edit import CreateView, DeleteView, UpdateView +from django.views.generic.edit import DeleteView, UpdateView from django.urls import reverse_lazy from django.views.generic.detail import DetailView from django.core.cache import cache from django.shortcuts import redirect -from django.contrib.messages.views import SuccessMessageMixin from django.forms.formsets import formset_factory from common.utils import get_object_or_none, get_logger from common.permissions import PermissionsMixin, IsOrgAdmin, IsValidUser -from common.const import ( - create_success_msg, update_success_msg, KEY_CACHE_RESOURCES_ID -) +from common.const import KEY_CACHE_RESOURCES_ID from .. import forms +from ..utils import NodeUtil from ..models import Asset, SystemUser, Label, Node @@ -198,7 +196,9 @@ class AssetDetailView(PermissionsMixin, DetailView): ).select_related('admin_user', 'domain') def get_context_data(self, **kwargs): - nodes_remain = Node.objects.exclude(assets=self.object) + nodes_remain = Node.objects.exclude(assets=self.object).only('key') + util = NodeUtil() + nodes_remain = util.get_nodes_by_queryset(nodes_remain) context = { 'app': _('Assets'), 'action': _('Asset detail'), diff --git a/apps/perms/views/asset_permission.py b/apps/perms/views/asset_permission.py index 3119b9863..133e14e20 100644 --- a/apps/perms/views/asset_permission.py +++ b/apps/perms/views/asset_permission.py @@ -10,6 +10,7 @@ from django.conf import settings from common.permissions import PermissionsMixin, IsOrgAdmin from orgs.utils import current_org +from assets.utils import NodeUtil from perms.hands import Node, Asset, SystemUser, UserGroup from perms.models import AssetPermission from perms.forms import AssetPermissionForm @@ -163,8 +164,11 @@ class AssetPermissionAssetView(PermissionsMixin, return queryset def get_context_data(self, **kwargs): - granted_nodes = self.object.nodes.all() - nodes_remain = [n for n in Node.get_queryset() if n not in granted_nodes] + nodes_remain = Node.objects.exclude( + id__in=self.object.nodes.all().values_list('id', flat=True) + ).only('key') + util = NodeUtil() + nodes_remain = util.get_nodes_by_queryset(nodes_remain) context = { 'app': _('Perms'), 'action': _('Asset permission asset list'),