Просмотр исходного кода

Add q filters for Token and ObjectPermission filter sets

jeremystretch 4 лет назад
Родитель
Сommit
467fa5a847
1 измененных файлов с 20 добавлено и 0 удалено
  1. 20 0
      netbox/users/filtersets.py

+ 20 - 0
netbox/users/filtersets.py

@@ -99,8 +99,20 @@ class TokenFilterSet(BaseFilterSet):
         model = Token
         model = Token
         fields = ['id', 'key', 'write_enabled']
         fields = ['id', 'key', 'write_enabled']
 
 
+    def search(self, queryset, name, value):
+        if not value.strip():
+            return queryset
+        return queryset.filter(
+            Q(user__username__icontains=value) |
+            Q(description__icontains=value)
+        )
+
 
 
 class ObjectPermissionFilterSet(BaseFilterSet):
 class ObjectPermissionFilterSet(BaseFilterSet):
+    q = django_filters.CharFilter(
+        method='search',
+        label='Search',
+    )
     user_id = django_filters.ModelMultipleChoiceFilter(
     user_id = django_filters.ModelMultipleChoiceFilter(
         field_name='users',
         field_name='users',
         queryset=User.objects.all(),
         queryset=User.objects.all(),
@@ -127,3 +139,11 @@ class ObjectPermissionFilterSet(BaseFilterSet):
     class Meta:
     class Meta:
         model = ObjectPermission
         model = ObjectPermission
         fields = ['id', 'name', 'enabled', 'object_types']
         fields = ['id', 'name', 'enabled', 'object_types']
+
+    def search(self, queryset, name, value):
+        if not value.strip():
+            return queryset
+        return queryset.filter(
+            Q(name__icontains=value) |
+            Q(description__icontains=value)
+        )