Пример #1
0
class Search(Document):
    site_code = fields.IntField(required=True)
    search_word = fields.StringField(required=True)
    related_word = fields.ListField(fields=fields.ListField())
    total_sentence_count = fields.IntField(required=True)
    positive = fields.FloatField(required=True, default=0.0)
    negative = fields.FloatField(required=True, default=0.0)
Пример #2
0
class CharacterSheet(mongoengine.Document):
    name = fields.StringField()
    description = fields.StringField()
    hit_points = fields.IntField()
    level = fields.IntField()
    experience = fields.LongField()
    strength = fields.FloatField()
    dexterity = fields.FloatField()
    constitution = fields.FloatField()
    inteligence = fields.FloatField()
    wisdom = fields.FloatField()
    charisma = fields.FloatField()
    armor_class = fields.FloatField()
    fortitude = fields.FloatField()
    reflex = fields.FloatField()
    will = fields.FloatField()
    race = fields.StringField()
    klass = fields.StringField()
    skills = fields.ListField(fields.StringField())
    items = fields.ListField(fields.StringField())
    owner = fields.StringField()
    # race = fields.ReferenceField('Race')
    # klass = fields.ReferenceField('Klass')
    # skills = fields.ListField(fields.ReferenceField('Skill'))
    # items = fields.ListField(fields.ReferenceField('Item'))
    # owner = fields.ReferenceField('User')


    def restore(self, memento):
        """
        Restores the Originator's state from a memento object.
        """
        
        self.hit_points = memento.get_hit_points()
        self.update()
Пример #3
0
class Analysis(Document):
    meta = {
        "db_alias": "stream_db"
    }
    tweet_id = fields.IntField()
    text = fields.StringField()
    clean_text = fields.ListField()
    user_name = fields.StringField()
    user_id = fields.IntField()
    user_screen_name = fields.StringField()
    user_location = fields.StringField()
    user_created_at = fields.DateTimeField()
    user_description = fields.StringField()
    user_followers_count = fields.IntField()
    user_friends_count = fields.IntField()
    user_statuses_count = fields.IntField()
    user_favourites_count = fields.IntField()
    create_date = fields.DateTimeField()
    create_date_timestamp_ms = fields.IntField()
    source = fields.StringField()
    media_type = fields.DynamicField()
    is_quote_status = fields.BooleanField()
    retweet_count = fields.IntField()
    favorite_count = fields.IntField()
    user_mentions = fields.ListField()
    hashtags = fields.ListField()
Пример #4
0
class Professional(User):

    specialties = fields.ListField(fields.ReferenceField(Specialty,
                                                         required=True),
                                   required=True)
    insurances = fields.ListField(fields.ReferenceField(Insurance,
                                                        required=True),
                                  required=True)
    rating = fields.IntField(min_value=0, max_value=5)
    address = fields.EmbeddedDocumentField(Address, required=True)

    def to_dict(self):
        result = super(Professional, self).to_dict()
        result['address'] = self.address.to_dict()
        result['rating'] = self.rating
        result['specialties'] = []
        for specialty in self.specialties:
            result['specialties'].append(specialty.to_dict())
        result['insurances'] = []
        for insurance in self.insurances:
            result['insurances'].append(insurance.to_dict())
        return result

    def get_role(self):
        return 'professional'

    @classmethod
    def get_all(cls):
        result = []
        for professional in cls.objects:
            result.append(professional.to_dict())
        return result
Пример #5
0
class Unidades_Privadas(Document):
    PROPIEDAD_ID = fields.LazyReferenceField('Propiedades_Horizontales',
                                             passthrough=False,
                                             dbref=False)
    IDENTIFICADOR = fields.StringField(required=True)
    GRUPO = fields.StringField(required=True)
    MATRICULA_INMOBILIARIA = fields.StringField(required=True)
    AREA_PRIVADA = fields.FloatField()
    AREA_COMUN = fields.FloatField()
    AREA_CONSTRUIDA = fields.FloatField()
    ESTADO_UNIDAD = fields.StringField(required=True)
    HABITACIONES = fields.IntField()
    BAÑOS = fields.IntField()
    CANTIDAD_PARQUEADEROS = fields.IntField()
    MAXIMO_AUTOS = fields.IntField()
    MAXIMO_MOTOS = fields.IntField()
    COEFICIENTE_COPROPIEDAD = fields.FloatField()
    ESTADO_CARTERA = fields.StringField()
    RESIDENTES = fields.ListField(fields.EmbeddedDocumentField(ResidenteField))
    PARQUEADEROS = fields.ListField(fields.StringField())
    VEHICULOS_PERMANENTES = fields.ListField(
        fields.EmbeddedDocumentField(VehiculoPermanenteField))
    VEHICULOS_TEMPORALES = fields.ListField(
        fields.EmbeddedDocumentField(VehiculoTemporalField))
    PROPIETARIO = fields.EmbeddedDocumentField(PropietarioField)
    ESTADO_CUENTA = fields.EmbeddedDocumentField(EstadoCuentaField)
    HABILITADO = fields.BooleanField()
Пример #6
0
class Tables(Document):
    __project_regex__ = '^[a-zA-Z0-9_]+$'
    project = fields.StringField(
        min_length=3,
        max_length=30,
        required=True,
        regex=__project_regex__,
        help_text=f"project name/slug (valid format: `{__project_regex__}`)")
    identifier = fields.StringField(
        required=True, help_text="material/composition identifier")
    name = fields.StringField(required=True,
                              unique_with='cid',
                              help_text="table name")
    cid = fields.ObjectIdField(required=True, help_text="Contribution ID")
    columns = fields.ListField(fields.StringField(),
                               required=True,
                               help_text="column names")
    data = fields.ListField(fields.ListField(fields.StringField()),
                            required=True,
                            help_text="table rows")
    config = fields.DictField(help_text="graph config")
    meta = {
        'collection':
        'tables',
        'indexes': [
            'identifier', 'project', 'cid', 'name', {
                'fields': ['cid', 'name'],
                'unique': True
            }
        ]
    }
Пример #7
0
class Tweet(Document):
    """
    Tweet database model, holding some basic information which we really need
    for applying a data mining algorithm on a topic's positivity. It can be
    built from a raw tweet (from Twitter's API), using the make_tweet() helper,
    or the from_raw_tweet() classmethod.
    """
    topic = fields.ReferenceField(Topic, required=True)

    tweet_id = fields.IntField()
    status = fields.StringField()
    hashtags = fields.ListField(fields.StringField())
    user = fields.StringField()
    location = fields.ListField(fields.FloatField())

    polarity = fields.FloatField()

    def clean(self):
        if len(self.location) > 0 and len(self.location) != 2:
            msg = 'Location should be either empty or (x, y) position'
            raise ValidationError(msg)

    @classmethod
    def from_raw_tweet(self, data):
        return make_tweet(data)

    def __str__(self):
        return '<@%s> - "%s"' % (self.user, self.status)

    __repr__ = __str__
Пример #8
0
class Role(Document, MongoMixin):
    meta = {
        'indexes': [],
        'allow_inheritance': False,
        'db_alias': 'iu-demo',
        'force_insert': True,
    }

    name = f.StringField(primary_key=True)
    description = f.StringField()
    parents = f.ListField(f.StringField())
    permissions = f.ListField(f.EmbeddedDocumentField('Permission'))

    def get_permissions(self):
        plist = list(self.permissions)
        parents = Role.objects.filter(name__in=self.parents)
        for r in parents:
            permissions = r.get_permissions()
            for p in permissions:
                if p not in plist:
                    plist.append(p)
        return plist

    def to_json_dict(self, fields=None):
        ret = {
            'name': self.name,
            'description': self.description,
            'parents': [str(p) for p in self.parents],
            'permissions': [p.to_json_dict() for p in self.permissions],
            'permissions_all':
            [p.to_json_dict() for p in self.get_permissions()]
        }
        if fields is not None:
            ret = {k: v for k, v in ret.items() if k in fields}
        return ret
Пример #9
0
class Activity(Document):
    url_number = fields.IntField()
    name = fields.StringField(verbose_name=u'活动名称')
    detail = fields.StringField(verbose_name=u'活动详情')
    creator = fields.GenericReferenceField()  # 发起社团

    start_time = fields.DateTimeField()
    finish_time = fields.DateTimeField()
    place = fields.StringField(verbose_name=u'活动地点')
    max_student = fields.IntField()  # 人数上限

    pay = fields.IntField(verbose_name=u'人均花费')

    who_likes = fields.ListField(
        fields.ReferenceField(Student, reverse_delete_rule=PULL))  # 喜欢活动的人
    who_entered = fields.ListField(
        fields.ReferenceField(Student, reverse_delete_rule=PULL))  # 参加这个活动的人
    clicks = fields.IntField()  # 点击数
    is_active = fields.BooleanField()

    def description(self):
        return self.creator.corporation.name + "发起了" + self.name

    def is_started(self):  # 判断是否已经开始
        if self.finish_time < datetime.datetime.now():
            return True
        else:
            return False

    def get_reply(self):
        from reply.models import Reply
        return Reply.objects(target=self)
Пример #10
0
class Usuario(Document):
    usuario = fields.StringField(required=True, max_length=30)
    email = fields.EmailField(required=True, max_length=150)
    nombre = fields.StringField(max_length=50)
    password = fields.StringField(required=True, min_length=8)
    imagen = fields.URLField(required=False)
    descripcion = fields.StringField(max_length=500)
    listaSeguidores = fields.ListField(fields.ReferenceField('Usuario'))
    listaSeguidos = fields.ListField(fields.ReferenceField('Usuario'))
    listaPublicaciones = fields.ListField(fields.ReferenceField('Publicacion'))
    listaComentariosPublicaciones = fields.ListField(
        fields.ReferenceField('Publicacion'))
    listaGraffitisPublicaciones = fields.ListField(
        fields.ReferenceField('Publicacion'))

    def delete(self, *args, **kwargs):
        for publicacion in self.listaComentariosPublicaciones:
            comentarios = publicacion.listaComentarios
            for comentario in comentarios:
                if comentario.autor == self:
                    publicacion.__class__.objects.update(
                        pull__listaComentarios=comentario)

        for publicacion in self.listaGraffitisPublicaciones:
            graffitis = publicacion.listaGraffitis
            for graffiti in graffitis:
                if graffiti.autor == self:
                    publicacion.__class__.objects.update(
                        pull__listaGraffitis=graffiti)

        super().delete()
Пример #11
0
class BasicStructure(EmbeddedDocument):
    main_tag = fields.EmbeddedDocumentListField(ATag)
    color = fields.EmbeddedDocumentListField(ColorModel)
    people = fields.EmbeddedDocumentField(PeopleTag, default=PeopleTag())
    location = fields.ListField()
    emotion_tag = fields.StringField(default="")
    deduction = fields.ListField()
Пример #12
0
class ChargeStation(Document):
    meta = {
        "indexes": [
            'network',
            'locationId',
        ]
    }
    id = fields.IntField(required=True, primary_key=True)
    network = fields.ReferenceField(Network)
    locationId = fields.IntField(required=True)
    name = fields.StringField(required=True, max_length=200)

    #0 = Unknown
    #1 = Free
    #2 = Fee
    cost = fields.IntField()
    cost_description = fields.StringField(max_length=1000)
    address = fields.StringField(max_length=300)
    available = fields.IntField(required=True)
    hours = fields.StringField(max_length=400)
    geoLocation = fields.PointField(auto_index=True)
    score = fields.FloatField(min_value=0, max_value=10.0, required=True)
    images = fields.ListField(fields.URLField())
    chargePoints = fields.ListField(fields.ReferenceField(ChargePoint))
    created_at = fields.DateTimeField()
    modified_at = fields.DateTimeField(default=datetime.datetime.utcnow())
Пример #13
0
class LogicQuestion(Document):
    text = fields.StringField(required=True)
    imgs = fields.ListField(fields.StringField())
    alternatives = fields.ListField(fields.StringField(), required=True)
    answer = fields.IntField(required=True)
    level = fields.IntField(required=True)
    time = fields.IntField(required=True)
Пример #14
0
class Race(BaseDocument):
    meta = {'collection': 'mop_races'}

    name = fields.StringField(required=True)
    description = fields.StringField(required=True)
    restrictions = fields.ListField(fields.ReferenceField('Skill'), required=False)
    exclusive_skills = fields.ListField(fields.ReferenceField('Skill'), required=False)
Пример #15
0
class Player(Document):
    name = fields.StringField(required=True, null=False)
    photo_url = fields.StringField(required=True, null=True)
    positions = fields.ListField(fields.StringField(required=True, null=True))
    age = fields.StringField(required=True)
    birth_date = fields.StringField(required=True)
    height = fields.IntField(required=True)
    weight = fields.IntField(required=True)
    overall_rating = fields.IntField(required=True)
    potential = fields.IntField(required=True)
    value = fields.StringField(required=True)
    wage = fields.StringField(required=True)
    preferred_foot = fields.StringField(required=True)
    international_reputation = fields.IntField(required=True)
    weak_foot = fields.IntField(required=True)
    skill_moves = fields.IntField(required=True)
    work_rate = fields.StringField(required=True)
    body_type = fields.StringField(required=True)
    real_face = fields.StringField(required=True)
    release_clause = fields.StringField(default='0')
    player_hashtags = fields.ListField(
        fields.StringField(required=True, null=True))
    social = fields.EmbeddedDocumentField(PlayerSocial)
    skills = fields.EmbeddedDocumentField(PlayerSkills)
    player_traits = fields.ListField(fields.StringField(null=True), null=True)
Пример #16
0
class EmployeeMessages(Document):
    email_to = fields.ListField(fields.EmailField())
    name_to = fields.ListField(fields.StringField())
    email_from = fields.EmailField()
    name_from = fields.StringField()
    message = fields.StringField()
    file = fields.StringField()
Пример #17
0
class DeepDoc(Document):
    f_list = fields.ListField(fields.IntField())
    f_map = fields.MapField(fields.IntField())
    f_dict = fields.DictField()

    f_emb = fields.EmbeddedDocumentField(EmbDoc)
    f_emblist = fields.ListField(fields.EmbeddedDocumentField(EmbDoc))
class MessageDocument(Document):
    text = fields.StringField(required=False)
    images = fields.ListField(
        fields.ImageField(collection_name='message_images'), required=False)
    document = fields.FileField(collection_name='message_documents',
                                required=False)
    session = fields.ReferenceField(document_type=SessionDocument,
                                    required=True)
    room = fields.ReferenceField(document_type=ChatRoomDocument, required=True)
    seen_by = fields.ListField(
        fields.ReferenceField(document_type=SessionDocument), required=False)
    created_at = fields.DateTimeField(required=False)

    meta = {'collection': 'messages', 'ordering': ['-created_at']}

    @classmethod
    def set_timings(cls, sender, document, **kwargs):
        """
        Set Created and expiration at on Save
        :param sender:
        :param document:
        :param kwargs:
        :return:
        """
        document.created_at = datetime.utcnow()
Пример #19
0
class CalendarAcl(EmbeddedDocument):
    """A calendar ACL"""
    rules = fields.ListField(fields.EmbeddedDocumentField("CalendarAclRule"), required=True)
    read_list = fields.ListField(MultipleReferencesField(document_types=['VosaeUser', 'VosaeGroup']), required=True)
    write_list = fields.ListField(MultipleReferencesField(document_types=['VosaeUser', 'VosaeGroup']))
    negate_list = fields.ListField(MultipleReferencesField(document_types=['VosaeUser', 'VosaeGroup']))

    def genere_rw_list(self):
        """
        Generate a R/W list based on the rules.
        """
        self.read_list = []
        self.write_list = []
        self.negate_list = []
        for rule in self.rules:
            if rule.role is 'NONE':
                self.negate_list.append(rule.principal)
                continue
            if rule.role in CalendarAclRule.READER_ROLES:
                self.read_list.append(rule.principal)
            if rule.role in CalendarAclRule.WRITER_ROLES:
                self.write_list.append(rule.principal)

    def get_owner(self):
        from core.models import VosaeUser
        for rule in self.rules:
            if rule.role == 'OWNER' and isinstance(rule.principal, VosaeUser):
                return rule.principal
        raise ValueError('Calendar has no user owner')
Пример #20
0
class InvoicingSettings(EmbeddedDocument):
    """A wrapper to Invoicing's module settings."""
    TAXES_APPLICATION = TAXES_APPLICATION
    PAYMENT_TYPES = PAYMENT_TYPES
    PAYMENT_CONDITIONS = PAYMENT_CONDITIONS

    supported_currencies = fields.ListField(fields.ReferenceField("Currency"))
    default_currency = fields.ReferenceField("Currency", required=True)
    fy_start_month = fields.IntField(required=True,
                                     default=0,
                                     min_value=0,
                                     max_value=11)
    inv_taxes_application = fields.StringField(required=True,
                                               choices=TAXES_APPLICATION,
                                               default="EXCLUSIVE")
    quotation_validity = fields.IntField(required=True, default=30)
    payment_conditions = fields.StringField(required=True,
                                            choices=PAYMENT_CONDITIONS,
                                            default="CASH")
    custom_payment_conditions = fields.StringField()
    accepted_payment_types = fields.ListField(
        fields.StringField(choices=PAYMENT_TYPES),
        required=True,
        default=lambda: ["CHECK", "CASH", "CREDIT_CARD", "TRANSFER"])
    late_fee_rate = fields.DecimalField()
    down_payment_percent = fields.DecimalField(required=True,
                                               default=lambda: Decimal("0"))
    automatic_reminders = fields.BooleanField(required=True, default=False)
    automatic_reminders_text = fields.StringField(max_length=1024)
    automatic_reminders_send_copy = fields.BooleanField(required=True,
                                                        default=True)
    numbering = fields.EmbeddedDocumentField(
        "InvoicingNumberingSettings",
        required=True,
        default=lambda: InvoicingNumberingSettings())
Пример #21
0
class Goods(Document):
    source = fields.StringField(max_length=50)
    goods_id = fields.StringField(max_length=64)
    goods_url = fields.StringField(max_length=1024, unique=True)
    title = fields.StringField(max_length=1024)
    goods_type = fields.StringField(max_length=50)
    country = fields.StringField(max_length=100)
    link = fields.StringField(max_length=1024)
    mobile_link = fields.StringField(max_length=1024)
    image_link = fields.StringField(max_length=1024)
    images = fields.ListField(fields.StringField(max_length=1024))
    availability = fields.StringField(max_length=100)
    availability_date = fields.StringField(max_length=100)
    price = fields.StringField(max_length=100)
    sale_price = fields.FloatField()
    sale_price_effective_date = fields.StringField(max_length=100)
    brand = fields.StringField(max_length=100)
    material = fields.StringField(max_length=100)
    pattern = fields.StringField(max_length=100)
    shipping = fields.StringField(max_length=100)
    shipping_weight = fields.StringField(max_length=100)
    shipping_label = fields.StringField(max_length=100)
    multipack = fields.StringField(max_length=100)
    sku = fields.ListField(fields.EmbeddedDocumentField(Sku))
    specs = fields.ListField(fields.EmbeddedDocumentField(Specs))
    description = fields.StringField(max_length=1024)
    offer = fields.DateTimeField(Offer)
    price_history = fields.ListField(
        fields.EmbeddedDocumentField(PriceHistory))
    pub_date = fields.DateTimeField(default=datetime.datetime.now)
Пример #22
0
class Invoice(PPrintMixin, DynamicDocument):
    invoice_id = fields.StringField(unique=True, required=True)
    cust_id = fields.StringField(required=True)
    invoice_date = fields.DateTimeField()
    invoicelines = fields.ListField(fields.DictField())
    taxes = fields.ListField(fields.DictField())
    status = fields.StringField(default="new")
    url = fields.StringField()
Пример #23
0
class Project(Document):
    name = fields.StringField(required=True)
    client = fields.ReferenceField(User, required=True)
    input_files = fields.ListField(required=True)
    data_files = fields.ListField(required=False)
    out_put_template = fields.ListField(required=False)
    status = fields.BooleanField(default=False)
    created_at = fields.DateTimeField(default=datetime.utcnow())
Пример #24
0
class Trainer(Document):
    user_id = fields.ReferenceField(User)
    student_ids = fields.ListField(fields.ReferenceField(Student))
    workout_ids = fields.ListField(fields.ReferenceField(Workout))

    def add_student(self, student_id):
        self.student_ids.append(student_id)
        self.save()
Пример #25
0
class Tag(Document):
    _id = fields.ObjectIdField()
    name = fields.StringField()
    description = fields.StringField()
    types = fields.StringField()
    difficulty = fields.IntField()
    book = fields.ReferenceField(Book)
    topic = fields.ListField(fields.ListField(fields.ReferenceField(Chapter)))
Пример #26
0
Файл: models.py Проект: ganap/so
class DialogPreferences(fields.Document):
    owner = fields.IntField()  # HermesUser.pk
    dialog_with_users = fields.ListField(
        fields.IntField(),  # HermesUser.pk
        default=[])
    dialogs = fields.ListField(
        fields.StringField(),  # Dialog.pk
        default=[])
Пример #27
0
class Quest(Document):
    name = fields.StringField(unique = True, requied = True, allow_null = False)
    description = fields.StringField()
    quest_types = fields.ListField(fields.StringField())
    start = fields.GeoPointField()
    rating = fields.FloatField()
    locations = fields.ListField() #тип не определён
    tags = fields.ListField(fields.StringField())
Пример #28
0
class PatchingDumbDocument(Document):
    name = fields.StringField()
    int_fld = fields.IntField()
    lst_fld = fields.ListField()
    dct_fld = fields.DictField()
    intlst_fld = fields.ListField(fields.IntField())
    intdct_fld = fields.MapField(fields.IntField())
    emb = fields.EmbeddedDocumentField(DumbEmbedded)
    emb_lst = fields.EmbeddedDocumentListField(DumbEmbedded)
Пример #29
0
class Workout(Document):
    name = fields.StringField()
    days = fields.ListField(fields.ListField(fields.EmbeddedDocumentField(Exercise)))

    def get_name_obj(self):
        return {
            "name": self.name,
            "id": str(self.id)
        }
Пример #30
0
class MusicPage(MusicWebsiteEntity):
    CONF_UPDATE_INTERVAL = 24 * 3600

    _id = fields.IntField(primary_key=True)
    title = fields.StringField()

    artists = fields.ListField(fields.IntField())
    n_artist = fields.IntField()

    genres = fields.ListField(fields.IntField())
    n_genre = fields.IntField()

    meta = dict(
        collection="site_music_music",
        db_alias=Config.MongoDB.database,
    )

    @property
    def music_id(self):
        return self._id

    def build_url(self):
        return url_builder.url_music_detail(self._id)

    def parse_response(self, url, request, response, html=None, **kwargs):
        if html is None:
            html = response.text

        soup = BeautifulSoup(html, "html.parser")
        div_detail = soup.find("div", id="detail")
        title = div_detail.find("div", class_="title").find("span").text
        artists = [
            int(a["href"].split("/")[-1])
            for a in div_detail.find("div", class_="artists").find_all("a")
        ]
        genres = [
            int(a["href"].split("/")[-1])
            for a in div_detail.find("div", class_="genres").find_all("a")
        ]

        entity = MusicPage(title=title, artists=artists, genres=genres)
        children = list()
        for artist_id in artists:
            children.append(ArtistPage(_id=artist_id))
        for genre_id in genres:
            children.append(GenrePage(_id=genre_id))

        status = Status.S50_Finished.id

        pres = ParseResult(
            entity=entity,
            children=children,
            data={},
            status=status,
        )
        return pres