Closes #358: Improved search of all objects

This commit is contained in:
Jeremy Stretch
2016-07-29 12:51:23 -04:00
parent 2daffdf087
commit 38aee33df0
29 changed files with 147 additions and 211 deletions

View File

@@ -1,10 +1,16 @@
import django_filters
from django.db.models import Q
from .models import Secret, SecretRole
from dcim.models import Device
class SecretFilter(django_filters.FilterSet):
q = django_filters.MethodFilter(
action='search',
label='Search',
)
role_id = django_filters.ModelMultipleChoiceFilter(
name='role',
queryset=SecretRole.objects.all(),
@@ -26,3 +32,9 @@ class SecretFilter(django_filters.FilterSet):
class Meta:
model = Secret
fields = ['name', 'role_id', 'role', 'device']
def search(self, queryset, value):
return queryset.filter(
Q(name__icontains=value) |
Q(device__name__icontains=value)
)