From debf6417675167ce4a7f1f680a9429bdcbb205fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 18 Jun 2015 17:45:07 +0200 Subject: [PATCH] Make minor improvements over Membership and Project serializers --- taiga/projects/issues/serializers.py | 2 +- taiga/projects/serializers.py | 19 ++++++++----------- taiga/projects/tasks/serializers.py | 2 +- taiga/projects/userstories/serializers.py | 2 +- taiga/users/serializers.py | 3 ++- 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/taiga/projects/issues/serializers.py b/taiga/projects/issues/serializers.py index fc43a8f8..dd0d4ef5 100644 --- a/taiga/projects/issues/serializers.py +++ b/taiga/projects/issues/serializers.py @@ -24,7 +24,7 @@ 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 taiga.users.serializers import UserBasicInfoSerializer from . import models diff --git a/taiga/projects/serializers.py b/taiga/projects/serializers.py index 5aa7c019..5ca3e7f4 100644 --- a/taiga/projects/serializers.py +++ b/taiga/projects/serializers.py @@ -27,6 +27,7 @@ from taiga.base.fields import TagsColorsField from taiga.users.services import get_photo_or_gravatar_url from taiga.users.serializers import UserSerializer +from taiga.users.serializers import UserBasicInfoSerializer from taiga.users.serializers import ProjectRoleSerializer from taiga.users.validators import RoleExistsValidator @@ -197,7 +198,7 @@ class MembershipSerializer(serializers.ModelSerializer): photo = serializers.SerializerMethodField("get_photo") project_name = serializers.SerializerMethodField("get_project_name") project_slug = serializers.SerializerMethodField("get_project_slug") - invited_by = UserSerializer(read_only=True) + invited_by = UserBasicInfoSerializer(read_only=True) class Meta: model = models.Membership @@ -346,11 +347,11 @@ class ProjectSerializer(serializers.ModelSerializer): class ProjectDetailSerializer(ProjectSerializer): - roles = serializers.SerializerMethodField("get_roles") - memberships = serializers.SerializerMethodField("get_memberships") us_statuses = UserStoryStatusSerializer(many=True, required=False) # User Stories points = PointsSerializer(many=True, required=False) + task_statuses = TaskStatusSerializer(many=True, required=False) # Tasks + issue_statuses = IssueStatusSerializer(many=True, required=False) issue_types = IssueTypeSerializer(many=True, required=False) priorities = PrioritySerializer(many=True, required=False) # Issues @@ -362,7 +363,10 @@ class ProjectDetailSerializer(ProjectSerializer): many=True, required=False) issue_custom_attributes = IssueCustomAttributeSerializer(source="issuecustomattributes", many=True, required=False) - users = serializers.SerializerMethodField("get_users") + + roles = ProjectRoleSerializer(source="roles", many=True, read_only=True) + users = UserSerializer(source="members", many=True, read_only=True) + memberships = serializers.SerializerMethodField(method_name="get_memberships") def get_memberships(self, obj): qs = obj.memberships.filter(user__isnull=False) @@ -372,13 +376,6 @@ class ProjectDetailSerializer(ProjectSerializer): serializer = ProjectMembershipSerializer(qs, many=True) return serializer.data - def get_roles(self, obj): - serializer = ProjectRoleSerializer(obj.roles.all(), many=True) - return serializer.data - - def get_users(self, obj): - return UserSerializer(obj.members.all(), many=True).data - class ProjectDetailAdminSerializer(ProjectDetailSerializer): class Meta: diff --git a/taiga/projects/tasks/serializers.py b/taiga/projects/tasks/serializers.py index 0c8e436d..30a63d1b 100644 --- a/taiga/projects/tasks/serializers.py +++ b/taiga/projects/tasks/serializers.py @@ -27,7 +27,7 @@ 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 taiga.users.serializers import UserBasicInfoSerializer from . import models diff --git a/taiga/projects/userstories/serializers.py b/taiga/projects/userstories/serializers.py index 3978381e..30129e7b 100644 --- a/taiga/projects/userstories/serializers.py +++ b/taiga/projects/userstories/serializers.py @@ -27,7 +27,7 @@ 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 BasicUserStoryStatusSerializer -from taiga.users.serializers import BasicInfoSerializer as UserBasicInfoSerializer +from taiga.users.serializers import UserBasicInfoSerializer from . import models diff --git a/taiga/users/serializers.py b/taiga/users/serializers.py index 934c0677..1a22ff70 100644 --- a/taiga/users/serializers.py +++ b/taiga/users/serializers.py @@ -108,11 +108,12 @@ class UserAdminSerializer(UserSerializer): read_only_fields = ("id", "email") -class BasicInfoSerializer(UserSerializer): +class UserBasicInfoSerializer(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)