Browse Source

Restored search method on prefix filter

Jeremy Stretch 7 years ago
parent
commit
c3e5106b04
1 changed files with 11 additions and 0 deletions
  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
         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):
         value = value.strip()
         if not value: