Merge pull request #407 from taigaio/calculating-neighbors-only-when-needed
Adding neighbors info only in GET requests to APIremotes/origin/enhancement/email-actions
commit
d62625136b
|
@ -43,10 +43,7 @@ from . import serializers
|
|||
|
||||
|
||||
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,
|
||||
|
@ -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)
|
||||
|
@ -225,7 +228,7 @@ class IssueViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
|
|||
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)
|
||||
|
||||
|
|
|
@ -37,13 +37,17 @@ from . import services
|
|||
|
||||
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)
|
||||
|
@ -129,7 +133,7 @@ class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
|
|||
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)
|
||||
|
||||
|
|
|
@ -46,8 +46,6 @@ from . import services
|
|||
|
||||
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,
|
||||
|
@ -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)
|
||||
|
@ -201,7 +205,7 @@ class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMi
|
|||
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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue