Update cluster VM/device views to use ObjectChildrenView

This commit is contained in:
jeremystretch 2021-12-14 14:08:44 -05:00
parent c795068a78
commit 59ee30f056
3 changed files with 14 additions and 20 deletions

View File

@ -12,7 +12,7 @@
<form action="{% url 'virtualization:cluster_remove_devices' pk=object.pk %}" method="post">
{% csrf_token %}
<div class="card-body table-responsive">
{% render_table devices_table 'inc/table.html' %}
{% render_table table 'inc/table.html' %}
</div>
{% if perms.virtualization.change_cluster %}
<div class="card-footer noprint">

View File

@ -10,7 +10,7 @@
Virtual Machines
</h5>
<div class="card-body table-responsive">
{% render_table virtualmachines_table 'inc/table.html' %}
{% render_table table 'inc/table.html' %}
</div>
</div>
</div>

View File

@ -161,38 +161,32 @@ class ClusterView(generic.ObjectView):
queryset = Cluster.objects.all()
class ClusterVirtualMachinesView(generic.ObjectView):
class ClusterVirtualMachinesView(generic.ObjectChildrenView):
queryset = Cluster.objects.all()
child_model = VirtualMachine
table = tables.VirtualMachineTable
template_name = 'virtualization/cluster/virtual_machines.html'
def get_extra_context(self, request, instance):
virtualmachines = VirtualMachine.objects.restrict(request.user, 'view').filter(cluster=instance)
virtualmachines_table = tables.VirtualMachineTable(
virtualmachines,
exclude=('cluster',),
orderable=False
)
def get_children(self, request, parent):
return VirtualMachine.objects.restrict(request.user, 'view').filter(cluster=parent)
def get_extra_context(self, request, instance):
return {
'virtualmachines_table': virtualmachines_table,
'active_tab': 'virtual-machines',
}
class ClusterDevicesView(generic.ObjectView):
class ClusterDevicesView(generic.ObjectChildrenView):
queryset = Cluster.objects.all()
child_model = Device
table = DeviceTable
template_name = 'virtualization/cluster/devices.html'
def get_extra_context(self, request, instance):
devices = Device.objects.restrict(request.user, 'view').filter(cluster=instance).prefetch_related(
'site', 'rack', 'tenant', 'device_type__manufacturer'
)
devices_table = DeviceTable(list(devices), orderable=False)
if request.user.has_perm('virtualization.change_cluster'):
devices_table.columns.show('pk')
def get_children(self, request, parent):
return Device.objects.restrict(request.user, 'view').filter(cluster=parent)
def get_extra_context(self, request, instance):
return {
'devices_table': devices_table,
'active_tab': 'devices',
}