Explorar o código

Merge pull request #5009 from kobayashi/4989-vmcount

Fixes #4989: Fix no vm count for cluster in global search
Jeremy Stretch %!s(int64=6) %!d(string=hai) anos
pai
achega
5fad6a63ca
Modificáronse 2 ficheiros con 6 adicións e 1 borrados
  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',