diff --git a/apps/pm/filters.py b/apps/pm/filters.py index df38d6f7..51b02a4f 100644 --- a/apps/pm/filters.py +++ b/apps/pm/filters.py @@ -6,6 +6,7 @@ from django.db.models import F class UtaskFilter(filters.FilterSet): + tag = filters.CharFilter(method='filter_tag', label='done, not_done') class Meta: model = Utask @@ -28,6 +29,13 @@ class UtaskFilter(filters.FilterSet): queryset = super().filter_queryset(queryset) return queryset.distinct() + def filter_tag(self, queryset, name, value): + if value == 'done': + queryset = queryset.filter(count_ok__gte=F('count')) + elif value == 'not_done': + queryset = queryset.filter(count_ok__lt=F('count')) + return queryset + class MtaskFilter(filters.FilterSet): tag = filters.CharFilter(method='filter_tag')