Преглед изворни кода

Merge pull request #6473 from rodvand/develop

Closes #6358: Add search to VLAN group overview.
Jeremy Stretch пре 4 година
родитељ
комит
c8c47961db
2 измењених фајлова са 17 додато и 0 уклоњено
  1. 13 0
      netbox/ipam/filtersets.py
  2. 4 0
      netbox/ipam/forms.py

+ 13 - 0
netbox/ipam/filtersets.py

@@ -536,6 +536,10 @@ class IPAddressFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
 
 
 class VLANGroupFilterSet(OrganizationalModelFilterSet):
+    q = django_filters.CharFilter(
+        method='search',
+        label='Search',
+    )
     scope_type = ContentTypeFilter()
     region = django_filters.NumberFilter(
         method='filter_scope'
@@ -563,6 +567,15 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet):
         model = VLANGroup
         fields = ['id', 'name', 'slug', 'description', 'scope_id']
 
+    def search(self, queryset, name, value):
+        if not value.strip():
+            return queryset
+        qs_filter = (
+            Q(name__icontains=value) |
+            Q(description__icontains=value)
+        )
+        return queryset.filter(qs_filter)
+
     def filter_scope(self, queryset, name, value):
         return queryset.filter(
             scope_type=ContentType.objects.get(model=name),

+ 4 - 0
netbox/ipam/forms.py

@@ -1270,6 +1270,10 @@ class VLANGroupBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
 
 
 class VLANGroupFilterForm(BootstrapMixin, forms.Form):
+    q = forms.CharField(
+        required=False,
+        label=_('Search')
+    )
     region = DynamicModelMultipleChoiceField(
         queryset=Region.objects.all(),
         required=False,