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

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
 ### 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
 * [#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
 * [#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.filters import TenantFilterSet
 from tenancy.models import Tenant
 from tenancy.models import Tenant
 from tenancy.tables import TenantTable
 from tenancy.tables import TenantTable
+from utilities.utils import get_subquery
 from virtualization.filters import ClusterFilterSet, VirtualMachineFilterSet
 from virtualization.filters import ClusterFilterSet, VirtualMachineFilterSet
 from virtualization.models import Cluster, VirtualMachine
 from virtualization.models import Cluster, VirtualMachine
 from virtualization.tables import ClusterTable, VirtualMachineDetailTable
 from virtualization.tables import ClusterTable, VirtualMachineDetailTable
@@ -120,7 +121,10 @@ SEARCH_TYPES = OrderedDict((
     # Virtualization
     # Virtualization
     ('cluster', {
     ('cluster', {
         'permission': 'virtualization.view_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,
         'filterset': ClusterFilterSet,
         'table': ClusterTable,
         'table': ClusterTable,
         'url': 'virtualization:cluster_list',
         'url': 'virtualization:cluster_list',