Skip to content

Commit

Permalink
Adding neighbors info only in GET requests to API
Browse files Browse the repository at this point in the history
  • Loading branch information
superalex committed Jul 28, 2015
1 parent 9bc0e97 commit 64b6366
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
11 changes: 7 additions & 4 deletions taiga/projects/issues/api.py
Expand Up @@ -43,10 +43,7 @@


class IssueViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
serializer_class = serializers.IssueNeighborsSerializer
list_serializer_class = serializers.IssueSerializer
permission_classes = (permissions.IssuePermission, )

filter_backends = (filters.CanViewIssuesFilterBackend,
filters.OwnersFilter,
filters.AssignedToFilter,
Expand Down Expand Up @@ -78,6 +75,12 @@ class IssueViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
"assigned_to",
"subject")

def get_serializer_class(self, *args, **kwargs):
if self.action in ["retrieve", "by_ref"]:
return serializers.IssueNeighborsSerializer

return serializers.IssueSerializer

def update(self, request, *args, **kwargs):
self.object = self.get_object_or_none()
project_id = request.DATA.get('project', None)
Expand Down Expand Up @@ -225,7 +228,7 @@ def bulk_create(self, request, **kwargs):
status=project.default_issue_status, severity=project.default_severity,
priority=project.default_priority, type=project.default_issue_type,
callback=self.post_save, precall=self.pre_save)
issues_serialized = self.serializer_class(issues, many=True)
issues_serialized = self.get_serializer_class()(issues, many=True)

return response.Ok(data=issues_serialized.data)

Expand Down
10 changes: 7 additions & 3 deletions taiga/projects/tasks/api.py
Expand Up @@ -37,13 +37,17 @@

class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
model = models.Task
serializer_class = serializers.TaskNeighborsSerializer
list_serializer_class = serializers.TaskSerializer
permission_classes = (permissions.TaskPermission,)
filter_backends = (filters.CanViewTasksFilterBackend,)
filter_fields = ["user_story", "milestone", "project", "assigned_to",
"status__is_closed", "watchers"]

def get_serializer_class(self, *args, **kwargs):
if self.action in ["retrieve", "by_ref"]:
return serializers.TaskNeighborsSerializer

return serializers.TaskSerializer

def update(self, request, *args, **kwargs):
self.object = self.get_object_or_none()
project_id = request.DATA.get('project', None)
Expand Down Expand Up @@ -129,7 +133,7 @@ def bulk_create(self, request, **kwargs):
data["bulk_tasks"], milestone_id=data["sprint_id"], user_story_id=data["us_id"],
status_id=data.get("status_id") or project.default_task_status_id,
project=project, owner=request.user, callback=self.post_save, precall=self.pre_save)
tasks_serialized = self.serializer_class(tasks, many=True)
tasks_serialized = self.get_serializer_class()(tasks, many=True)

return response.Ok(tasks_serialized.data)

Expand Down
10 changes: 7 additions & 3 deletions taiga/projects/userstories/api.py
Expand Up @@ -46,8 +46,6 @@

class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
model = models.UserStory
serializer_class = serializers.UserStoryNeighborsSerializer
list_serializer_class = serializers.UserStorySerializer
permission_classes = (permissions.UserStoryPermission,)
filter_backends = (filters.CanViewUsFilterBackend,
filters.OwnersFilter,
Expand All @@ -74,6 +72,12 @@ class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMi
# Specific filter used for filtering neighbor user stories
_neighbor_tags_filter = filters.TagsFilter('neighbor_tags')

def get_serializer_class(self, *args, **kwargs):
if self.action in ["retrieve", "by_ref"]:
return serializers.UserStoryNeighborsSerializer

return serializers.UserStorySerializer

def update(self, request, *args, **kwargs):
self.object = self.get_object_or_none()
project_id = request.DATA.get('project', None)
Expand Down Expand Up @@ -201,7 +205,7 @@ def bulk_create(self, request, **kwargs):
data["bulk_stories"], project=project, owner=request.user,
status_id=data.get("status_id") or project.default_us_status_id,
callback=self.post_save, precall=self.pre_save)
user_stories_serialized = self.serializer_class(user_stories, many=True)
user_stories_serialized = self.get_serializer_class()(user_stories, many=True)
return response.Ok(user_stories_serialized.data)
return response.BadRequest(serializer.errors)

Expand Down

0 comments on commit 64b6366

Please sign in to comment.