diff --git a/taiga/projects/tasks/api.py b/taiga/projects/tasks/api.py index 3e87945b..027a981d 100644 --- a/taiga/projects/tasks/api.py +++ b/taiga/projects/tasks/api.py @@ -42,7 +42,8 @@ from . import services class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin, ModelCrudViewSet): model = models.Task - serializer_class = serializers.TaskSerializer + serializer_class = serializers.TaskNeighborsSerializer + list_serializer_class = serializers.TaskSerializer permission_classes = (IsAuthenticated, permissions.TaskPermission) filter_backends = (filters.IsProjectMemberFilterBackend,) filter_fields = ["user_story", "milestone", "project"] diff --git a/taiga/projects/tasks/serializers.py b/taiga/projects/tasks/serializers.py index a11eb486..a005e16b 100644 --- a/taiga/projects/tasks/serializers.py +++ b/taiga/projects/tasks/serializers.py @@ -16,7 +16,7 @@ from rest_framework import serializers -from taiga.base.serializers import PickleField +from taiga.base.serializers import PickleField, NeighborsSerializerMixin from taiga.mdrender.service import render as mdrender from . import models @@ -46,3 +46,16 @@ class TaskSerializer(serializers.ModelSerializer): def get_description_html(self, obj): return mdrender(obj.project, obj.description) + + +class TaskNeighborsSerializer(NeighborsSerializerMixin, TaskSerializer): + + def serialize_neighbor(self, neighbor): + return NeighborTaskSerializer(neighbor).data + + +class NeighborTaskSerializer(serializers.ModelSerializer): + class Meta: + model = models.Task + fields = ("id", "ref", "subject") + depth = 0