diff --git a/taiga/projects/issues/serializers.py b/taiga/projects/issues/serializers.py index 14cc93f3..fc43a8f8 100644 --- a/taiga/projects/issues/serializers.py +++ b/taiga/projects/issues/serializers.py @@ -23,6 +23,8 @@ from taiga.base.neighbors import NeighborsSerializerMixin from taiga.mdrender.service import render as mdrender from taiga.projects.validators import ProjectExistsValidator from taiga.projects.notifications.validators import WatchersValidator +from taiga.projects.serializers import BasicIssueStatusSerializer +from taiga.users.serializers import BasicInfoSerializer as UserBasicInfoSerializer from . import models @@ -36,6 +38,8 @@ class IssueSerializer(WatchersValidator, serializers.ModelSerializer): blocked_note_html = serializers.SerializerMethodField("get_blocked_note_html") description_html = serializers.SerializerMethodField("get_description_html") votes = serializers.SerializerMethodField("get_votes_number") + status_extra_info = BasicIssueStatusSerializer(source="status", required=False, read_only=True) + assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", required=False, read_only=True) class Meta: model = models.Issue diff --git a/taiga/projects/serializers.py b/taiga/projects/serializers.py index 454849ba..be0489c0 100644 --- a/taiga/projects/serializers.py +++ b/taiga/projects/serializers.py @@ -93,6 +93,13 @@ class UserStoryStatusSerializer(serializers.ModelSerializer): return attrs +class BasicUserStoryStatusSerializer(serializers.ModelSerializer): + + class Meta: + model = models.UserStoryStatus + fields = ("name", "color") + + class TaskStatusSerializer(serializers.ModelSerializer): class Meta: model = models.TaskStatus @@ -116,6 +123,13 @@ class TaskStatusSerializer(serializers.ModelSerializer): return attrs +class BasicTaskStatusSerializerSerializer(serializers.ModelSerializer): + + class Meta: + model = models.TaskStatus + fields = ("name", "color") + + class SeveritySerializer(serializers.ModelSerializer): class Meta: model = models.Severity @@ -151,6 +165,13 @@ class IssueStatusSerializer(serializers.ModelSerializer): return attrs +class BasicIssueStatusSerializer(serializers.ModelSerializer): + + class Meta: + model = models.IssueStatus + fields = ("name", "color") + + class IssueTypeSerializer(serializers.ModelSerializer): class Meta: model = models.IssueType diff --git a/taiga/projects/tasks/serializers.py b/taiga/projects/tasks/serializers.py index 0b83daa3..0c8e436d 100644 --- a/taiga/projects/tasks/serializers.py +++ b/taiga/projects/tasks/serializers.py @@ -26,6 +26,8 @@ from taiga.projects.validators import ProjectExistsValidator from taiga.projects.milestones.validators import SprintExistsValidator from taiga.projects.tasks.validators import TaskExistsValidator from taiga.projects.notifications.validators import WatchersValidator +from taiga.projects.serializers import BasicTaskStatusSerializerSerializer +from taiga.users.serializers import BasicInfoSerializer as UserBasicInfoSerializer from . import models @@ -38,6 +40,8 @@ class TaskSerializer(WatchersValidator, serializers.ModelSerializer): blocked_note_html = serializers.SerializerMethodField("get_blocked_note_html") description_html = serializers.SerializerMethodField("get_description_html") is_closed = serializers.SerializerMethodField("get_is_closed") + status_extra_info = BasicTaskStatusSerializerSerializer(source="status", required=False, read_only=True) + assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", required=False, read_only=True) class Meta: model = models.Task diff --git a/taiga/projects/userstories/serializers.py b/taiga/projects/userstories/serializers.py index 7bfbef7e..1ad8dc87 100644 --- a/taiga/projects/userstories/serializers.py +++ b/taiga/projects/userstories/serializers.py @@ -26,6 +26,8 @@ from taiga.projects.validators import ProjectExistsValidator from taiga.projects.validators import UserStoryStatusExistsValidator from taiga.projects.userstories.validators import UserStoryExistsValidator from taiga.projects.notifications.validators import WatchersValidator +from taiga.projects.serializers import UserStoryStatusSerializer +from taiga.users.serializers import BasicInfoSerializer as UserBasicInfoSerializer from . import models @@ -51,6 +53,8 @@ class UserStorySerializer(WatchersValidator, serializers.ModelSerializer): origin_issue = serializers.SerializerMethodField("get_origin_issue") blocked_note_html = serializers.SerializerMethodField("get_blocked_note_html") description_html = serializers.SerializerMethodField("get_description_html") + status_extra_info = UserStoryStatusSerializer(source="status", required=False, read_only=True) + assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", required=False, read_only=True) class Meta: model = models.UserStory diff --git a/taiga/users/serializers.py b/taiga/users/serializers.py index 244d9218..1bb4dd00 100644 --- a/taiga/users/serializers.py +++ b/taiga/users/serializers.py @@ -108,6 +108,11 @@ class UserAdminSerializer(UserSerializer): read_only_fields = ("id", "email") +class BasicInfoSerializer(UserSerializer): + class Meta: + model = User + fields = ("username", "full_name_display","photo", "big_photo") + class RecoverySerializer(serializers.Serializer): token = serializers.CharField(max_length=200) password = serializers.CharField(min_length=6)