summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/querysetfilter.py
blob: dbae2393700b3ec3d9a39ad3d3deb61c125572ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class QuerysetFilter(object):
    """ Filter for a queryset """

    def __init__(self, criteria=None):
        if criteria:
            self.set_criteria(criteria)

    def set_criteria(self, criteria = None):
        """
        criteria is an instance of django.db.models.Q;
        see https://docs.djangoproject.com/en/1.9/ref/models/querysets/#q-objects
        """
        self.criteria = criteria

    def filter(self, queryset):
        """
        Filter queryset according to the criteria for this filter,
        returning the filtered queryset
        """
        if self.criteria:
            return queryset.filter(self.criteria)
        else:
            return queryset

    def count(self, queryset):
        """ Returns a count of the elements in the filtered queryset """
        return self.filter(queryset).count()