Просмотр исходного кода

Merge pull request #5009 from kobayashi/4989-vmcount

Fixes #4989: Fix no vm count for cluster in global search
Jeremy Stretch 5 лет назад
Родитель
Сommit
5fad6a63ca
2 измененных файлов с 6 добавлено и 1 удалено
  1. 1 0
      docs/release-notes/version-2.8.md
  2. 5 1
      netbox/netbox/views.py

+ 1 - 0
docs/release-notes/version-2.8.md

@@ -8,6 +8,7 @@
 
 ### Bug Fixes
 
+* [#4989](https://github.com/netbox-community/netbox/issues/4989) - Annotate device & vm counts to cluster qeryset for global search
 * [#4992](https://github.com/netbox-community/netbox/issues/4992) - Add `display_name` to nested VRF serializer
 * [#4993](https://github.com/netbox-community/netbox/issues/4993) - Add `cable` to nested CircuitTermination serializer
 

+ 5 - 1
netbox/netbox/views.py

@@ -34,6 +34,7 @@ from secrets.tables import SecretTable
 from tenancy.filters import TenantFilterSet
 from tenancy.models import Tenant
 from tenancy.tables import TenantTable
+from utilities.utils import get_subquery
 from virtualization.filters import ClusterFilterSet, VirtualMachineFilterSet
 from virtualization.models import Cluster, VirtualMachine
 from virtualization.tables import ClusterTable, VirtualMachineDetailTable
@@ -120,7 +121,10 @@ SEARCH_TYPES = OrderedDict((
     # Virtualization
     ('cluster', {
         'permission': 'virtualization.view_cluster',
-        'queryset': Cluster.objects.prefetch_related('type', 'group'),
+        'queryset': Cluster.objects.prefetch_related('type', 'group').annotate(
+            device_count=get_subquery(Device, 'cluster'),
+            vm_count=get_subquery(VirtualMachine, 'cluster')
+        ),
         'filterset': ClusterFilterSet,
         'table': ClusterTable,
         'url': 'virtualization:cluster_list',