mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
#6732 - Add ASN back to filtersets
This commit is contained in:
parent
87e07e731d
commit
8c27ff3859
@ -131,12 +131,12 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||
to_field_name='slug',
|
||||
label='Group (slug)',
|
||||
)
|
||||
asn_id = django_filters.ModelMultipleChoiceFilter(
|
||||
asns_id = django_filters.ModelMultipleChoiceFilter(
|
||||
field_name='asns',
|
||||
queryset=ASN.objects.all(),
|
||||
label='AS (ID)',
|
||||
)
|
||||
asn = django_filters.ModelMultipleChoiceFilter(
|
||||
asns = django_filters.ModelMultipleChoiceFilter(
|
||||
field_name='asns__asn',
|
||||
queryset=ASN.objects.all(),
|
||||
to_field_name='asn',
|
||||
@ -147,7 +147,7 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||
class Meta:
|
||||
model = Site
|
||||
fields = [
|
||||
'id', 'name', 'slug', 'facility', 'latitude', 'longitude', 'contact_name', 'contact_phone',
|
||||
'id', 'name', 'slug', 'facility', 'asn', 'latitude', 'longitude', 'contact_name', 'contact_phone',
|
||||
'contact_email',
|
||||
]
|
||||
|
||||
@ -167,7 +167,7 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||
)
|
||||
try:
|
||||
qs_filter |= Q(asn=int(value.strip()))
|
||||
qs_filter |= Q(asns=int(value.strip()))
|
||||
qs_filter |= Q(asns__asn=int(value.strip()))
|
||||
except ValueError:
|
||||
pass
|
||||
return queryset.filter(qs_filter)
|
||||
|
@ -182,6 +182,10 @@ class SiteTestCase(TestCase, ChangeLoggedFilterSetTests):
|
||||
params = {'asn': [65001, 65002]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
|
||||
def test_asns(self):
|
||||
params = {'asns': [65001, 65002]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
|
||||
def test_latitude(self):
|
||||
params = {'latitude': [10, 20]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
|
@ -347,20 +347,6 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
|
||||
provider = Provider.objects.create(name='Test Provider', slug='test-provider')
|
||||
circuit_type = CircuitType.objects.create(name='Test Circuit Type', slug='test-circuit-type')
|
||||
|
||||
circuits = (
|
||||
Circuit(cid='CID12123', provider=provider, type=circuit_type,
|
||||
status=CircuitStatusChoices.STATUS_ACTIVE, commit_rate=1000),
|
||||
Circuit(cid='CID12124', provider=provider, type=circuit_type,
|
||||
status=CircuitStatusChoices.STATUS_ACTIVE, commit_rate=10000),
|
||||
Circuit(cid='CID12125', provider=provider, type=circuit_type,
|
||||
status=CircuitStatusChoices.STATUS_ACTIVE, commit_rate=100000)
|
||||
|
||||
)
|
||||
Circuit.objects.bulk_create(circuits)
|
||||
|
||||
manufacturers = (
|
||||
Manufacturer(name='Manufacturer 1', slug='manufacturer-1'),
|
||||
Manufacturer(name='Manufacturer 2', slug='manufacturer-2'),
|
||||
@ -398,9 +384,9 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
||||
region.save()
|
||||
|
||||
sites = (
|
||||
Site(name='Site 1', slug='abc-site-1', region=regions[0]),
|
||||
Site(name='Site 2', slug='def-site-2', region=regions[1]),
|
||||
Site(name='Site 3', slug='ghi-site-3', region=regions[2]),
|
||||
Site(name='Site 1', slug='abc-site-1', region=regions[0], asn=65001),
|
||||
Site(name='Site 2', slug='def-site-2', region=regions[1], asn=65101),
|
||||
Site(name='Site 3', slug='ghi-site-3', region=regions[2], asn=65201),
|
||||
)
|
||||
Site.objects.bulk_create(sites)
|
||||
|
||||
@ -469,21 +455,21 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
||||
params = {'slug__niew': ['-1']}
|
||||
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
|
||||
|
||||
def test_circuit_commit_lt(self):
|
||||
params = {'commit_rate__lt': [10000]}
|
||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 1)
|
||||
def test_site_asn_lt(self):
|
||||
params = {'asn__lt': [65101]}
|
||||
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 1)
|
||||
|
||||
def test_circuit_commit_lte(self):
|
||||
params = {'commit_rate__lte': [10000]}
|
||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 2)
|
||||
def test_site_asn_lte(self):
|
||||
params = {'asn__lte': [65101]}
|
||||
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
|
||||
|
||||
def test_circuit_commit_gt(self):
|
||||
params = {'commit_rate__gt': [10000]}
|
||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 1)
|
||||
def test_site_asn_gt(self):
|
||||
params = {'asn__lt': [65101]}
|
||||
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 1)
|
||||
|
||||
def test_circuit_commit_gte(self):
|
||||
params = {'commit_rate__gte': [10000]}
|
||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 2)
|
||||
def test_site_asn_gte(self):
|
||||
params = {'asn__gte': [65101]}
|
||||
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
|
||||
|
||||
def test_site_region_negation(self):
|
||||
params = {'region__n': ['region-1']}
|
||||
|
Loading…
Reference in New Issue
Block a user