Merge pull request #357 from taigaio/api-improvements

Make minor improvements over Membership and Project serializers
remotes/origin/enhancement/email-actions
Alejandro 2015-06-22 23:32:22 -07:00
commit 99e3600fcc
5 changed files with 13 additions and 15 deletions

View File

@ -24,7 +24,7 @@ from taiga.mdrender.service import render as mdrender
from taiga.projects.validators import ProjectExistsValidator from taiga.projects.validators import ProjectExistsValidator
from taiga.projects.notifications.validators import WatchersValidator from taiga.projects.notifications.validators import WatchersValidator
from taiga.projects.serializers import BasicIssueStatusSerializer from taiga.projects.serializers import BasicIssueStatusSerializer
from taiga.users.serializers import BasicInfoSerializer as UserBasicInfoSerializer from taiga.users.serializers import UserBasicInfoSerializer
from . import models from . import models

View File

@ -27,6 +27,7 @@ from taiga.base.fields import TagsColorsField
from taiga.users.services import get_photo_or_gravatar_url from taiga.users.services import get_photo_or_gravatar_url
from taiga.users.serializers import UserSerializer from taiga.users.serializers import UserSerializer
from taiga.users.serializers import UserBasicInfoSerializer
from taiga.users.serializers import ProjectRoleSerializer from taiga.users.serializers import ProjectRoleSerializer
from taiga.users.validators import RoleExistsValidator from taiga.users.validators import RoleExistsValidator
@ -197,7 +198,7 @@ class MembershipSerializer(serializers.ModelSerializer):
photo = serializers.SerializerMethodField("get_photo") photo = serializers.SerializerMethodField("get_photo")
project_name = serializers.SerializerMethodField("get_project_name") project_name = serializers.SerializerMethodField("get_project_name")
project_slug = serializers.SerializerMethodField("get_project_slug") project_slug = serializers.SerializerMethodField("get_project_slug")
invited_by = UserSerializer(read_only=True) invited_by = UserBasicInfoSerializer(read_only=True)
class Meta: class Meta:
model = models.Membership model = models.Membership
@ -346,11 +347,11 @@ class ProjectSerializer(serializers.ModelSerializer):
class ProjectDetailSerializer(ProjectSerializer): class ProjectDetailSerializer(ProjectSerializer):
roles = serializers.SerializerMethodField("get_roles")
memberships = serializers.SerializerMethodField("get_memberships")
us_statuses = UserStoryStatusSerializer(many=True, required=False) # User Stories us_statuses = UserStoryStatusSerializer(many=True, required=False) # User Stories
points = PointsSerializer(many=True, required=False) points = PointsSerializer(many=True, required=False)
task_statuses = TaskStatusSerializer(many=True, required=False) # Tasks task_statuses = TaskStatusSerializer(many=True, required=False) # Tasks
issue_statuses = IssueStatusSerializer(many=True, required=False) issue_statuses = IssueStatusSerializer(many=True, required=False)
issue_types = IssueTypeSerializer(many=True, required=False) issue_types = IssueTypeSerializer(many=True, required=False)
priorities = PrioritySerializer(many=True, required=False) # Issues priorities = PrioritySerializer(many=True, required=False) # Issues
@ -362,7 +363,10 @@ class ProjectDetailSerializer(ProjectSerializer):
many=True, required=False) many=True, required=False)
issue_custom_attributes = IssueCustomAttributeSerializer(source="issuecustomattributes", issue_custom_attributes = IssueCustomAttributeSerializer(source="issuecustomattributes",
many=True, required=False) 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): def get_memberships(self, obj):
qs = obj.memberships.filter(user__isnull=False) qs = obj.memberships.filter(user__isnull=False)
@ -372,13 +376,6 @@ class ProjectDetailSerializer(ProjectSerializer):
serializer = ProjectMembershipSerializer(qs, many=True) serializer = ProjectMembershipSerializer(qs, many=True)
return serializer.data 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 ProjectDetailAdminSerializer(ProjectDetailSerializer):
class Meta: class Meta:

View File

@ -27,7 +27,7 @@ from taiga.projects.milestones.validators import SprintExistsValidator
from taiga.projects.tasks.validators import TaskExistsValidator from taiga.projects.tasks.validators import TaskExistsValidator
from taiga.projects.notifications.validators import WatchersValidator from taiga.projects.notifications.validators import WatchersValidator
from taiga.projects.serializers import BasicTaskStatusSerializerSerializer from taiga.projects.serializers import BasicTaskStatusSerializerSerializer
from taiga.users.serializers import BasicInfoSerializer as UserBasicInfoSerializer from taiga.users.serializers import UserBasicInfoSerializer
from . import models from . import models

View File

@ -27,7 +27,7 @@ from taiga.projects.validators import UserStoryStatusExistsValidator
from taiga.projects.userstories.validators import UserStoryExistsValidator from taiga.projects.userstories.validators import UserStoryExistsValidator
from taiga.projects.notifications.validators import WatchersValidator from taiga.projects.notifications.validators import WatchersValidator
from taiga.projects.serializers import BasicUserStoryStatusSerializer from taiga.projects.serializers import BasicUserStoryStatusSerializer
from taiga.users.serializers import BasicInfoSerializer as UserBasicInfoSerializer from taiga.users.serializers import UserBasicInfoSerializer
from . import models from . import models

View File

@ -108,11 +108,12 @@ class UserAdminSerializer(UserSerializer):
read_only_fields = ("id", "email") read_only_fields = ("id", "email")
class BasicInfoSerializer(UserSerializer): class UserBasicInfoSerializer(UserSerializer):
class Meta: class Meta:
model = User model = User
fields = ("username", "full_name_display","photo", "big_photo") fields = ("username", "full_name_display","photo", "big_photo")
class RecoverySerializer(serializers.Serializer): class RecoverySerializer(serializers.Serializer):
token = serializers.CharField(max_length=200) token = serializers.CharField(max_length=200)
password = serializers.CharField(min_length=6) password = serializers.CharField(min_length=6)