From 3878b9919d9dfca8530d69a1609c09074815558d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Fri, 10 Jan 2014 23:50:45 +0100 Subject: [PATCH] Adding better ordering on owner and assigned_to values in issues --- greenmine/projects/issues/api.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/greenmine/projects/issues/api.py b/greenmine/projects/issues/api.py index 75fec3d4..4da11165 100644 --- a/greenmine/projects/issues/api.py +++ b/greenmine/projects/issues/api.py @@ -54,13 +54,26 @@ class IssuesFilter(filters.FilterBackend): return queryset +class IssuesOrdering(filters.FilterBackend): + def filter_queryset(self, request, queryset, view): + if 'order_by' in request.QUERY_PARAMS: + if request.QUERY_PARAMS['order_by'] == 'owner': + queryset = queryset.order_by('owner__first_name', 'owner__last_name') + elif request.QUERY_PARAMS['order_by'] == '-owner': + queryset = queryset.order_by('-owner__first_name', '-owner__last_name') + elif request.QUERY_PARAMS['order_by'] == 'assigned_to': + queryset = queryset.order_by('assigned_to__first_name', 'assigned_to__last_name') + elif request.QUERY_PARAMS['order_by'] == '-assigned_to': + queryset = queryset.order_by('-assigned_to__first_name', '-assigned_to__last_name') + return queryset + class IssueViewSet(NotificationSenderMixin, ModelCrudViewSet): model = models.Issue serializer_class = serializers.IssueSerializer permission_classes = (IsAuthenticated, permissions.IssuePermission) - filter_backends = (filters.IsProjectMemberFilterBackend, IssuesFilter) + filter_backends = (filters.IsProjectMemberFilterBackend, IssuesFilter, IssuesOrdering) filter_fields = ("project",) order_by_fields = ("severity", "status", "priority", "created_date", "modified_date", "owner", "assigned_to", "subject")