Skip to content

Commit d9a7b4e

Browse files
committed
Fixes #15609: Fix filtering providers list by assigned ASN
1 parent 282dc7a commit d9a7b4e

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

netbox/circuits/filtersets.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ class ProviderFilterSet(NetBoxModelFilterSet, ContactModelFilterSet):
6464
queryset=ASN.objects.all(),
6565
label=_('ASN (ID)'),
6666
)
67+
asn = django_filters.ModelMultipleChoiceFilter(
68+
field_name='asns__asn',
69+
queryset=ASN.objects.all(),
70+
to_field_name='asn',
71+
label=_('ASN'),
72+
)
6773

6874
class Meta:
6975
model = Provider

netbox/circuits/forms/filtersets.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class ProviderFilterForm(ContactModelFilterForm, NetBoxModelFilterSetForm):
2424
fieldsets = (
2525
(None, ('q', 'filter_id', 'tag')),
2626
(_('Location'), ('region_id', 'site_group_id', 'site_id')),
27-
(_('ASN'), ('asn',)),
27+
(_('ASN'), ('asn_id',)),
2828
(_('Contacts'), ('contact', 'contact_role', 'contact_group')),
2929
)
3030
region_id = DynamicModelMultipleChoiceField(
@@ -46,10 +46,6 @@ class ProviderFilterForm(ContactModelFilterForm, NetBoxModelFilterSetForm):
4646
},
4747
label=_('Site')
4848
)
49-
asn = forms.IntegerField(
50-
required=False,
51-
label=_('ASN (legacy)')
52-
)
5349
asn_id = DynamicModelMultipleChoiceField(
5450
queryset=ASN.objects.all(),
5551
required=False,

netbox/circuits/tests/test_filtersets.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,12 @@ def test_description(self):
9090
params = {'description': ['foobar1', 'foobar2']}
9191
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
9292

93-
def test_asn_id(self): # ASN object assignment
93+
def test_asn(self):
9494
asns = ASN.objects.all()[:2]
9595
params = {'asn_id': [asns[0].pk, asns[1].pk]}
9696
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
97+
params = {'asn': [asns[0].asn, asns[1].asn]}
98+
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
9799

98100
def test_region(self):
99101
regions = Region.objects.all()[:2]

0 commit comments

Comments
 (0)