From dd4a1cd9e776278741444d56eb5d2fce3d79a959 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 6 Jul 2016 14:13:09 +0200 Subject: [PATCH] Improving by_ref endpoints and allowing to use the project slug --- taiga/projects/issues/api.py | 13 +++++++++++-- taiga/projects/tasks/api.py | 13 +++++++++++-- taiga/projects/userstories/api.py | 13 +++++++++++-- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/taiga/projects/issues/api.py b/taiga/projects/issues/api.py index f204fc13..093b3ad1 100644 --- a/taiga/projects/issues/api.py +++ b/taiga/projects/issues/api.py @@ -183,9 +183,18 @@ class IssueViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin, W @list_route(methods=["GET"]) def by_ref(self, request): - ref = request.QUERY_PARAMS.get("ref", None) + retrieve_kwargs = { + "ref": request.QUERY_PARAMS.get("ref", None) + } project_id = request.QUERY_PARAMS.get("project", None) - return self.retrieve(request, project_id=project_id, ref=ref) + if project_id is not None: + retrieve_kwargs["project_id"] = project_id + + project_slug = request.QUERY_PARAMS.get("project__slug", None) + if project_slug is not None: + retrieve_kwargs["project__slug"] = project_slug + + return self.retrieve(request, **retrieve_kwargs) @list_route(methods=["GET"]) def filters_data(self, request, *args, **kwargs): diff --git a/taiga/projects/tasks/api.py b/taiga/projects/tasks/api.py index bec134c5..3dc2bd32 100644 --- a/taiga/projects/tasks/api.py +++ b/taiga/projects/tasks/api.py @@ -163,9 +163,18 @@ class TaskViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin, @list_route(methods=["GET"]) def by_ref(self, request): - ref = request.QUERY_PARAMS.get("ref", None) + retrieve_kwargs = { + "ref": request.QUERY_PARAMS.get("ref", None) + } project_id = request.QUERY_PARAMS.get("project", None) - return self.retrieve(request, project_id=project_id, ref=ref) + if project_id is not None: + retrieve_kwargs["project_id"] = project_id + + project_slug = request.QUERY_PARAMS.get("project__slug", None) + if project_slug is not None: + retrieve_kwargs["project__slug"] = project_slug + + return self.retrieve(request, **retrieve_kwargs) @list_route(methods=["GET"]) def csv(self, request): diff --git a/taiga/projects/userstories/api.py b/taiga/projects/userstories/api.py index 47487e88..0e718d10 100644 --- a/taiga/projects/userstories/api.py +++ b/taiga/projects/userstories/api.py @@ -224,9 +224,18 @@ class UserStoryViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixi @list_route(methods=["GET"]) def by_ref(self, request): - ref = request.QUERY_PARAMS.get("ref", None) + retrieve_kwargs = { + "ref": request.QUERY_PARAMS.get("ref", None) + } project_id = request.QUERY_PARAMS.get("project", None) - return self.retrieve(request, project_id=project_id, ref=ref) + if project_id is not None: + retrieve_kwargs["project_id"] = project_id + + project_slug = request.QUERY_PARAMS.get("project__slug", None) + if project_slug is not None: + retrieve_kwargs["project__slug"] = project_slug + + return self.retrieve(request, **retrieve_kwargs) @list_route(methods=["GET"]) def csv(self, request):