diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/querysetfilter.py')
-rw-r--r-- | bitbake/lib/toaster/toastergui/querysetfilter.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/bitbake/lib/toaster/toastergui/querysetfilter.py b/bitbake/lib/toaster/toastergui/querysetfilter.py new file mode 100644 index 0000000000..62297e9b89 --- /dev/null +++ b/bitbake/lib/toaster/toastergui/querysetfilter.py @@ -0,0 +1,24 @@ +class QuerysetFilter(object): + """ Filter for a queryset """ + + def __init__(self, criteria=None): + if criteria: + self.set_criteria(criteria) + + def set_criteria(self, criteria): + """ + 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 + """ + return queryset.filter(self.criteria) + + def count(self, queryset): + """ Returns a count of the elements in the filtered queryset """ + return self.filter(queryset).count() |