mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
adds vms tab on device object view #15328
This commit is contained in:
committed by
Jeremy Stretch
parent
2a06e1990a
commit
08923d77d1
@ -28,7 +28,9 @@ from utilities.permissions import get_permission_for_model
|
|||||||
from utilities.query import count_related
|
from utilities.query import count_related
|
||||||
from utilities.query_functions import CollateAsChar
|
from utilities.query_functions import CollateAsChar
|
||||||
from utilities.views import GetReturnURLMixin, ObjectPermissionRequiredMixin, ViewTab, register_model_view
|
from utilities.views import GetReturnURLMixin, ObjectPermissionRequiredMixin, ViewTab, register_model_view
|
||||||
|
from virtualization.filtersets import VirtualMachineFilterSet
|
||||||
from virtualization.models import VirtualMachine
|
from virtualization.models import VirtualMachine
|
||||||
|
from virtualization.tables import VirtualMachineTable
|
||||||
from . import filtersets, forms, tables
|
from . import filtersets, forms, tables
|
||||||
from .choices import DeviceFaceChoices
|
from .choices import DeviceFaceChoices
|
||||||
from .models import *
|
from .models import *
|
||||||
@ -2085,6 +2087,25 @@ class DeviceRenderConfigView(generic.ObjectView):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@register_model_view(Device, 'virtual-machines')
|
||||||
|
class DeviceVirtualMachinesView(generic.ObjectChildrenView):
|
||||||
|
queryset = Device.objects.all()
|
||||||
|
child_model = VirtualMachine
|
||||||
|
table = VirtualMachineTable
|
||||||
|
filterset = VirtualMachineFilterSet
|
||||||
|
template_name = 'generic/object_children.html'
|
||||||
|
tab = ViewTab(
|
||||||
|
label=_('Virtual Machines'),
|
||||||
|
badge=lambda obj: VirtualMachine.objects.filter(cluster=obj.cluster, device=obj).count(),
|
||||||
|
weight=2200,
|
||||||
|
hide_if_empty=True,
|
||||||
|
permission='virtualization.view_virtualmachine'
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_children(self, request, parent):
|
||||||
|
return self.child_model.objects.restrict(request.user, 'view').filter(cluster=parent.cluster, device=parent)
|
||||||
|
|
||||||
|
|
||||||
class DeviceBulkImportView(generic.BulkImportView):
|
class DeviceBulkImportView(generic.BulkImportView):
|
||||||
queryset = Device.objects.all()
|
queryset = Device.objects.all()
|
||||||
model_form = forms.DeviceImportForm
|
model_form = forms.DeviceImportForm
|
||||||
|
Reference in New Issue
Block a user