Explorar o código

Fixes #8010: Allow filtering devices by multiple serial numbers

jeremystretch %!s(int64=4) %!d(string=hai) anos
pai
achega
7be6206d9d

+ 1 - 0
docs/release-notes/version-3.1.md

@@ -8,6 +8,7 @@
 * [#7996](https://github.com/netbox-community/netbox/issues/7996) - Show WWN field in interface creation form
 * [#7996](https://github.com/netbox-community/netbox/issues/7996) - Show WWN field in interface creation form
 * [#8001](https://github.com/netbox-community/netbox/issues/8001) - Correct verbose name for wireless LAN group model
 * [#8001](https://github.com/netbox-community/netbox/issues/8001) - Correct verbose name for wireless LAN group model
 * [#8005](https://github.com/netbox-community/netbox/issues/8005) - Fix contact email display
 * [#8005](https://github.com/netbox-community/netbox/issues/8005) - Fix contact email display
+* [#8010](https://github.com/netbox-community/netbox/issues/8010) - Allow filtering devices by multiple serial numbers
 
 
 ---
 ---
 
 

+ 1 - 1
netbox/dcim/filtersets.py

@@ -718,7 +718,7 @@ class DeviceFilterSet(PrimaryModelFilterSet, TenancyFilterSet, LocalConfigContex
         field_name='interfaces__mac_address',
         field_name='interfaces__mac_address',
         label='MAC address',
         label='MAC address',
     )
     )
-    serial = django_filters.CharFilter(
+    serial = MultiValueCharFilter(
         lookup_expr='iexact'
         lookup_expr='iexact'
     )
     )
     has_primary_ip = django_filters.BooleanFilter(
     has_primary_ip = django_filters.BooleanFilter(

+ 4 - 4
netbox/dcim/tests/test_filtersets.py

@@ -1420,10 +1420,10 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
     def test_serial(self):
     def test_serial(self):
-        params = {'serial': 'ABC'}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
-        params = {'serial': 'abc'}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
+        params = {'serial': ['ABC', 'DEF']}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'serial': ['abc', 'def']}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
     def test_has_primary_ip(self):
     def test_has_primary_ip(self):
         params = {'has_primary_ip': 'true'}
         params = {'has_primary_ip': 'true'}