From 6ec795c60074287d691d87b41a986cdc0618ec56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 21 Oct 2013 12:05:57 +0200 Subject: [PATCH] Added a serializer to use for the project list --- greenmine/projects/api.py | 3 ++- greenmine/projects/serializers.py | 27 ++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/greenmine/projects/api.py b/greenmine/projects/api.py index 3ef50c14..17e43885 100644 --- a/greenmine/projects/api.py +++ b/greenmine/projects/api.py @@ -15,7 +15,8 @@ from . import permissions class ProjectViewSet(ModelCrudViewSet): model = models.Project - serializer_class = serializers.ProjectSerializer + serializer_class = serializers.ProjectDetailSerializer + list_serializer_class = serializers.ProjectSerializer permission_classes = (IsAuthenticated, permissions.ProjectPermission) def get_queryset(self): diff --git a/greenmine/projects/serializers.py b/greenmine/projects/serializers.py index 0a9b311c..59c05894 100644 --- a/greenmine/projects/serializers.py +++ b/greenmine/projects/serializers.py @@ -19,6 +19,7 @@ class AttachmentSerializer(serializers.ModelSerializer): "modified_date", "object_id", "url") read_only_fields = ("owner",) + # User Stories common serializers class PointsSerializer(serializers.ModelSerializer): @@ -79,20 +80,24 @@ class MembershipSerializer(serializers.ModelSerializer): class ProjectSerializer(serializers.ModelSerializer): tags = PickleField(required=False) - list_of_milestones = serializers.SerializerMethodField("get_list_of_milestones") - memberships = MembershipSerializer(many=True, required=False) - us_statuses = UserStoryStatusSerializer(many=True, required=False) # User Stories - points = PointsSerializer(many=True, required=False) - task_statuses = TaskStatusSerializer(many=True, required=False) # Tasks - priorities = PrioritySerializer(many=True, required=False) # Issues - severities = SeveritySerializer(many=True, required=False) - issue_statuses = IssueStatusSerializer(many=True, required=False) - issue_types = IssueTypeSerializer(many=True, required=False) - #question_statuses = QuestionStatusSerializer(many=True, required=False) # Questions class Meta: model = models.Project - read_only_fields = ("owner",) + read_only_fields = ("uuid", "created_date", "modified_date", "owner") + exclude = ("last_us_ref", "last_task_ref", "last_issue_ref") + + +class ProjectDetailSerializer(ProjectSerializer): + list_of_milestones = serializers.SerializerMethodField("get_list_of_milestones") + memberships = MembershipSerializer(many=True, required=False) + us_statuses = UserStoryStatusSerializer(many=True, required=False) # User Stories + points = PointsSerializer(many=True, required=False) + task_statuses = TaskStatusSerializer(many=True, required=False) # Tasks + priorities = PrioritySerializer(many=True, required=False) # Issues + severities = SeveritySerializer(many=True, required=False) + issue_statuses = IssueStatusSerializer(many=True, required=False) + issue_types = IssueTypeSerializer(many=True, required=False) + #question_statuses = QuestionStatusSerializer(many=True, required=False) # Questions def get_list_of_milestones(self, obj): milestones_list = []