示例#1
0
class WebhookLogSerializer(serializers.ModelSerializer):
    request_data = JsonField()
    request_headers = JsonField()
    response_headers = JsonField()

    class Meta:
        model = WebhookLog
示例#2
0
class HistoryEntrySerializer(serializers.ModelSerializer):
    diff = JsonField()
    snapshot = JsonField()
    values = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS)
    values_diff = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS)
    user = serializers.SerializerMethodField("get_user")
    delete_comment_user = JsonField()
    comment_versions = JsonField()

    class Meta:
        model = models.HistoryEntry
        exclude = ("comment_versions", )

    def get_user(self, entry):
        user = {
            "pk": None,
            "username": None,
            "name": None,
            "photo": None,
            "is_active": False
        }
        user.update(entry.user)
        user["photo"] = get_photo_or_gravatar_url(entry.owner)

        if entry.owner:
            user["is_active"] = entry.owner.is_active

            if entry.owner.is_active or entry.owner.is_system:
                user["name"] = entry.owner.get_full_name()
                user["username"] = entry.owner.username

        return user
示例#3
0
class HistoryEntrySerializer(serializers.ModelSerializer):
    diff = HistoryDiffField()
    snapshot = JsonField()
    values = JsonField()
    user = JsonField()
    delete_comment_user = JsonField()

    class Meta:
        model = history_models.HistoryEntry
示例#4
0
class HistoryEntrySerializer(serializers.ModelSerializer):
    diff = JsonField()
    snapshot = JsonField()
    values = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS)
    values_diff = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS)
    user = JsonField()
    delete_comment_user = JsonField()

    class Meta:
        model = models.HistoryEntry
示例#5
0
class BaseCustomAttributesValuesExportSerializer(serializers.ModelSerializer):
    attributes_values = JsonField(source="attributes_values", required=True)
    _custom_attribute_model = None
    _container_field = None

    class Meta:
        exclude = ("id", )

    def validate_attributes_values(self, attrs, source):
        # values must be a dict
        data_values = attrs.get("attributes_values", None)
        if self.object:
            data_values = (data_values or self.object.attributes_values)

        if type(data_values) is not dict:
            raise ValidationError(
                _("Invalid content. It must be {\"key\": \"value\",...}"))

        # Values keys must be in the container object project
        data_container = attrs.get(self._container_field, None)
        if data_container:
            project_id = data_container.project_id
        elif self.object:
            project_id = getattr(self.object, self._container_field).project_id
        else:
            project_id = None

        values_ids = list(data_values.keys())
        qs = self._custom_attribute_model.objects.filter(project=project_id,
                                                         id__in=values_ids)
        if qs.count() != len(values_ids):
            raise ValidationError(_("It contain invalid custom fields."))

        return attrs
示例#6
0
class StorageEntrySerializer(serializers.ModelSerializer):
    value = JsonField(label="value")

    class Meta:
        model = models.StorageEntry
        fields = ("key", "value", "created_date", "modified_date")
        read_only_fields = ("created_date", "modified_date")
示例#7
0
class ProjectTemplateValidator(validators.ModelValidator):
    default_options = JsonField(required=False, label=_("Default options"))
    us_statuses = JsonField(required=False, label=_("User story's statuses"))
    points = JsonField(required=False, label=_("Points"))
    task_statuses = JsonField(required=False, label=_("Task's statuses"))
    issue_statuses = JsonField(required=False, label=_("Issue's statuses"))
    issue_types = JsonField(required=False, label=_("Issue's types"))
    priorities = JsonField(required=False, label=_("Priorities"))
    severities = JsonField(required=False, label=_("Severities"))
    roles = JsonField(required=False, label=_("Roles"))

    class Meta:
        model = models.ProjectTemplate
        read_only_fields = ("created_date", "modified_date")
示例#8
0
class HistoryExportSerializer(serializers.ModelSerializer):
    user = HistoryUserField()
    diff = HistoryDiffField(required=False)
    snapshot = JsonField(required=False)
    values = HistoryValuesField(required=False)
    comment = CommentField(required=False)
    delete_comment_date = serializers.DateTimeField(required=False)
    delete_comment_user = HistoryUserField(required=False)

    class Meta:
        model = history_models.HistoryEntry
        exclude = ("id", "comment_html", "key")
示例#9
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
示例#10
0
class TimelineSerializer(serializers.ModelSerializer):
    data = JsonField()

    class Meta:
        model = models.Timeline