Ejemplo n.º 1
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)
Ejemplo n.º 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
Ejemplo n.º 3
0
class AdminCommentSchema(ma.Schema):
    class Meta:
        model = Comment
        fields = (
            "id",
            "user_id",
            "author",
            "proposal",
            "proposal_id",
            "content",
            "date_created",
            "reported",
            "hidden",
        )

    proposal = ma.Nested("ProposalSchema", only=["id", "title", "brief"])
    author = ma.Nested("SelfUserSchema",
                       only=[
                           "id",
                           "email_address",
                           "display_name",
                           "title",
                           "avatar",
                           "azimuth",
                       ])
    date_created = UnixDate(attribute='date_created')
Ejemplo n.º 4
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")
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
class RFWMilestoneClaimSchema(ma.Schema):
    class Meta:
        additional = ("id", "stage", "stage_message", "stage_url")

    date_created = UnixDate(attribute='date_created')
    stage_change_date = UnixDate(attribute='stage_change_date')
    worker = ma.Nested("RFWWorkerSchema", exclude=['claims', 'rfw'])
    milestone = ma.Nested("RFWMilestoneSchema", exclude=['claims', 'rfw'])
Ejemplo n.º 7
0
class RFWWorkerSchema(ma.Schema):
    class Meta:
        additional = ("id", "status", "status_message", "is_self")

    date_created = UnixDate(attribute='date_created')
    status_change_date = UnixDate(attribute='status_change_date')
    rfw = ma.Nested("RFWSchema", exclude=['workers', 'milestones'])
    user = ma.Nested("UserSchema")  # , exclude=['rfws'])
    claims = ma.Nested("RFWMilestoneClaimSchema",
                       many=True,
                       exclude=['worker'])
Ejemplo n.º 8
0
class RFWMilestoneSchema(ma.Schema):
    class Meta:
        additional = ("id", "index", "title", "content", "effort_from",
                      "effort_to", "bounty", "is_authed_active")

    date_created = UnixDate(attribute='date_created')
    rfw = ma.Nested("RFWSchema")
    claims = ma.Nested("RFWMilestoneClaimSchema",
                       many=True,
                       exclude=['milestone'])
    authed_claim = ma.Nested("RFWMilestoneClaimSchema", exclude=['milestone'])
Ejemplo n.º 9
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))
Ejemplo n.º 10
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
Ejemplo n.º 11
0
class RFWSchema(ma.Schema):
    class Meta:
        additional = (
            "id",
            "title",
            "brief",
            "content",
            "status",
            "category",
            "bounty",  # derived from ms
            "effort_from",  # derived from ms
            "effort_to",  # derived from ms
        )

    date_created = UnixDate(attribute='date_created')
    status_change_date = UnixDate(attribute='status_change_date')
    workers = ma.Nested("RFWWorkerSchema", many=True, exclude=['rfw'])
    authed_worker = ma.Nested("RFWWorkerSchema", exclude=['rfw'])
    milestones = ma.Nested("RFWMilestoneSchema", many=True, exclude=['rfw'])
    tags = ma.Nested("TagSchema", many=True)
Ejemplo n.º 12
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
Ejemplo n.º 13
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
Ejemplo n.º 14
0
class AdminRFPSchema(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", "proposals", "is_version_two", "ccr")

    ccr = ma.Nested("CCRSchema", exclude=["rfp"])
    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"])
    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_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

    def get_is_version_two(self, obj):
        return True if obj.version == '2' else False
Ejemplo n.º 15
0
class AdminLogSchema(ma.Schema):
    class Meta:
        model = AdminLog
        # Fields to expose
        fields = (
            "id",
            "date_created",
            "event",
            "message",
            "user",
            "ip",
        )

    date_created = UnixDate(attribute="date_created")
    user = ma.Nested("UserSchema")
Ejemplo n.º 16
0
class InviteWithProposalSchema(ma.Schema):
    class Meta:
        model = ProposalTeamInvite
        fields = (
            "id",
            "date_created",
            "address",
            "accepted",
            "proposal"
        )

    date_created = ma.Method("get_date_created")
    proposal = ma.Nested("ProposalSchema")

    def get_date_created(self, obj):
        return dt_to_unix(obj.date_created)
Ejemplo n.º 17
0
class RFPSchema(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",
            "accepted_proposals",
        )

    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"])

    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
Ejemplo n.º 18
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