Parcourir la source

Restored search method on prefix filter

Jeremy Stretch il y a 7 ans
Parent
commit
c3e5106b04
1 fichiers modifiés avec 11 ajouts et 0 suppressions
  1. 11 0
      netbox/ipam/filters.py

+ 11 - 0
netbox/ipam/filters.py

@@ -167,6 +167,17 @@ class PrefixFilter(CustomFieldFilterSet, django_filters.FilterSet):
         model = Prefix
         model = Prefix
         fields = ['family', 'is_pool']
         fields = ['family', 'is_pool']
 
 
+    def search(self, queryset, name, value):
+        if not value.strip():
+            return queryset
+        qs_filter = Q(description__icontains=value)
+        try:
+            prefix = str(IPNetwork(value.strip()).cidr)
+            qs_filter |= Q(prefix__net_contains_or_equals=prefix)
+        except (AddrFormatError, ValueError):
+            pass
+        return queryset.filter(qs_filter)
+
     def search_within(self, queryset, name, value):
     def search_within(self, queryset, name, value):
         value = value.strip()
         value = value.strip()
         if not value:
         if not value: