Source code for goat.filters
from django.db.models import Q, Count
import django_filters
from goat.models import *
[docs]class ConceptFilter(django_filters.FilterSet):
    name = django_filters.MethodFilter(action='lookup_name_in_parts')
    search = django_filters.CharFilter('search_sets__task_id')
    concept_type = django_filters.ModelChoiceFilter(queryset=Concept.objects.filter(instances__isnull=False))
[docs]    def lookup_name_in_parts(self, queryset, value):
        q = Q()
        for part in value.split():
            q &= Q(name__icontains=part)
        return queryset.filter(q)