From d9a7b4ee0ebb225b5239306ec94b6f369956be9b Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 3 Apr 2024 16:04:41 -0400 Subject: [PATCH] Fixes #15609: Fix filtering providers list by assigned ASN --- netbox/circuits/filtersets.py | 6 ++++++ netbox/circuits/forms/filtersets.py | 6 +----- netbox/circuits/tests/test_filtersets.py | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/netbox/circuits/filtersets.py b/netbox/circuits/filtersets.py index 97be1cf57..9a14b5286 100644 --- a/netbox/circuits/filtersets.py +++ b/netbox/circuits/filtersets.py @@ -64,6 +64,12 @@ class ProviderFilterSet(NetBoxModelFilterSet, ContactModelFilterSet): queryset=ASN.objects.all(), label=_('ASN (ID)'), ) + asn = django_filters.ModelMultipleChoiceFilter( + field_name='asns__asn', + queryset=ASN.objects.all(), + to_field_name='asn', + label=_('ASN'), + ) class Meta: model = Provider diff --git a/netbox/circuits/forms/filtersets.py b/netbox/circuits/forms/filtersets.py index 1e1abd068..8f730ba10 100644 --- a/netbox/circuits/forms/filtersets.py +++ b/netbox/circuits/forms/filtersets.py @@ -24,7 +24,7 @@ class ProviderFilterForm(ContactModelFilterForm, NetBoxModelFilterSetForm): fieldsets = ( (None, ('q', 'filter_id', 'tag')), (_('Location'), ('region_id', 'site_group_id', 'site_id')), - (_('ASN'), ('asn',)), + (_('ASN'), ('asn_id',)), (_('Contacts'), ('contact', 'contact_role', 'contact_group')), ) region_id = DynamicModelMultipleChoiceField( @@ -46,10 +46,6 @@ class ProviderFilterForm(ContactModelFilterForm, NetBoxModelFilterSetForm): }, label=_('Site') ) - asn = forms.IntegerField( - required=False, - label=_('ASN (legacy)') - ) asn_id = DynamicModelMultipleChoiceField( queryset=ASN.objects.all(), required=False, diff --git a/netbox/circuits/tests/test_filtersets.py b/netbox/circuits/tests/test_filtersets.py index 6553179ec..ae9de03e9 100644 --- a/netbox/circuits/tests/test_filtersets.py +++ b/netbox/circuits/tests/test_filtersets.py @@ -90,10 +90,12 @@ class ProviderTestCase(TestCase, ChangeLoggedFilterSetTests): params = {'description': ['foobar1', 'foobar2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_asn_id(self): # ASN object assignment + def test_asn(self): asns = ASN.objects.all()[:2] params = {'asn_id': [asns[0].pk, asns[1].pk]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + params = {'asn': [asns[0].asn, asns[1].asn]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_region(self): regions = Region.objects.all()[:2]