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):
|
class IssueViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
|
||||||
serializer_class = serializers.IssueNeighborsSerializer
|
|
||||||
list_serializer_class = serializers.IssueSerializer
|
|
||||||
permission_classes = (permissions.IssuePermission, )
|
permission_classes = (permissions.IssuePermission, )
|
||||||
|
|
||||||
filter_backends = (filters.CanViewIssuesFilterBackend,
|
filter_backends = (filters.CanViewIssuesFilterBackend,
|
||||||
filters.OwnersFilter,
|
filters.OwnersFilter,
|
||||||
filters.AssignedToFilter,
|
filters.AssignedToFilter,
|
||||||
|
@ -78,6 +75,12 @@ class IssueViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
|
||||||
"assigned_to",
|
"assigned_to",
|
||||||
"subject")
|
"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):
|
def update(self, request, *args, **kwargs):
|
||||||
self.object = self.get_object_or_none()
|
self.object = self.get_object_or_none()
|
||||||
project_id = request.DATA.get('project', 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,
|
status=project.default_issue_status, severity=project.default_severity,
|
||||||
priority=project.default_priority, type=project.default_issue_type,
|
priority=project.default_priority, type=project.default_issue_type,
|
||||||
callback=self.post_save, precall=self.pre_save)
|
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)
|
return response.Ok(data=issues_serialized.data)
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,17 @@ from . import services
|
||||||
|
|
||||||
class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
|
class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
|
||||||
model = models.Task
|
model = models.Task
|
||||||
serializer_class = serializers.TaskNeighborsSerializer
|
|
||||||
list_serializer_class = serializers.TaskSerializer
|
|
||||||
permission_classes = (permissions.TaskPermission,)
|
permission_classes = (permissions.TaskPermission,)
|
||||||
filter_backends = (filters.CanViewTasksFilterBackend,)
|
filter_backends = (filters.CanViewTasksFilterBackend,)
|
||||||
filter_fields = ["user_story", "milestone", "project", "assigned_to",
|
filter_fields = ["user_story", "milestone", "project", "assigned_to",
|
||||||
"status__is_closed", "watchers"]
|
"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):
|
def update(self, request, *args, **kwargs):
|
||||||
self.object = self.get_object_or_none()
|
self.object = self.get_object_or_none()
|
||||||
project_id = request.DATA.get('project', 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"],
|
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,
|
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)
|
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)
|
return response.Ok(tasks_serialized.data)
|
||||||
|
|
||||||
|
|
|
@ -46,8 +46,6 @@ from . import services
|
||||||
|
|
||||||
class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
|
class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet):
|
||||||
model = models.UserStory
|
model = models.UserStory
|
||||||
serializer_class = serializers.UserStoryNeighborsSerializer
|
|
||||||
list_serializer_class = serializers.UserStorySerializer
|
|
||||||
permission_classes = (permissions.UserStoryPermission,)
|
permission_classes = (permissions.UserStoryPermission,)
|
||||||
filter_backends = (filters.CanViewUsFilterBackend,
|
filter_backends = (filters.CanViewUsFilterBackend,
|
||||||
filters.OwnersFilter,
|
filters.OwnersFilter,
|
||||||
|
@ -74,6 +72,12 @@ class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMi
|
||||||
# Specific filter used for filtering neighbor user stories
|
# Specific filter used for filtering neighbor user stories
|
||||||
_neighbor_tags_filter = filters.TagsFilter('neighbor_tags')
|
_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):
|
def update(self, request, *args, **kwargs):
|
||||||
self.object = self.get_object_or_none()
|
self.object = self.get_object_or_none()
|
||||||
project_id = request.DATA.get('project', 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,
|
data["bulk_stories"], project=project, owner=request.user,
|
||||||
status_id=data.get("status_id") or project.default_us_status_id,
|
status_id=data.get("status_id") or project.default_us_status_id,
|
||||||
callback=self.post_save, precall=self.pre_save)
|
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.Ok(user_stories_serialized.data)
|
||||||
return response.BadRequest(serializer.errors)
|
return response.BadRequest(serializer.errors)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue