2
0
Эх сурвалжийг харах

Extend depth & children filters

jeremystretch 4 жил өмнө
parent
commit
103730a642

+ 2 - 2
netbox/ipam/filtersets.py

@@ -209,10 +209,10 @@ class PrefixFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
         method='search_contains',
         label='Prefixes which contain this prefix or IP',
     )
-    depth = django_filters.NumberFilter(
+    depth = MultiValueNumberFilter(
         field_name='_depth'
     )
-    children = django_filters.NumberFilter(
+    children = MultiValueNumberFilter(
         field_name='_children'
     )
     mask_length = django_filters.NumberFilter(

+ 14 - 1
netbox/ipam/tests/test_filtersets.py

@@ -400,7 +400,8 @@ class PrefixTestCase(TestCase, ChangeLoggedFilterSetTests):
             Prefix(prefix='10.0.0.0/16'),
             Prefix(prefix='2001:db8::/32'),
         )
-        Prefix.objects.bulk_create(prefixes)
+        for prefix in prefixes:
+            prefix.save()
 
     def test_family(self):
         params = {'family': '6'}
@@ -431,6 +432,18 @@ class PrefixTestCase(TestCase, ChangeLoggedFilterSetTests):
         params = {'contains': '2001:db8:0:1::/64'}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
+    def test_depth(self):
+        params = {'depth': '0'}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
+        params = {'depth__gt': '0'}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
+    def test_children(self):
+        params = {'children': '0'}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
+        params = {'children__gt': '0'}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
     def test_mask_length(self):
         params = {'mask_length': '24'}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)