diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index e5fb311db..0f240fff3 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -119,7 +119,7 @@ SEARCH_TYPES = OrderedDict(( }), # Virtualization ('cluster', { - 'queryset': Cluster.objects.all(), + 'queryset': Cluster.objects.select_related('type', 'group'), 'filter': ClusterFilter, 'table': ClusterTable, 'url': 'virtualization:cluster_list', diff --git a/netbox/virtualization/tables.py b/netbox/virtualization/tables.py index 2ace86d77..4d38a3fe5 100644 --- a/netbox/virtualization/tables.py +++ b/netbox/virtualization/tables.py @@ -80,8 +80,9 @@ class ClusterGroupTable(BaseTable): class ClusterTable(BaseTable): pk = ToggleColumn() name = tables.LinkColumn() - device_count = tables.Column(verbose_name='Devices') - vm_count = tables.Column(verbose_name='VMs') + site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')]) + device_count = tables.Column(accessor=Accessor('devices.count'), orderable=False, verbose_name='Devices') + vm_count = tables.Column(accessor=Accessor('virtual_machines.count'), orderable=False, verbose_name='VMs') class Meta(BaseTable.Meta): model = Cluster diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 4f2981748..6874efd16 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -99,10 +99,7 @@ class ClusterGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): # class ClusterListView(ObjectListView): - queryset = Cluster.objects.annotate( - device_count=Count('devices', distinct=True), - vm_count=Count('virtual_machines', distinct=True) - ) + queryset = Cluster.objects.select_related('type', 'group') table = tables.ClusterTable filter = filters.ClusterFilter filter_form = forms.ClusterFilterForm