mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-29 03:46:25 -06:00
Register virtualization list views with register_model_view()
This commit is contained in:
parent
d7b49c03a7
commit
5d7efbc0b1
@ -6,57 +6,33 @@ from . import views
|
||||
app_name = 'virtualization'
|
||||
urlpatterns = [
|
||||
|
||||
# Cluster types
|
||||
path('cluster-types/', views.ClusterTypeListView.as_view(), name='clustertype_list'),
|
||||
path('cluster-types/add/', views.ClusterTypeEditView.as_view(), name='clustertype_add'),
|
||||
path('cluster-types/import/', views.ClusterTypeBulkImportView.as_view(), name='clustertype_import'),
|
||||
path('cluster-types/edit/', views.ClusterTypeBulkEditView.as_view(), name='clustertype_bulk_edit'),
|
||||
path('cluster-types/delete/', views.ClusterTypeBulkDeleteView.as_view(), name='clustertype_bulk_delete'),
|
||||
path('cluster-types/', include(get_model_urls('virtualization', 'clustertype', detail=False))),
|
||||
path('cluster-types/<int:pk>/', include(get_model_urls('virtualization', 'clustertype'))),
|
||||
|
||||
# Cluster groups
|
||||
path('cluster-groups/', views.ClusterGroupListView.as_view(), name='clustergroup_list'),
|
||||
path('cluster-groups/add/', views.ClusterGroupEditView.as_view(), name='clustergroup_add'),
|
||||
path('cluster-groups/import/', views.ClusterGroupBulkImportView.as_view(), name='clustergroup_import'),
|
||||
path('cluster-groups/edit/', views.ClusterGroupBulkEditView.as_view(), name='clustergroup_bulk_edit'),
|
||||
path('cluster-groups/delete/', views.ClusterGroupBulkDeleteView.as_view(), name='clustergroup_bulk_delete'),
|
||||
path('cluster-groups/', include(get_model_urls('virtualization', 'clustergroup', detail=False))),
|
||||
path('cluster-groups/<int:pk>/', include(get_model_urls('virtualization', 'clustergroup'))),
|
||||
|
||||
# Clusters
|
||||
path('clusters/', views.ClusterListView.as_view(), name='cluster_list'),
|
||||
path('clusters/add/', views.ClusterEditView.as_view(), name='cluster_add'),
|
||||
path('clusters/import/', views.ClusterBulkImportView.as_view(), name='cluster_import'),
|
||||
path('clusters/edit/', views.ClusterBulkEditView.as_view(), name='cluster_bulk_edit'),
|
||||
path('clusters/delete/', views.ClusterBulkDeleteView.as_view(), name='cluster_bulk_delete'),
|
||||
path('clusters/', include(get_model_urls('virtualization', 'cluster', detail=False))),
|
||||
path('clusters/<int:pk>/', include(get_model_urls('virtualization', 'cluster'))),
|
||||
|
||||
# Virtual machines
|
||||
path('virtual-machines/', views.VirtualMachineListView.as_view(), name='virtualmachine_list'),
|
||||
path('virtual-machines/add/', views.VirtualMachineEditView.as_view(), name='virtualmachine_add'),
|
||||
path('virtual-machines/import/', views.VirtualMachineBulkImportView.as_view(), name='virtualmachine_import'),
|
||||
path('virtual-machines/edit/', views.VirtualMachineBulkEditView.as_view(), name='virtualmachine_bulk_edit'),
|
||||
path('virtual-machines/delete/', views.VirtualMachineBulkDeleteView.as_view(), name='virtualmachine_bulk_delete'),
|
||||
path('virtual-machines/', include(get_model_urls('virtualization', 'virtualmachine', detail=False))),
|
||||
path('virtual-machines/<int:pk>/', include(get_model_urls('virtualization', 'virtualmachine'))),
|
||||
|
||||
# VM interfaces
|
||||
path('interfaces/', views.VMInterfaceListView.as_view(), name='vminterface_list'),
|
||||
path('interfaces/add/', views.VMInterfaceCreateView.as_view(), name='vminterface_add'),
|
||||
path('interfaces/import/', views.VMInterfaceBulkImportView.as_view(), name='vminterface_import'),
|
||||
path('interfaces/edit/', views.VMInterfaceBulkEditView.as_view(), name='vminterface_bulk_edit'),
|
||||
path('interfaces/rename/', views.VMInterfaceBulkRenameView.as_view(), name='vminterface_bulk_rename'),
|
||||
path('interfaces/delete/', views.VMInterfaceBulkDeleteView.as_view(), name='vminterface_bulk_delete'),
|
||||
path('interfaces/', include(get_model_urls('virtualization', 'vminterface', detail=False))),
|
||||
path('interfaces/<int:pk>/', include(get_model_urls('virtualization', 'vminterface'))),
|
||||
path('virtual-machines/interfaces/add/', views.VirtualMachineBulkAddInterfaceView.as_view(), name='virtualmachine_bulk_add_vminterface'),
|
||||
path(
|
||||
'virtual-machines/interfaces/add/',
|
||||
views.VirtualMachineBulkAddInterfaceView.as_view(),
|
||||
name='virtualmachine_bulk_add_vminterface'
|
||||
),
|
||||
|
||||
# Virtual disks
|
||||
path('virtual-disks/', views.VirtualDiskListView.as_view(), name='virtualdisk_list'),
|
||||
path('virtual-disks/add/', views.VirtualDiskCreateView.as_view(), name='virtualdisk_add'),
|
||||
path('virtual-disks/import/', views.VirtualDiskBulkImportView.as_view(), name='virtualdisk_import'),
|
||||
path('virtual-disks/edit/', views.VirtualDiskBulkEditView.as_view(), name='virtualdisk_bulk_edit'),
|
||||
path('virtual-disks/rename/', views.VirtualDiskBulkRenameView.as_view(), name='virtualdisk_bulk_rename'),
|
||||
path('virtual-disks/delete/', views.VirtualDiskBulkDeleteView.as_view(), name='virtualdisk_bulk_delete'),
|
||||
path('virtual-disks/', include(get_model_urls('virtualization', 'virtualdisk', detail=False))),
|
||||
path('virtual-disks/<int:pk>/', include(get_model_urls('virtualization', 'virtualdisk'))),
|
||||
path('virtual-machines/disks/add/', views.VirtualMachineBulkAddVirtualDiskView.as_view(), name='virtualmachine_bulk_add_virtualdisk'),
|
||||
path(
|
||||
'virtual-machines/disks/add/',
|
||||
views.VirtualMachineBulkAddVirtualDiskView.as_view(),
|
||||
name='virtualmachine_bulk_add_virtualdisk'
|
||||
),
|
||||
|
||||
# TODO: Remove in v4.2
|
||||
# Redirect old (pre-v4.1) URLs for VirtualDisk views
|
||||
|
@ -31,6 +31,7 @@ from .models import *
|
||||
# Cluster types
|
||||
#
|
||||
|
||||
@register_model_view(ClusterType, 'list', path='', detail=False)
|
||||
class ClusterTypeListView(generic.ObjectListView):
|
||||
queryset = ClusterType.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'type')
|
||||
@ -50,6 +51,7 @@ class ClusterTypeView(GetRelatedModelsMixin, generic.ObjectView):
|
||||
}
|
||||
|
||||
|
||||
@register_model_view(ClusterType, 'add', detail=False)
|
||||
@register_model_view(ClusterType, 'edit')
|
||||
class ClusterTypeEditView(generic.ObjectEditView):
|
||||
queryset = ClusterType.objects.all()
|
||||
@ -61,11 +63,13 @@ class ClusterTypeDeleteView(generic.ObjectDeleteView):
|
||||
queryset = ClusterType.objects.all()
|
||||
|
||||
|
||||
@register_model_view(ClusterType, 'import', detail=False)
|
||||
class ClusterTypeBulkImportView(generic.BulkImportView):
|
||||
queryset = ClusterType.objects.all()
|
||||
model_form = forms.ClusterTypeImportForm
|
||||
|
||||
|
||||
@register_model_view(ClusterType, 'bulk_edit', path='edit', detail=False)
|
||||
class ClusterTypeBulkEditView(generic.BulkEditView):
|
||||
queryset = ClusterType.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'type')
|
||||
@ -75,6 +79,7 @@ class ClusterTypeBulkEditView(generic.BulkEditView):
|
||||
form = forms.ClusterTypeBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(ClusterType, 'bulk_delete', path='delete', detail=False)
|
||||
class ClusterTypeBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = ClusterType.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'type')
|
||||
@ -87,6 +92,7 @@ class ClusterTypeBulkDeleteView(generic.BulkDeleteView):
|
||||
# Cluster groups
|
||||
#
|
||||
|
||||
@register_model_view(ClusterGroup, 'list', path='', detail=False)
|
||||
class ClusterGroupListView(generic.ObjectListView):
|
||||
queryset = ClusterGroup.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'group')
|
||||
@ -106,6 +112,7 @@ class ClusterGroupView(GetRelatedModelsMixin, generic.ObjectView):
|
||||
}
|
||||
|
||||
|
||||
@register_model_view(ClusterGroup, 'add', detail=False)
|
||||
@register_model_view(ClusterGroup, 'edit')
|
||||
class ClusterGroupEditView(generic.ObjectEditView):
|
||||
queryset = ClusterGroup.objects.all()
|
||||
@ -117,6 +124,7 @@ class ClusterGroupDeleteView(generic.ObjectDeleteView):
|
||||
queryset = ClusterGroup.objects.all()
|
||||
|
||||
|
||||
@register_model_view(ClusterGroup, 'import', detail=False)
|
||||
class ClusterGroupBulkImportView(generic.BulkImportView):
|
||||
queryset = ClusterGroup.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'group')
|
||||
@ -124,6 +132,7 @@ class ClusterGroupBulkImportView(generic.BulkImportView):
|
||||
model_form = forms.ClusterGroupImportForm
|
||||
|
||||
|
||||
@register_model_view(ClusterGroup, 'bulk_edit', path='edit', detail=False)
|
||||
class ClusterGroupBulkEditView(generic.BulkEditView):
|
||||
queryset = ClusterGroup.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'group')
|
||||
@ -133,6 +142,7 @@ class ClusterGroupBulkEditView(generic.BulkEditView):
|
||||
form = forms.ClusterGroupBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(ClusterGroup, 'bulk_delete', path='delete', detail=False)
|
||||
class ClusterGroupBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = ClusterGroup.objects.annotate(
|
||||
cluster_count=count_related(Cluster, 'group')
|
||||
@ -150,6 +160,7 @@ class ClusterGroupContactsView(ObjectContactsView):
|
||||
# Clusters
|
||||
#
|
||||
|
||||
@register_model_view(Cluster, 'list', path='', detail=False)
|
||||
class ClusterListView(generic.ObjectListView):
|
||||
permission_required = 'virtualization.view_cluster'
|
||||
queryset = Cluster.objects.annotate(
|
||||
@ -213,6 +224,7 @@ class ClusterDevicesView(generic.ObjectChildrenView):
|
||||
return Device.objects.restrict(request.user, 'view').filter(cluster=parent)
|
||||
|
||||
|
||||
@register_model_view(Cluster, 'add', detail=False)
|
||||
@register_model_view(Cluster, 'edit')
|
||||
class ClusterEditView(generic.ObjectEditView):
|
||||
queryset = Cluster.objects.all()
|
||||
@ -224,11 +236,13 @@ class ClusterDeleteView(generic.ObjectDeleteView):
|
||||
queryset = Cluster.objects.all()
|
||||
|
||||
|
||||
@register_model_view(Cluster, 'import', detail=False)
|
||||
class ClusterBulkImportView(generic.BulkImportView):
|
||||
queryset = Cluster.objects.all()
|
||||
model_form = forms.ClusterImportForm
|
||||
|
||||
|
||||
@register_model_view(Cluster, 'bulk_edit', path='edit', detail=False)
|
||||
class ClusterBulkEditView(generic.BulkEditView):
|
||||
queryset = Cluster.objects.all()
|
||||
filterset = filtersets.ClusterFilterSet
|
||||
@ -236,6 +250,7 @@ class ClusterBulkEditView(generic.BulkEditView):
|
||||
form = forms.ClusterBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(Cluster, 'bulk_delete', path='delete', detail=False)
|
||||
class ClusterBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = Cluster.objects.all()
|
||||
filterset = filtersets.ClusterFilterSet
|
||||
@ -337,6 +352,7 @@ class ClusterContactsView(ObjectContactsView):
|
||||
# Virtual machines
|
||||
#
|
||||
|
||||
@register_model_view(VirtualMachine, 'list', path='', detail=False)
|
||||
class VirtualMachineListView(generic.ObjectListView):
|
||||
queryset = VirtualMachine.objects.prefetch_related('primary_ip4', 'primary_ip6')
|
||||
filterset = filtersets.VirtualMachineFilterSet
|
||||
@ -457,6 +473,7 @@ class VirtualMachineRenderConfigView(generic.ObjectView):
|
||||
}
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine, 'add', detail=False)
|
||||
@register_model_view(VirtualMachine, 'edit')
|
||||
class VirtualMachineEditView(generic.ObjectEditView):
|
||||
queryset = VirtualMachine.objects.all()
|
||||
@ -468,11 +485,13 @@ class VirtualMachineDeleteView(generic.ObjectDeleteView):
|
||||
queryset = VirtualMachine.objects.all()
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine, 'import', detail=False)
|
||||
class VirtualMachineBulkImportView(generic.BulkImportView):
|
||||
queryset = VirtualMachine.objects.all()
|
||||
model_form = forms.VirtualMachineImportForm
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine, 'bulk_edit', path='edit', detail=False)
|
||||
class VirtualMachineBulkEditView(generic.BulkEditView):
|
||||
queryset = VirtualMachine.objects.prefetch_related('primary_ip4', 'primary_ip6')
|
||||
filterset = filtersets.VirtualMachineFilterSet
|
||||
@ -480,6 +499,7 @@ class VirtualMachineBulkEditView(generic.BulkEditView):
|
||||
form = forms.VirtualMachineBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine, 'bulk_delete', path='delete', detail=False)
|
||||
class VirtualMachineBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = VirtualMachine.objects.prefetch_related('primary_ip4', 'primary_ip6')
|
||||
filterset = filtersets.VirtualMachineFilterSet
|
||||
@ -495,6 +515,7 @@ class VirtualMachineContactsView(ObjectContactsView):
|
||||
# VM interfaces
|
||||
#
|
||||
|
||||
@register_model_view(VMInterface, 'list', path='', detail=False)
|
||||
class VMInterfaceListView(generic.ObjectListView):
|
||||
queryset = VMInterface.objects.all()
|
||||
filterset = filtersets.VMInterfaceFilterSet
|
||||
@ -545,6 +566,7 @@ class VMInterfaceView(generic.ObjectView):
|
||||
}
|
||||
|
||||
|
||||
@register_model_view(VMInterface, 'add', detail=False)
|
||||
class VMInterfaceCreateView(generic.ComponentCreateView):
|
||||
queryset = VMInterface.objects.all()
|
||||
form = forms.VMInterfaceCreateForm
|
||||
@ -562,11 +584,13 @@ class VMInterfaceDeleteView(generic.ObjectDeleteView):
|
||||
queryset = VMInterface.objects.all()
|
||||
|
||||
|
||||
@register_model_view(VMInterface, 'import', detail=False)
|
||||
class VMInterfaceBulkImportView(generic.BulkImportView):
|
||||
queryset = VMInterface.objects.all()
|
||||
model_form = forms.VMInterfaceImportForm
|
||||
|
||||
|
||||
@register_model_view(VMInterface, 'bulk_edit', path='edit', detail=False)
|
||||
class VMInterfaceBulkEditView(generic.BulkEditView):
|
||||
queryset = VMInterface.objects.all()
|
||||
filterset = filtersets.VMInterfaceFilterSet
|
||||
@ -574,11 +598,13 @@ class VMInterfaceBulkEditView(generic.BulkEditView):
|
||||
form = forms.VMInterfaceBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(VMInterface, 'bulk_rename', path='rename', detail=False)
|
||||
class VMInterfaceBulkRenameView(generic.BulkRenameView):
|
||||
queryset = VMInterface.objects.all()
|
||||
form = forms.VMInterfaceBulkRenameForm
|
||||
|
||||
|
||||
@register_model_view(VMInterface, 'bulk_delete', path='delete', detail=False)
|
||||
class VMInterfaceBulkDeleteView(generic.BulkDeleteView):
|
||||
# Ensure child interfaces are deleted prior to their parents
|
||||
queryset = VMInterface.objects.order_by('virtual_machine', 'parent', CollateAsChar('_name'))
|
||||
@ -590,6 +616,7 @@ class VMInterfaceBulkDeleteView(generic.BulkDeleteView):
|
||||
# Virtual disks
|
||||
#
|
||||
|
||||
@register_model_view(VirtualDisk, 'list', path='', detail=False)
|
||||
class VirtualDiskListView(generic.ObjectListView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
filterset = filtersets.VirtualDiskFilterSet
|
||||
@ -602,6 +629,7 @@ class VirtualDiskView(generic.ObjectView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
|
||||
|
||||
@register_model_view(VirtualDisk, 'add', detail=False)
|
||||
class VirtualDiskCreateView(generic.ComponentCreateView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
form = forms.VirtualDiskCreateForm
|
||||
@ -619,11 +647,13 @@ class VirtualDiskDeleteView(generic.ObjectDeleteView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
|
||||
|
||||
@register_model_view(VirtualDisk, 'import', detail=False)
|
||||
class VirtualDiskBulkImportView(generic.BulkImportView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
model_form = forms.VirtualDiskImportForm
|
||||
|
||||
|
||||
@register_model_view(VirtualDisk, 'bulk_edit', path='edit', detail=False)
|
||||
class VirtualDiskBulkEditView(generic.BulkEditView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
filterset = filtersets.VirtualDiskFilterSet
|
||||
@ -631,11 +661,13 @@ class VirtualDiskBulkEditView(generic.BulkEditView):
|
||||
form = forms.VirtualDiskBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(VirtualDisk, 'bulk_rename', path='rename', detail=False)
|
||||
class VirtualDiskBulkRenameView(generic.BulkRenameView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
form = forms.VirtualDiskBulkRenameForm
|
||||
|
||||
|
||||
@register_model_view(VirtualDisk, 'bulk_delete', path='delete', detail=False)
|
||||
class VirtualDiskBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = VirtualDisk.objects.all()
|
||||
filterset = filtersets.VirtualDiskFilterSet
|
||||
|
Loading…
Reference in New Issue
Block a user