From ed01cbd3a799143c5b53c8f4348de21bbe19de03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Wed, 11 Mar 2015 17:02:36 +0100 Subject: [PATCH] BUG#2390 Allowing to filter projects by membership --- taiga/base/filters.py | 5 ++++- taiga/projects/api.py | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/taiga/base/filters.py b/taiga/base/filters.py index 12651e6f..a5d74112 100644 --- a/taiga/base/filters.py +++ b/taiga/base/filters.py @@ -57,7 +57,10 @@ class QueryParamsFilterMixin(filters.BaseFilterBackend): query_params[field_name] = field_data if query_params: - queryset = queryset.filter(**query_params) + try: + queryset = queryset.filter(**query_params) + except ValueError: + raise exc.BadRequest("Error in filter params types.") return queryset diff --git a/taiga/projects/api.py b/taiga/projects/api.py index 55febb1d..530ac27b 100644 --- a/taiga/projects/api.py +++ b/taiga/projects/api.py @@ -57,6 +57,7 @@ class ProjectViewSet(ModelCrudViewSet): list_serializer_class = serializers.ProjectSerializer permission_classes = (permissions.ProjectPermission, ) filter_backends = (filters.CanViewProjectObjFilterBackend,) + filter_fields = (('member', 'members'),) def get_queryset(self): qs = models.Project.objects.all() @@ -402,7 +403,7 @@ class MembershipViewSet(ModelCrudViewSet): # Creation if self.request.method == 'POST': return self.admin_serializer_class - + return self.serializer_class project = get_object_or_404(models.Project, pk=project_id)