class CCRSchema(ma.Schema):
    class Meta:
        model = CCR
        # Fields to expose
        fields = (
            "author",
            "id",
            "title",
            "brief",
            "ccr_id",
            "content",
            "status",
            "target",
            "date_created",
            "reject_reason",
            "rfp"
        )

    rfp = ma.Nested("RFPSchema")
    date_created = ma.Method("get_date_created")
    author = ma.Nested("UserSchema")
    ccr_id = ma.Method("get_ccr_id")

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)

    def get_ccr_id(self, obj):
        return obj.id
Example #2
0
class SelfUserSchema(ma.Schema):
    class Meta:
        model = User
        # Fields to expose
        fields = (
            "title",
            "email_address",
            "social_medias",
            "avatar",
            "display_name",
            "userid",
            "email_verified",
            "arbiter_proposals",
            "silenced",
            "banned",
            "banned_reason",
            "is_admin",
        )

    social_medias = ma.Nested("SocialMediaSchema", many=True)
    avatar = ma.Nested("AvatarSchema")
    arbiter_proposals = ma.Nested("ProposalArbiterSchema",
                                  many=True,
                                  exclude=["user"])
    userid = ma.Method("get_userid")
    email_verified = ma.Method("get_email_verified")

    def get_userid(self, obj):
        return obj.id

    def get_email_verified(self, obj):
        return obj.email_verification.has_verified
Example #3
0
class ProposalSchema(ma.Schema):
    class Meta:
        model = Proposal
        # Fields to expose
        fields = ("stage", "date_created", "title", "proposal_id",
                  "proposal_address", "body", "comments", "updates",
                  "milestones", "category", "team")

    date_created = ma.Method("get_date_created")
    proposal_id = ma.Method("get_proposal_id")
    body = ma.Method("get_body")

    comments = ma.Nested("CommentSchema", many=True)
    updates = ma.Nested("ProposalUpdateSchema", many=True)
    team = ma.Nested("UserSchema", many=True)
    milestones = ma.Nested("MilestoneSchema", many=True)

    def get_body(self, obj):
        return obj.content

    def get_proposal_id(self, obj):
        return obj.id

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)
Example #4
0
class CommentSchema(ma.Schema):
    class Meta:
        model = Comment
        # Fields to expose
        fields = (
            "id",
            "proposal_id",
            "author",
            "content",
            "parent_comment_id",
            "date_created",
            "replies",
            "reported",
            "hidden",
        )

    content = ma.Method("get_content")
    date_created = UnixDate(attribute='date_created')
    author = ma.Nested("UserSchema")
    # custome handling of replies, was: replies = ma.Nested("CommentSchema", many=True)
    replies = ma.Method("get_replies")

    def get_content(self, obj):
        return HIDDEN_CONTENT if obj.hidden else obj.content

    # filter out "dead" comments
    def get_replies(self, obj):
        return comments_schema.dump(filter_dead(obj.replies))
Example #5
0
class HistoryEventSchema(ma.Schema):
    class Meta:
        model = HistoryEvent
        # Fields to expose
        fields = ("id", "title", "title_raw", "content", "content_raw", "date",
                  "user", "proposal")

    date = UnixDate(attribute="date")
    user = ma.Nested("UserSchema")
    proposal = ma.Nested("ProposalSchema")
    title = ma.Method("text_title")
    title_raw = ma.Method("raw_title")
    content = ma.Method("markdown_content")
    content_raw = ma.Method("raw_content")

    def text_title(self, obj):
        return make_text(obj, "title")

    def raw_title(self, obj):
        return obj.title

    def raw_content(self, obj):
        return obj.content

    def markdown_content(self, obj):
        return make_markdown(obj, "content")
Example #6
0
class ProposalSchema(ma.Schema):
    class Meta:
        model = Proposal
        # Fields to expose
        fields = (
            "id",
            "stage",
            "status",
            "date_created",
            "date_approved",
            "date_published",
            "reject_reason",
            "title",
            "brief",
            "target",
            "is_failed",
            "content",
            "updates",
            "milestones",
            "current_milestone",
            "category",
            "team",
            "invites",
            "rfp",
            "private",
            "authed_follows",
            "followers_count",
            "comments_count"
        )

    date_created = ma.Method("get_date_created")
    date_approved = ma.Method("get_date_approved")
    date_published = ma.Method("get_date_published")

    updates = ma.Nested("ProposalUpdateSchema", many=True)
    team = ma.Nested("UserSchema", many=True)
    milestones = ma.Nested("MilestoneSchema", many=True)
    current_milestone = ma.Nested("MilestoneSchema")
    invites = ma.Nested("ProposalTeamInviteSchema", many=True)
    rfp = ma.Nested("RFPSchema", exclude=["accepted_proposals"])

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)

    def get_date_approved(self, obj):
        return dt_to_unix(obj.date_approved) if obj.date_approved else None

    def get_date_published(self, obj):
        return dt_to_unix(obj.date_published) if obj.date_published else None
Example #7
0
class UserCommentSchema(ma.Schema):
    class Meta:
        model = Comment
        fields = (
            "id",
            "proposal",
            "content",
            "date_created",
            "reported",
            "hidden",
        )

    proposal = ma.Nested("ProposalSchema",
                         exclude=[
                             "team",
                             "milestones",
                             "content",
                             "invites",
                             "updates",
                         ])

    content = ma.Method("get_content")
    date_created = UnixDate(attribute='date_created')

    def get_content(self, obj):
        return HIDDEN_CONTENT if obj.hidden else obj.content
Example #8
0
class AdminRFPSchema(ma.Schema):
    class Meta:
        model = RFP
        # Fields to expose
        fields = (
            "id",
            "title",
            "brief",
            "content",
            "category",
            "status",
            "matching",
            "bounty",
            "date_created",
            "date_closes",
            "date_opened",
            "date_closed",
            "proposals",
        )

    status = ma.Method("get_status")
    date_created = ma.Method("get_date_created")
    date_closes = ma.Method("get_date_closes")
    date_opened = ma.Method("get_date_opened")
    date_closed = ma.Method("get_date_closed")
    proposals = ma.Nested("ProposalSchema", many=True, exclude=["rfp"])

    def get_status(self, obj):
        # Force it into closed state if date_closes is in the past
        if obj.date_closes and obj.date_closes <= datetime.today():
            return RFPStatus.CLOSED
        return obj.status

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)

    def get_date_closes(self, obj):
        return dt_to_unix(obj.date_closes) if obj.date_closes else None

    def get_date_opened(self, obj):
        return dt_to_unix(obj.date_opened) if obj.date_opened else None

    def get_date_closed(self, obj):
        return dt_to_unix(obj.date_closes) if obj.date_closes else None
Example #9
0
class ProposalUpdateSchema(ma.Schema):
    class Meta:
        model = ProposalUpdate
        # Fields to expose
        fields = ("update_id", "date_created", "proposal_id", "title",
                  "content")

    date_created = ma.Method("get_date_created")
    proposal_id = ma.Method("get_proposal_id")
    update_id = ma.Method("get_update_id")

    def get_update_id(self, obj):
        return obj.id

    def get_proposal_id(self, obj):
        return obj.proposal_id

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)
Example #10
0
class CommentSchema(ma.Schema):
    class Meta:
        model = Comment
        # Fields to expose
        fields = (
            "user_id",
            "content",
            "proposal_id",
            "date_created",
            "body",
        )

    body = ma.Method("get_body")

    date_created = ma.Method("get_date_created")

    def get_body(self, obj):
        return obj.content

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)
Example #11
0
class UserSchema(ma.Schema):
    class Meta:
        model = User
        # Fields to expose
        fields = ("title", "social_medias", "avatar", "display_name", "userid",
                  "email_verified", "tip_jar_address")

    social_medias = ma.Nested("SocialMediaSchema", many=True)
    avatar = ma.Nested("AvatarSchema")
    userid = ma.Method("get_userid")
    email_verified = ma.Method("get_email_verified")
    tip_jar_address = ma.Method("get_tip_jar_address")

    def get_userid(self, obj):
        return obj.id

    def get_email_verified(self, obj):
        return obj.email_verification.has_verified

    def get_tip_jar_address(self, obj):
        return obj.settings.tip_jar_address
Example #12
0
class SocialMediaSchema(ma.Schema):
    class Meta:
        model = SocialMedia
        # Fields to expose
        fields = (
            "url",
            "service",
            "username",
        )

    url = ma.Method("get_url")

    def get_url(self, obj):
        return generate_social_url(obj.service, obj.username)
Example #13
0
class ProposalTeamInviteSchema(ma.Schema):
    class Meta:
        model = ProposalTeamInvite
        fields = (
            "id",
            "date_created",
            "address",
            "accepted"
        )

    date_created = ma.Method("get_date_created")

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)
class RFPSchema(ma.Schema):
    class Meta:
        model = RFP
        # Fields to expose
        fields = ("id", "title", "brief", "content", "status", "matching",
                  "bounty", "date_created", "date_closes", "date_opened",
                  "date_closed", "accepted_proposals", "authed_liked",
                  "likes_count", "is_version_two", "ccr")

    ccr = ma.Nested("CCRSchema", exclude=["rfp"])
    status = ma.Method("get_status")
    date_closes = ma.Method("get_date_closes")
    date_opened = ma.Method("get_date_opened")
    date_closed = ma.Method("get_date_closed")
    accepted_proposals = ma.Nested("ProposalSchema",
                                   many=True,
                                   exclude=["rfp"])
    is_version_two = ma.Method("get_is_version_two")

    def get_status(self, obj):
        # Force it into closed state if date_closes is in the past
        if obj.date_closes and obj.date_closes <= datetime.today():
            return RFPStatus.CLOSED
        return obj.status

    def get_date_closes(self, obj):
        return dt_to_unix(obj.date_closes) if obj.date_closes else None

    def get_date_opened(self, obj):
        return dt_to_unix(obj.date_opened) if obj.date_opened else None

    def get_date_closed(self, obj):
        return dt_to_unix(obj.date_closed) if obj.date_closed else None

    def get_is_version_two(self, obj):
        return True if obj.version == '2' else False
Example #15
0
class MilestoneSchema(ma.Schema):
    class Meta:
        model = Milestone
        # Fields to expose
        fields = (
            "title",
            "body",
            "content",
            "stage",
            "date_estimated",
            "payout_percent",
            "immediate_payout",
            "date_created",
        )

    body = ma.Method("get_body")

    def get_body(self, obj):
        return obj.content
Example #16
0
class UserSchema(ma.Schema):
    class Meta:
        model = User
        # Fields to expose
        fields = (
            "account_address",
            "title",
            "email_address",
            "social_medias",
            "avatar",
            "display_name",
            "userid"

        )

    social_medias = ma.Nested("SocialMediaSchema", many=True)
    avatar = ma.Nested("AvatarSchema")
    userid = ma.Method("get_userid")

    def get_userid(self, obj):
        return obj.id