mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -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',
|
to_field_name='slug',
|
||||||
label='Group (slug)',
|
label='Group (slug)',
|
||||||
)
|
)
|
||||||
asn_id = django_filters.ModelMultipleChoiceFilter(
|
asns_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='asns',
|
field_name='asns',
|
||||||
queryset=ASN.objects.all(),
|
queryset=ASN.objects.all(),
|
||||||
label='AS (ID)',
|
label='AS (ID)',
|
||||||
)
|
)
|
||||||
asn = django_filters.ModelMultipleChoiceFilter(
|
asns = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='asns__asn',
|
field_name='asns__asn',
|
||||||
queryset=ASN.objects.all(),
|
queryset=ASN.objects.all(),
|
||||||
to_field_name='asn',
|
to_field_name='asn',
|
||||||
@ -147,7 +147,7 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Site
|
model = Site
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'name', 'slug', 'facility', 'latitude', 'longitude', 'contact_name', 'contact_phone',
|
'id', 'name', 'slug', 'facility', 'asn', 'latitude', 'longitude', 'contact_name', 'contact_phone',
|
||||||
'contact_email',
|
'contact_email',
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
qs_filter |= Q(asn=int(value.strip()))
|
qs_filter |= Q(asn=int(value.strip()))
|
||||||
qs_filter |= Q(asns=int(value.strip()))
|
qs_filter |= Q(asns__asn=int(value.strip()))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
@ -182,6 +182,10 @@ class SiteTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
params = {'asn': [65001, 65002]}
|
params = {'asn': [65001, 65002]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
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):
|
def test_latitude(self):
|
||||||
params = {'latitude': [10, 20]}
|
params = {'latitude': [10, 20]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
@ -347,20 +347,6 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
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 = (
|
manufacturers = (
|
||||||
Manufacturer(name='Manufacturer 1', slug='manufacturer-1'),
|
Manufacturer(name='Manufacturer 1', slug='manufacturer-1'),
|
||||||
Manufacturer(name='Manufacturer 2', slug='manufacturer-2'),
|
Manufacturer(name='Manufacturer 2', slug='manufacturer-2'),
|
||||||
@ -398,9 +384,9 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
|||||||
region.save()
|
region.save()
|
||||||
|
|
||||||
sites = (
|
sites = (
|
||||||
Site(name='Site 1', slug='abc-site-1', region=regions[0]),
|
Site(name='Site 1', slug='abc-site-1', region=regions[0], asn=65001),
|
||||||
Site(name='Site 2', slug='def-site-2', region=regions[1]),
|
Site(name='Site 2', slug='def-site-2', region=regions[1], asn=65101),
|
||||||
Site(name='Site 3', slug='ghi-site-3', region=regions[2]),
|
Site(name='Site 3', slug='ghi-site-3', region=regions[2], asn=65201),
|
||||||
)
|
)
|
||||||
Site.objects.bulk_create(sites)
|
Site.objects.bulk_create(sites)
|
||||||
|
|
||||||
@ -469,21 +455,21 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
|||||||
params = {'slug__niew': ['-1']}
|
params = {'slug__niew': ['-1']}
|
||||||
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
|
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_circuit_commit_lt(self):
|
def test_site_asn_lt(self):
|
||||||
params = {'commit_rate__lt': [10000]}
|
params = {'asn__lt': [65101]}
|
||||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 1)
|
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 1)
|
||||||
|
|
||||||
def test_circuit_commit_lte(self):
|
def test_site_asn_lte(self):
|
||||||
params = {'commit_rate__lte': [10000]}
|
params = {'asn__lte': [65101]}
|
||||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 2)
|
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_circuit_commit_gt(self):
|
def test_site_asn_gt(self):
|
||||||
params = {'commit_rate__gt': [10000]}
|
params = {'asn__lt': [65101]}
|
||||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 1)
|
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 1)
|
||||||
|
|
||||||
def test_circuit_commit_gte(self):
|
def test_site_asn_gte(self):
|
||||||
params = {'commit_rate__gte': [10000]}
|
params = {'asn__gte': [65101]}
|
||||||
self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 2)
|
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_site_region_negation(self):
|
def test_site_region_negation(self):
|
||||||
params = {'region__n': ['region-1']}
|
params = {'region__n': ['region-1']}
|
||||||
|
Loading…
Reference in New Issue
Block a user