diff --git a/opentech/apply/funds/api_views.py b/opentech/apply/funds/api_views.py index 55ad0c604a22f7f1ba47435dc14b2d8843c10038..1c2c1f3dd7eb81dfbcf9811c90ec006f1da7fb15 100644 --- a/opentech/apply/funds/api_views.py +++ b/opentech/apply/funds/api_views.py @@ -2,6 +2,9 @@ from django.core.exceptions import PermissionDenied as DjangoPermissionDenied from django.db import transaction from django.db.models import Q, Prefetch from django.utils import timezone + +from wagtail.core.models import Page + from rest_framework import generics, mixins, permissions from rest_framework.response import Response from rest_framework.exceptions import (NotFound, PermissionDenied, @@ -13,6 +16,7 @@ from opentech.apply.activity.models import Activity, COMMENT from opentech.apply.activity.messaging import messenger, MESSAGES from opentech.apply.determinations.views import DeterminationCreateOrUpdateView from opentech.apply.review.models import Review +from opentech.apply.funds.models import FundType, LabType from .models import ApplicationSubmission, RoundsAndLabs from .serializers import ( @@ -40,13 +44,18 @@ class RoundLabFilter(filters.ModelChoiceFilter): class SubmissionsFilter(filters.FilterSet): round = RoundLabFilter(queryset=RoundsAndLabs.objects.all()) status = filters.MultipleChoiceFilter(choices=PHASES) - active = filters.BooleanFilter(method='filter_active') + active = filters.BooleanFilter(method='filter_active', label='Active') + submit_date = filters.DateFromToRangeFilter(name='submit_time', label='Submit date') + fund = filters.ModelMultipleChoiceFilter( + name='page', label='fund', + queryset=Page.objects.type(FundType) | Page.objects.type(LabType) + ) class Meta: model = ApplicationSubmission - fields = ('status', 'round', 'active') + fields = ('status', 'round', 'active', 'submit_date', 'fund', ) - def filter_active(self, value): + def filter_active(self, qs, name, value): if value is None: return qs