diff --git a/greenmine/scrum/api.py b/greenmine/scrum/api.py index 358e3c79..8df5914c 100644 --- a/greenmine/scrum/api.py +++ b/greenmine/scrum/api.py @@ -1,9 +1,18 @@ +import django_filters + from rest_framework import generics from greenmine.scrum.serializers import * from greenmine.scrum.models import * from greenmine.scrum.permissions import * +class UserStoryFilter(django_filters.FilterSet): + no_milestone = django_filters.NumberFilter(name="milestone", lookup_type='isnull') + + class Meta: + model = UserStory + fields = ['project', 'milestone', 'no_milestone'] + class SimpleFilterMixin(object): filter_fields = [] filter_special_fields = [] @@ -69,7 +78,7 @@ class MilestoneDetail(generics.RetrieveUpdateDestroyAPIView): class UserStoryList(generics.ListCreateAPIView): model = UserStory serializer_class = UserStorySerializer - filter_fields = ('project', 'milestone') + filter_class = UserStoryFilter def get_queryset(self): return self.model.objects.filter(project__members=self.request.user) @@ -154,7 +163,7 @@ class TaskDetail(generics.RetrieveUpdateDestroyAPIView): class IssueList(generics.ListCreateAPIView): model = Issue serializer_class = IssueSerializer - #filter_fields = ('project') + filter_fields = ('project',) def pre_save(self, obj): obj.owner = self.request.user diff --git a/greenmine/settings/common.py b/greenmine/settings/common.py index fc205e79..52655aff 100644 --- a/greenmine/settings/common.py +++ b/greenmine/settings/common.py @@ -168,7 +168,7 @@ MIDDLEWARE_CLASSES = [ 'greenmine.base.middleware.CoorsMiddleware', #'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', - #'django.contrib.messages.middleware.MessageMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', #'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.transaction.TransactionMiddleware', 'reversion.middleware.RevisionMiddleware',