mirror of https://github.com/jumpserver/jumpserver
[Update] 优化详情页获取nodes
parent
1af40b6ca0
commit
1ef16d55ef
|
@ -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):
|
||||||
).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
|
||||||
|
|
||||||
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,
|
||||||
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'),
|
||||||
|
|
Loading…
Reference in New Issue