Commit 1ef16d55 authored by ibuler's avatar ibuler

[Update] 优化详情页获取nodes

parent 1af40b6c
...@@ -5,20 +5,18 @@ from django.contrib import messages ...@@ -5,20 +5,18 @@ from django.contrib import messages
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView, ListView from django.views.generic import TemplateView, ListView
from django.views.generic.edit import FormMixin 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.urls import reverse_lazy
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
from django.core.cache import cache from django.core.cache import cache
from django.shortcuts import redirect from django.shortcuts import redirect
from django.contrib.messages.views import SuccessMessageMixin
from django.forms.formsets import formset_factory from django.forms.formsets import formset_factory
from common.utils import get_object_or_none, get_logger from common.utils import get_object_or_none, get_logger
from common.permissions import PermissionsMixin, IsOrgAdmin, IsValidUser from common.permissions import PermissionsMixin, IsOrgAdmin, IsValidUser
from common.const import ( from common.const import KEY_CACHE_RESOURCES_ID
create_success_msg, update_success_msg, KEY_CACHE_RESOURCES_ID
)
from .. import forms from .. import forms
from ..utils import NodeUtil
from ..models import Asset, SystemUser, Label, Node from ..models import Asset, SystemUser, Label, Node
...@@ -198,7 +196,9 @@ class AssetDetailView(PermissionsMixin, DetailView): ...@@ -198,7 +196,9 @@ class AssetDetailView(PermissionsMixin, DetailView):
).select_related('admin_user', 'domain') ).select_related('admin_user', 'domain')
def get_context_data(self, **kwargs): 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 = { context = {
'app': _('Assets'), 'app': _('Assets'),
'action': _('Asset detail'), 'action': _('Asset detail'),
......
...@@ -10,6 +10,7 @@ from django.conf import settings ...@@ -10,6 +10,7 @@ from django.conf import settings
from common.permissions import PermissionsMixin, IsOrgAdmin from common.permissions import PermissionsMixin, IsOrgAdmin
from orgs.utils import current_org from orgs.utils import current_org
from assets.utils import NodeUtil
from perms.hands import Node, Asset, SystemUser, UserGroup from perms.hands import Node, Asset, SystemUser, UserGroup
from perms.models import AssetPermission from perms.models import AssetPermission
from perms.forms import AssetPermissionForm from perms.forms import AssetPermissionForm
...@@ -163,8 +164,11 @@ class AssetPermissionAssetView(PermissionsMixin, ...@@ -163,8 +164,11 @@ class AssetPermissionAssetView(PermissionsMixin,
return queryset return queryset
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
granted_nodes = self.object.nodes.all() nodes_remain = Node.objects.exclude(
nodes_remain = [n for n in Node.get_queryset() if n not in granted_nodes] 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 = { context = {
'app': _('Perms'), 'app': _('Perms'),
'action': _('Asset permission asset list'), 'action': _('Asset permission asset list'),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment