BUG#2390 Allowing to filter projects by membership

remotes/origin/enhancement/email-actions
Jesús Espino 2015-03-11 17:02:36 +01:00
parent d3f9cfa4f5
commit ed01cbd3a7
2 changed files with 6 additions and 2 deletions

View File

@ -57,7 +57,10 @@ class QueryParamsFilterMixin(filters.BaseFilterBackend):
query_params[field_name] = field_data query_params[field_name] = field_data
if query_params: 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 return queryset

View File

@ -57,6 +57,7 @@ class ProjectViewSet(ModelCrudViewSet):
list_serializer_class = serializers.ProjectSerializer list_serializer_class = serializers.ProjectSerializer
permission_classes = (permissions.ProjectPermission, ) permission_classes = (permissions.ProjectPermission, )
filter_backends = (filters.CanViewProjectObjFilterBackend,) filter_backends = (filters.CanViewProjectObjFilterBackend,)
filter_fields = (('member', 'members'),)
def get_queryset(self): def get_queryset(self):
qs = models.Project.objects.all() qs = models.Project.objects.all()
@ -402,7 +403,7 @@ class MembershipViewSet(ModelCrudViewSet):
# Creation # Creation
if self.request.method == 'POST': if self.request.method == 'POST':
return self.admin_serializer_class return self.admin_serializer_class
return self.serializer_class return self.serializer_class
project = get_object_or_404(models.Project, pk=project_id) project = get_object_or_404(models.Project, pk=project_id)