mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-27 10:58:37 -06:00
Make sure counts in search results are for distinct objects
This commit is contained in:
parent
fe20c30a81
commit
e7ee44f673
@ -17,16 +17,12 @@ from dcim.filters import (
|
|||||||
CableFilterSet, DeviceFilterSet, DeviceTypeFilterSet, PowerFeedFilterSet, RackFilterSet, RackGroupFilterSet,
|
CableFilterSet, DeviceFilterSet, DeviceTypeFilterSet, PowerFeedFilterSet, RackFilterSet, RackGroupFilterSet,
|
||||||
SiteFilterSet, VirtualChassisFilterSet,
|
SiteFilterSet, VirtualChassisFilterSet,
|
||||||
)
|
)
|
||||||
from dcim.models import (
|
from dcim.models import (Cable, ConsolePort, Device, DeviceType, Interface, PowerFeed, PowerPanel, PowerPort, Rack,
|
||||||
Cable, ConsolePort, Device, DeviceType, Interface, PowerPanel, PowerFeed, PowerPort, Rack, RackGroup, Site,
|
RackGroup, Site, VirtualChassis)
|
||||||
VirtualChassis,
|
from dcim.tables import (CableTable, DeviceTable, DeviceTypeTable, PowerFeedTable, RackGroupTable, RackTable, SiteTable,
|
||||||
)
|
VirtualChassisTable)
|
||||||
from dcim.tables import (
|
|
||||||
CableTable, DeviceTable, DeviceTypeTable, PowerFeedTable, RackTable, RackGroupTable, SiteTable,
|
|
||||||
VirtualChassisTable,
|
|
||||||
)
|
|
||||||
from extras.choices import JobResultStatusChoices
|
from extras.choices import JobResultStatusChoices
|
||||||
from extras.models import ObjectChange, JobResult
|
from extras.models import JobResult, ObjectChange
|
||||||
from ipam.filters import AggregateFilterSet, IPAddressFilterSet, PrefixFilterSet, VLANFilterSet, VRFFilterSet
|
from ipam.filters import AggregateFilterSet, IPAddressFilterSet, PrefixFilterSet, VLANFilterSet, VRFFilterSet
|
||||||
from ipam.models import Aggregate, IPAddress, Prefix, VLAN, VRF
|
from ipam.models import Aggregate, IPAddress, Prefix, VLAN, VRF
|
||||||
from ipam.tables import AggregateTable, IPAddressTable, PrefixTable, VLANTable, VRFTable
|
from ipam.tables import AggregateTable, IPAddressTable, PrefixTable, VLANTable, VRFTable
|
||||||
@ -47,7 +43,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
# Circuits
|
# Circuits
|
||||||
('provider', {
|
('provider', {
|
||||||
'queryset': Provider.objects.annotate(
|
'queryset': Provider.objects.annotate(
|
||||||
count_circuits=Count('circuits')
|
count_circuits=Count('circuits', distinct=True)
|
||||||
).order_by(*Provider._meta.ordering),
|
).order_by(*Provider._meta.ordering),
|
||||||
'filterset': ProviderFilterSet,
|
'filterset': ProviderFilterSet,
|
||||||
'table': ProviderTable,
|
'table': ProviderTable,
|
||||||
@ -76,7 +72,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
}),
|
}),
|
||||||
('rackgroup', {
|
('rackgroup', {
|
||||||
'queryset': RackGroup.objects.prefetch_related('site').annotate(
|
'queryset': RackGroup.objects.prefetch_related('site').annotate(
|
||||||
rack_count=Count('racks')
|
rack_count=Count('racks', distinct=True)
|
||||||
).order_by(*RackGroup._meta.ordering),
|
).order_by(*RackGroup._meta.ordering),
|
||||||
'filterset': RackGroupFilterSet,
|
'filterset': RackGroupFilterSet,
|
||||||
'table': RackGroupTable,
|
'table': RackGroupTable,
|
||||||
@ -84,7 +80,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
}),
|
}),
|
||||||
('devicetype', {
|
('devicetype', {
|
||||||
'queryset': DeviceType.objects.prefetch_related('manufacturer').annotate(
|
'queryset': DeviceType.objects.prefetch_related('manufacturer').annotate(
|
||||||
instance_count=Count('instances')
|
instance_count=Count('instances', distinct=True)
|
||||||
).order_by(*DeviceType._meta.ordering),
|
).order_by(*DeviceType._meta.ordering),
|
||||||
'filterset': DeviceTypeFilterSet,
|
'filterset': DeviceTypeFilterSet,
|
||||||
'table': DeviceTypeTable,
|
'table': DeviceTypeTable,
|
||||||
@ -100,7 +96,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
}),
|
}),
|
||||||
('virtualchassis', {
|
('virtualchassis', {
|
||||||
'queryset': VirtualChassis.objects.prefetch_related('master').annotate(
|
'queryset': VirtualChassis.objects.prefetch_related('master').annotate(
|
||||||
member_count=Count('members')
|
member_count=Count('members', distinct=True)
|
||||||
).order_by(*VirtualChassis._meta.ordering),
|
).order_by(*VirtualChassis._meta.ordering),
|
||||||
'filterset': VirtualChassisFilterSet,
|
'filterset': VirtualChassisFilterSet,
|
||||||
'table': VirtualChassisTable,
|
'table': VirtualChassisTable,
|
||||||
|
Loading…
Reference in New Issue
Block a user