示例#1
0
class Auction(Document):
    class Meta:
        strict = False

    id = fields.IntegerField(attribute="_id")
    guild_id = fields.IntegerField(required=True)
    message_id = fields.IntegerField(required=True)
    pokemon = fields.EmbeddedField(EmbeddedPokemon, required=True)
    user_id = fields.IntegerField(required=True)
    current_bid = fields.IntegerField(required=True)
    bid_increment = fields.IntegerField(required=True)
    bidder_id = fields.IntegerField(default=None)
    ends = fields.DateTimeField(required=True)
示例#2
0
class FormFillingTest(Document):  # pylint: disable=abstract-method
    """
    Represents finished/inprogress tests of form filling
    """

    # config to test
    course_config = fields.ObjectIdField(required=True)
    # with information from this user
    requested_by = fields.ObjectIdField(
        required=False)  # holds which user (fenetre) can see this

    time_executed = fields.DateTimeField(required=False, allow_none=True)

    # status
    is_finished = fields.BoolField(default=False)
    in_progress = fields.BoolField(default=False)
    is_scheduled = fields.BoolField(default=False)

    # results
    errors = fields.ListField(fields.EmbeddedField(LockboxFailure), default=[])
    fill_result = fields.EmbeddedField(FillFormResult,
                                       default=None,
                                       allow_none=True)
示例#3
0
文件: db.py 项目: tylertian123/nffu
class Form(Document):
    sub_fields = fields.ListField(fields.EmbeddedField(FormField),
                                  default=list,
                                  validate=_validate_form_fields)

    # id of file in gridfs, should be a png
    representative_thumbnail = fields.ObjectIdField(default=None)

    # Friendly title for this form configuration
    name = fields.StrField()

    # is this form the default? if there are multiple of these, uh panic
    # TODO: use io_validate to check that
    is_default = fields.BoolField(default=False)
示例#4
0
class City(Document, metaclass=MetaBaseTemplate):
    __collection__ = 'cities'

    geonameid = fields.IntegerField(required=True)
    code_name = fields.StringField(required=True)
    iso_name = fields.StringField()
    count_journeys = fields.IntegerField(required=True, missing=0)
    count_articles = fields.IntegerField(required=True, missing=0)
    points = fields.ListField(fields.EmbeddedField(Point), required=True)

    class Meta:
        indexes = [
            IndexModel([('geonameid', ASCENDING), ('code_name', ASCENDING)],
                       unique=True)
        ]
示例#5
0
class Form(Document):  # pylint: disable=abstract-method
    """
    Configuration for a form type to fill out.

    Taken from fenetre/db.py.
    """

    sub_fields = fields.ListField(fields.EmbeddedField(FormField))

    # id of file in gridfs, should be a png
    representative_thumbnail = fields.ObjectIdField(default=None)

    # Friendly title for this form configuration
    name = fields.StrField()

    # is this form the default?
    is_default = fields.BoolField(default=False)
示例#6
0
class CachedFormGeometry(Document):  # pylint: disable=abstract-method
    """
    A document used for caching results to requests for form geometry.
    """

    url = fields.URLField(required=True, unique=True)
    # Token of the user that requested this form geometry
    # used to limit requests per user
    requested_by = fields.StrField(required=False, allow_none=True)
    geometry = fields.ListField(fields.EmbeddedField(FormGeometryEntry),
                                required=False,
                                allow_none=True)
    auth_required = fields.BoolField(required=False, allow_none=True)
    screenshot_file_id = fields.ObjectIdField(required=False, allow_none=True)
    grab_screenshot = fields.BoolField(default=False)

    response_status = fields.IntField(required=False)
    error = fields.StrField(required=False)
示例#7
0
class Chat(umongo.Document):
    chat_id = fields.IntegerField(required=True, unique=True)
    settings = fields.EmbeddedField(ChatSettings)

    class Meta:
        collection_name = "chats"

    @staticmethod
    async def create_chat(
        chat_id: int, settings: ChatSettings
    ) -> Union["Chat", NoReturn]:
        chat = Chat(chat_id=chat_id, settings=settings)
        await chat.commit()
        return chat

    @staticmethod
    async def get_chat(chat_id: int) -> Optional["Chat"]:
        chat = await Chat.find_one({"chat_id": chat_id})
        return chat
示例#8
0
class Post(Document):
    title = fields.StrField()
    content = fields.StrField()
    comments = fields.ListField(fields.EmbeddedField(Comment))

    created_by = fields.ReferenceField(User)
    created_at = fields.DateTimeField(default=datetime.now())
    updated_at = fields.DateTimeField(default=datetime.now())

    class Meta:
        collection = db.post

    @classmethod
    async def get(cls, id: str):
        if not ObjectId.is_valid(id):
            return None

        return await cls.find_one({'_id': ObjectId(id)})

    def add_comment(self, comment: Comment):
        self.comments = self.comments + [comment]
示例#9
0
class ChatSettings(umongo.EmbeddedDocument):
    cas_banned = fields.EmbeddedField(Punishment)
    spamwatch_banned = fields.EmbeddedField(Punishment)
    intellivoid_banned = fields.EmbeddedField(Punishment)
    account_creation_date_less_than_months = fields.IntegerField()
    inappropriate_account_creation_date = fields.EmbeddedField(Punishment)
    rtl_characters_in_name = fields.EmbeddedField(Punishment)
    url_in_name = fields.EmbeddedField(Punishment)

    def sort_punishments_by_weight(
        self, ignore_none_punishments: bool = True, sort_by_length: bool = False
    ):
        punishments = sort_punishments_by_weight(self, ignore_none_punishments)

        if sort_by_length:
            punishments = sorted(
                punishments, key=lambda p: len(violations_display_name[p.name])
            )

        return punishments
示例#10
0
 class MyDoc(Document):
     embedded = fields.EmbeddedField(MyEmbeddedDocument,
                                     attribute='in_mongo_embedded',
                                     allow_none=True)
示例#11
0
 class MyParentEmbeddedDocument(EmbeddedDocument):
     embedded = fields.EmbeddedField(MyChildEmbeddedDocument)
示例#12
0
 class MyDoc(Document):
     impossibru = fields.EmbeddedField(AbstractChild)
示例#13
0
 class MyDoc(Document):
     parent = fields.EmbeddedField(EmbeddedParent)
     child = fields.EmbeddedField(EmbeddedChild)
示例#14
0
 class Team(Document):
     name = fields.StrField(attribute='n')
     leader = fields.EmbeddedField(Person, attribute='l')
     sponsors = fields.ListField(fields.EmbeddedField(Company),
                                 attribute='s')
示例#15
0
 class Bag(Document):
     id = fields.EmbeddedField(Accessory,
                               attribute='_id',
                               required=True)
     content = fields.ListField(fields.EmbeddedField(Accessory))
示例#16
0
 class Parent(Document):
     name = fields.StrField()
     child = fields.EmbeddedField(Child)
示例#17
0
 class MyDoc(Document):
     embeds = fields.ListField(fields.EmbeddedField(MyEmbeddedDocument))
     refs = fields.ListField(fields.ReferenceField(ToRefDoc))
 class MyOtherDoc(Document):
     impossible = fields.EmbeddedField(AbstractChild)
示例#19
0
class Listing(Document):
    id = fields.IntegerField(attribute="_id")
    pokemon = fields.EmbeddedField(Pokemon, required=True)
    user_id = fields.IntegerField(required=True)
    price = fields.IntegerField(required=True)
示例#20
0
 class MyDoc(Document):
     embeds = fields.DictField(
         values=fields.EmbeddedField(MyEmbeddedDocument))
     refs = fields.DictField(values=fields.ReferenceField(ToRefDoc))
示例#21
0
 class MyDoc(Document):
     embedded_list = fields.ListField(fields.EmbeddedField(MyEmbedded),
                                      allow_none=True)
     embedded_dict = fields.DictField(
         values=fields.EmbeddedField(MyEmbedded), allow_none=True)
     embedded = fields.EmbeddedField(MyEmbedded, allow_none=True)
示例#22
0
 class IOStudent(Student):
     io_field = fields.StrField(io_validate=io_validate)
     list_io_field = fields.ListField(fields.IntField(io_validate=io_validate))
     reference_io_field = fields.ReferenceField(classroom_model.Course, io_validate=io_validate)
     embedded_io_field = fields.EmbeddedField(EmbeddedDoc, io_validate=io_validate)
示例#23
0
 class Book(Document):
     title = fields.StrField()
     length = fields.IntField(attribute='l')
     author = fields.EmbeddedField(Author, attribute='a')
     chapters = fields.ListField(fields.EmbeddedField(Chapter))
     tags = fields.ListField(fields.StrField(), attribute='t')
示例#24
0
 class MyDoc(Document):
     embedded = fields.EmbeddedField(MyEmbedded)
     embedded_required = fields.EmbeddedField(MyEmbedded, required=True)
     embedded_list = fields.ListField(fields.EmbeddedField(MyEmbedded))
示例#25
0
 class Driver(Document):
     name = fields.StrField()
     vehicle = fields.EmbeddedField(Vehicle)
示例#26
0
 class MyDoc(Document):
     e = fields.EmbeddedField(MyEmbeddedDocument)
     l = fields.ListField(fields.EmbeddedField(MyEmbeddedDocument))
     b = fields.IntField(required=True)
示例#27
0
 class Parent(Document):
     name = fields.StrField()
     birthday = fields.DateTimeField(dump_only=True)
     child = fields.EmbeddedField(Child)
示例#28
0
 class MyDoc(Document):
     embedded = fields.EmbeddedField(MyParentEmbeddedDocument)
示例#29
0
 class Book(Document):
     title = fields.StrField(attribute='t')
     author = fields.EmbeddedField(Author, attribute='a')
     chapters = fields.ListField(fields.EmbeddedField(Chapter),
                                 attribute='c')
示例#30
0
 class Company(EmbeddedDocument):
     name = fields.StrField(attribute='cn')
     contact = fields.EmbeddedField(Person, attribute='cc')