Ejemplo n.º 1
0
class ProjectExportValidator(WatcheableObjectModelValidatorMixin):
    logo = FileField(required=False)
    anon_permissions = PgArrayField(required=False)
    public_permissions = PgArrayField(required=False)
    modified_date = serializers.DateTimeField(required=False)
    roles = RoleExportValidator(many=True, required=False)
    owner = UserRelatedField(required=False)
    memberships = MembershipExportValidator(many=True, required=False)
    points = PointsExportValidator(many=True, required=False)
    us_statuses = UserStoryStatusExportValidator(many=True, required=False)
    task_statuses = TaskStatusExportValidator(many=True, required=False)
    issue_types = IssueTypeExportValidator(many=True, required=False)
    issue_statuses = IssueStatusExportValidator(many=True, required=False)
    priorities = PriorityExportValidator(many=True, required=False)
    severities = SeverityExportValidator(many=True, required=False)
    swimlanes = SwimlaneExportValidator(many=True, required=False)
    tags_colors = JSONField(required=False)
    creation_template = serializers.SlugRelatedField(slug_field="slug",
                                                     required=False)
    default_points = serializers.SlugRelatedField(slug_field="name",
                                                  required=False)
    default_us_status = serializers.SlugRelatedField(slug_field="name",
                                                     required=False)
    default_task_status = serializers.SlugRelatedField(slug_field="name",
                                                       required=False)
    default_priority = serializers.SlugRelatedField(slug_field="name",
                                                    required=False)
    default_severity = serializers.SlugRelatedField(slug_field="name",
                                                    required=False)
    default_issue_status = serializers.SlugRelatedField(slug_field="name",
                                                        required=False)
    default_issue_type = serializers.SlugRelatedField(slug_field="name",
                                                      required=False)
    default_swimlane = serializers.SlugRelatedField(slug_field="name",
                                                    required=False)
    userstorycustomattributes = UserStoryCustomAttributeExportValidator(
        many=True, required=False)
    taskcustomattributes = TaskCustomAttributeExportValidator(many=True,
                                                              required=False)
    issuecustomattributes = IssueCustomAttributeExportValidator(many=True,
                                                                required=False)
    user_stories = UserStoryExportValidator(many=True, required=False)
    tasks = TaskExportValidator(many=True, required=False)
    milestones = MilestoneExportValidator(many=True, required=False)
    issues = IssueExportValidator(many=True, required=False)
    wiki_links = WikiLinkExportValidator(many=True, required=False)
    wiki_pages = WikiPageExportValidator(many=True, required=False)

    class Meta:
        model = projects_models.Project
        exclude = ('id', 'members')
Ejemplo n.º 2
0
class ProjectExportSerializer(WatcheableObjectModelSerializer):
    logo = FileField(required=False)
    anon_permissions = PgArrayField(required=False)
    public_permissions = PgArrayField(required=False)
    modified_date = serializers.DateTimeField(required=False)
    roles = RoleExportSerializer(many=True, required=False)
    owner = UserRelatedField(required=False)
    memberships = MembershipExportSerializer(many=True, required=False)
    points = PointsExportSerializer(many=True, required=False)
    us_statuses = UserStoryStatusExportSerializer(many=True, required=False)
    task_statuses = TaskStatusExportSerializer(many=True, required=False)
    issue_types = IssueTypeExportSerializer(many=True, required=False)
    issue_statuses = IssueStatusExportSerializer(many=True, required=False)
    priorities = PriorityExportSerializer(many=True, required=False)
    severities = SeverityExportSerializer(many=True, required=False)
    tags_colors = JsonField(required=False)
    default_points = serializers.SlugRelatedField(slug_field="name",
                                                  required=False)
    default_us_status = serializers.SlugRelatedField(slug_field="name",
                                                     required=False)
    default_task_status = serializers.SlugRelatedField(slug_field="name",
                                                       required=False)
    default_priority = serializers.SlugRelatedField(slug_field="name",
                                                    required=False)
    default_severity = serializers.SlugRelatedField(slug_field="name",
                                                    required=False)
    default_issue_status = serializers.SlugRelatedField(slug_field="name",
                                                        required=False)
    default_issue_type = serializers.SlugRelatedField(slug_field="name",
                                                      required=False)
    userstorycustomattributes = UserStoryCustomAttributeExportSerializer(
        many=True, required=False)
    taskcustomattributes = TaskCustomAttributeExportSerializer(many=True,
                                                               required=False)
    issuecustomattributes = IssueCustomAttributeExportSerializer(
        many=True, required=False)
    user_stories = UserStoryExportSerializer(many=True, required=False)
    tasks = TaskExportSerializer(many=True, required=False)
    milestones = MilestoneExportSerializer(many=True, required=False)
    issues = IssueExportSerializer(many=True, required=False)
    wiki_links = WikiLinkExportSerializer(many=True, required=False)
    wiki_pages = WikiPageExportSerializer(many=True, required=False)
    timeline = serializers.SerializerMethodField("get_timeline")

    class Meta:
        model = projects_models.Project
        exclude = ('id', 'creation_template', 'members')

    def get_timeline(self, obj):
        timeline_qs = timeline_service.get_project_timeline(obj)
        return TimelineExportSerializer(timeline_qs, many=True).data