diff --git a/taiga/projects/tasks/api.py b/taiga/projects/tasks/api.py index 9584a17b..5f9a06ae 100644 --- a/taiga/projects/tasks/api.py +++ b/taiga/projects/tasks/api.py @@ -79,6 +79,7 @@ class TaskViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin, def get_queryset(self): qs = super().get_queryset() qs = qs.select_related("milestone", + "user_story", "project", "status", "owner", diff --git a/taiga/projects/tasks/serializers.py b/taiga/projects/tasks/serializers.py index b7232cf8..358b88ee 100644 --- a/taiga/projects/tasks/serializers.py +++ b/taiga/projects/tasks/serializers.py @@ -29,6 +29,17 @@ from taiga.projects.notifications.mixins import WatchedResourceSerializer from taiga.projects.tagging.serializers import TaggedInProjectResourceSerializer from taiga.projects.votes.mixins.serializers import VoteResourceSerializerMixin +class UserStoryExtraInfoSerializer(serializers.LightSerializer): + id = Field() + ref = Field() + subject = Field() + + def to_value(self, instance): + if instance is None: + return None + + return super().to_value(instance) + class TaskListSerializer(VoteResourceSerializerMixin, WatchedResourceSerializer, OwnerExtraInfoSerializerMixin, AssignedToExtraInfoSerializerMixin, @@ -54,6 +65,7 @@ class TaskListSerializer(VoteResourceSerializerMixin, WatchedResourceSerializer, is_blocked = Field() blocked_note = Field() is_closed = MethodField() + user_story_extra_info = UserStoryExtraInfoSerializer(attr="user_story") def get_milestone_slug(self, obj): return obj.milestone.slug if obj.milestone else None