Skip to content
Snippets Groups Projects
Commit 6f6debad authored by Parbhat Puri's avatar Parbhat Puri Committed by Fredrik Jonsson
Browse files

filter by fund - Filters submissions by specified fund and lab, allows multiple

parent ac4f563c
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,9 @@ from django.core.exceptions import PermissionDenied as DjangoPermissionDenied ...@@ -2,6 +2,9 @@ from django.core.exceptions import PermissionDenied as DjangoPermissionDenied
from django.db import transaction from django.db import transaction
from django.db.models import Q, Prefetch from django.db.models import Q, Prefetch
from django.utils import timezone from django.utils import timezone
from wagtail.core.models import Page
from rest_framework import generics, mixins, permissions from rest_framework import generics, mixins, permissions
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.exceptions import (NotFound, PermissionDenied, from rest_framework.exceptions import (NotFound, PermissionDenied,
...@@ -13,6 +16,7 @@ from opentech.apply.activity.models import Activity, COMMENT ...@@ -13,6 +16,7 @@ from opentech.apply.activity.models import Activity, COMMENT
from opentech.apply.activity.messaging import messenger, MESSAGES from opentech.apply.activity.messaging import messenger, MESSAGES
from opentech.apply.determinations.views import DeterminationCreateOrUpdateView from opentech.apply.determinations.views import DeterminationCreateOrUpdateView
from opentech.apply.review.models import Review from opentech.apply.review.models import Review
from opentech.apply.funds.models import FundType, LabType
from .models import ApplicationSubmission, RoundsAndLabs from .models import ApplicationSubmission, RoundsAndLabs
from .serializers import ( from .serializers import (
...@@ -42,10 +46,14 @@ class SubmissionsFilter(filters.FilterSet): ...@@ -42,10 +46,14 @@ class SubmissionsFilter(filters.FilterSet):
status = filters.MultipleChoiceFilter(choices=PHASES) status = filters.MultipleChoiceFilter(choices=PHASES)
active = filters.BooleanFilter(method='filter_active', label='Active') active = filters.BooleanFilter(method='filter_active', label='Active')
submit_date = filters.DateFromToRangeFilter(name='submit_time', label='Submit date') 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: class Meta:
model = ApplicationSubmission model = ApplicationSubmission
fields = ('status', 'round', 'active', 'submit_date', ) fields = ('status', 'round', 'active', 'submit_date', 'fund', )
def filter_active(self, qs, name, value): def filter_active(self, qs, name, value):
if value is None: if value is None:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment