Пример #1
0
class CcUserOtp(Document):

    user_auth_id = fields.IntField(required=True)
    user_profile_id = fields.ObjectIdField(null=True, required=False)
    user_account_id = fields.ObjectIdField(null=True, required=False)
    user_mobile_number = fields.StringField(required=True)
    user_mobile_otp = fields.IntField(required=True)
    # otp_generated_for = fields.IntField(required=False)  # need to be changed
    cc_project_id = fields.IntField(required=True)
    cc_is_otp_used = fields.BooleanField(required=False)
    cc_user_type_id = fields.IntField(required=False)
    otp_creation_time = fields.DateTimeField(default=datetime.now(india))
    otp_expiration_time = fields.DateTimeField(default=datetime.now(india) +
                                               timedelta(seconds=60))
    is_active = fields.BooleanField(default=False, required=False)
    created_by = fields.ObjectIdField(required=False)
    created_at = fields.DateTimeField()
    updated_by = fields.ObjectIdField(required=False)
    updated_at = fields.DateTimeField(default=datetime.utcnow)

    def save(self, *args, **kwargs):
        # if not self.created_at:
        # 	self.created_at = datetime.utcnow()
        # if not self.otp_creation_time: 9923891761
        # 	self.otp_creation_time = datetime.utcnow()

        return super(CcUserOtp, self).save(*args, **kwargs)
Пример #2
0
class RegularModel(Document):
    """
    A model class for testing regular flat fields.
    """
    str_field = fields.StringField()
    str_regex_field = fields.StringField(regex="^valid_regex")
    url_field = fields.URLField()
    email_field = fields.EmailField()
    int_field = fields.IntField()
    long_field = fields.LongField()
    float_field = fields.FloatField()
    boolean_field = fields.BooleanField()
    nullboolean_field = fields.BooleanField(null=True)
    date_field = fields.DateTimeField()
    complexdate_field = fields.ComplexDateTimeField()
    uuid_field = fields.UUIDField()
    id_field = fields.ObjectIdField()
    decimal_field = fields.DecimalField()

    custom_field = CustomField()

    # TODO
    # dynamic_field = fields.DynamicField()
    # bin_field = fields.BinaryField()
    # file_field = fields.FileField()
    # image_field = fields.ImageField()

    def method(self):
        return 'method'
Пример #3
0
class Contestant(Document):
    """Contestant model definition."""

    name = fields.StringField()
    age = fields.StringField()
    occupation = fields.StringField()
    location = fields.StringField()
    detail = fields.StringField()
    facts = fields.ListField()
    image = fields.StringField()
    active = fields.BooleanField()
    drafted = fields.BooleanField()
    roses = fields.IntField()

    def to_json(self):
        return {
            "_id": str(self.pk),
            "name": self.name,
            "age": self.age,
            "occupation": self.occupation,
            "location": self.location,
            "detail": self.detail,
            "facts": self.facts,
            "image": self.image,
            "active": self.active,
            "drafted": self.drafted,
            "roses": self.roses,
        }
Пример #4
0
class Card(Document):
    # define every field
    cardId = fields.StringField()
    dbfId = fields.StringField()
    name = fields.StringField()
    cardSet = fields.StringField()
    type = fields.StringField()
    locale = fields.StringField()
    playerClass = fields.StringField()
    img = fields.StringField()
    imgGold = fields.StringField()
    text = fields.StringField()
    health = fields.IntField()
    artist = fields.StringField()
    mechanics = fields.DynamicField()
    faction = fields.StringField()
    cost = fields.IntField()
    attack = fields.IntField()
    durability = fields.IntField()
    rarity = fields.StringField()
    flavor = fields.StringField()
    collectible = fields.BooleanField()
    race = fields.StringField()
    elite = fields.BooleanField()
    armor = fields.StringField()
Пример #5
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())
Пример #6
0
class CcUserProfile(Document):

    user_auth_id = fields.IntField(required=False)
    first_name = fields.StringField(required=False)
    last_name = fields.StringField(required=False)
    mobile_no = fields.StringField(required=False)
    email = fields.EmailField(required=False)
    gender = fields.IntField(required=False)
    alternate_number = fields.StringField(required=False)
    is_profile_verified = fields.DynamicField(required=False)
    cc_src_type_id = fields.IntField(null=True, required=False)
    cc_project_id = fields.IntField(required=False)
    cc_default_profile = fields.BooleanField(required=False)
    profile_type = fields.IntField(required=False)
    profile_others_info = fields.DynamicField(required=False)
    profile_max_lock_limit = fields.IntField(required=False)
    is_profile_active = fields.BooleanField(required=False)
    country_id = fields.StringField(null=True, required=False)
    state_id = fields.StringField(null=True, required=False)
    city_id = fields.StringField(null=True, required=False)
    area_id = fields.IntField(null=True, required=False)
    cc_user_type_id = fields.IntField(null=True, required=False)
    is_active = fields.BooleanField(default=False, required=False)
    created_by = fields.IntField(required=False)
    created_at = fields.DateTimeField(required=False)
    updated_by = fields.IntField(required=False)
    updated_at = fields.DateTimeField(default=datetime.utcnow)

    def save(self, *args, **kwargs):
        # if not self.created_at:
        # 	self.created_at = datetime.utcnow()

        return super(CcUserProfile, self).save(*args, **kwargs)
Пример #7
0
class CcUserCookies(Document):
    user_auth_id = fields.IntField(required=True, unique=True)
    cc_src_type_id = fields.ObjectIdField(null=True, required=False)
    cc_project_id = fields.ObjectIdField(required=True)
    cc_user_type_id = fields.ObjectIdField(null=True, required=False)
    cc_user_cookie_name = fields.StringField(required=True)
    cc_user_cookie_type = fields.IntField(required=True)
    cc_user_cookie_shared = fields.IntField(required=True)
    cc_user_cookie_key = fields.IntField(required=True)
    cc_user_cookie_details = fields.DynamicField(required=True)
    cc_user_cookie_creation_time = fields.DateTimeField()
    cc_user_cookie_expires_at = fields.DateTimeField()
    cc_user_is_cookie_active = fields.BooleanField(default=False,
                                                   required=False)
    cc_user_cookie_storage_engine = fields.IntField(required=True)
    is_active = fields.BooleanField(default=False, required=False)
    created_by = fields.IntField(required=True)
    created_at = fields.DateTimeField()
    updated_by = fields.IntField(required=True)
    updated_at = fields.DateTimeField(default=datetime.utcnow)

    def save(self, *args, **kwargs):
        if not self.created_at:
            self.created_at = datetime.utcnow()

        return super(CcUserCookies, self).save(*args, **kwargs)
Пример #8
0
class Spell(Attack):
    level = fields.IntField()
    school = fields.StringField()
    casting_time = fields.IntField()
    duration = fields.IntField()
    is_verbal = fields.BooleanField()
    is_somatic = fields.BooleanField()
    is_material = fields.BooleanField()
Пример #9
0
class Editor(Document):
    first_name = fields.StringField(max_length=250)
    last_name = fields.StringField(max_length=250)
    email = fields.EmailField(max_length=250)

    is_definer = fields.BooleanField(default=True)
    is_reviewer = fields.BooleanField(default=False)
    is_publisher = fields.BooleanField(default=False)
Пример #10
0
class User(Document):
    name = fields.StringField(required=True)
    username = fields.StringField(required=True)
    password = fields.StringField(required=True)
    status = fields.BooleanField(default=True)
    client = fields.BooleanField(default=False)
    role = fields.StringField(required=False)
    created_at = fields.DateTimeField(default=datetime.utcnow)
Пример #11
0
class User(db.Document, BaseModelMixin):
    username = fields.StringField()
    _password = fields.StringField(db_field='password')
    email = fields.EmailField(unique=True)
    avatar = fields.StringField(default=None)
    position = fields.StringField()  # 职位
    department = fields.StringField()  # 部门
    phone = fields.StringField()

    equipment_num = fields.LongField(default=0)  # 装置数量
    device_num = fields.LongField(default=0)  # 设备数量
    interface_num = fields.LongField(default=0)  # 接口数量
    cable_num = fields.LongField(default=0)  # 线缆数量

    login_num = fields.LongField(default=0)
    search_num = fields.LongField(default=0)

    author_type = fields.IntField(default=0)
    author_editable = fields.BooleanField(default=True)
    deletable = fields.BooleanField(default=True)
    is_active = fields.BooleanField(default=True)
    token = fields.EmbeddedDocumentField(Token, default=None)

    is_anonymous = False

    def get_id(self):
        return str(self.id)

    @property
    def is_authenticated(self):
        return self.is_active and self.token is not None and self.token.expired_at > datetime.now(
        )

    @property
    def password(self):
        return self._password

    @password.setter
    def password(self, pwd):
        self._password = pbkdf2_sha256.hash(pwd)

    def check_password(self, pwd):
        return pbkdf2_sha256.verify(pwd, self._password)

    def refresh_token(self, token_expired_time):
        self.token.expired_at = datetime.now() + timedelta(
            seconds=token_expired_time)
        return self.save()

    def generate_token(self, token_expired_time):
        token = binascii.hexlify(
            os.urandom(20) + str(self.id).encode('utf-8')).decode()
        expired_at = datetime.now() + timedelta(seconds=token_expired_time)
        self.token = Token(value=token, expired_at=expired_at)
        self.login_num += 1
        self.save()
        return self.token.value
Пример #12
0
class Spell(Skill):
    def __str__(self):
        return 'Spell'

    level = fields.IntField()
    school = fields.StringField()
    is_verbal = fields.BooleanField()
    is_somatic = fields.BooleanField()
    is_material = fields.BooleanField()
Пример #13
0
class PLO(Document):
    numero = fields.StringField(required=True, null=False)
    autor = fields.StringField(required=False, null=True)
    ementa = fields.StringField(required=True, null=False)
    em_tramitacao = fields.BooleanField(required=True, null=False)
    eh_polemico = fields.BooleanField(required=True, null=False)
    apelido = fields.StringField(required=False, null=True)
    tramites = fields.StringField(required=False, null=True)
    texto_integral = fields.URLField(required=False, null=True)
Пример #14
0
class Identity(Document):
    display_name = fields.StringField(required=True, null=False)
    first_name = fields.StringField()
    last_name = fields.StringField()
    image_url = fields.StringField()
    large_image_url = fields.StringField()
    taste_maker = fields.BooleanField()
    verified = fields.BooleanField()

    meta = {"collection": "identity"}
Пример #15
0
class SODiagnosis(fields.Document):
    owner = fields.IntField()
    from_expert = fields.IntField()
    summary = fields.StringField()
    second_opinion = fields.StringField()
    diagnosis = fields.StringField()
    so_obj = fields.DictField()
    request_info = fields.DictField()
    is_closed = fields.BooleanField(default=False)
    is_closed_by_user = fields.BooleanField(default=False)
Пример #16
0
class Rule(Document):
    name = fields.StringField(max_length=100, default=None)
    consequence = fields.EmbeddedDocumentField(RuleConsequence)
    conditions = fields.ListField(fields.EmbeddedDocumentField(RuleCondition))
    active = fields.BooleanField(default=True)
    original = fields.BooleanField(default=True)
    benefit = fields.BooleanField(default=False)
    redeemable = fields.BooleanField(default=False)
    redeemed_by = fields.ListField(fields.ReferenceField(User))
    cost = fields.IntField(default=0)
Пример #17
0
class Attendee(EmbeddedDocument):
    id = fields.StringField()
    email = fields.StringField()
    displayName = fields.StringField()
    organizer = fields.BooleanField()
    self = fields.BooleanField()
    resource = fields.BooleanField()
    optional = fields.BooleanField()
    responseStatus = fields.StringField()
    comment = fields.StringField()
    additionalGuests = fields.IntField()
Пример #18
0
class Users(Document):
    cod = fields.StringField(required=True, unique=True)
    email = fields.StringField(required=True,
                               unique=True,
                               null=False,
                               blank=False)
    password = fields.StringField(required=True, null=False, blank=False)
    last_name = fields.StringField(required=True, null=False, blank=False)
    first_name = fields.StringField(required=True, null=False, blank=False)
    mobile_phone = fields.StringField(required=False, null=False, blank=False)
    isAdmin = fields.BooleanField(required=False, null=False, blank=False)
    isActive = fields.BooleanField(required=False, null=False, blank=False)
    meta = {'strict': False}
Пример #19
0
class User(Document):
    userId = fields.StringField(unique=True)
    expiresAt = fields.DateTimeField()
    refreshToken = fields.StringField()
    lastUpdateTime = fields.DateTimeField(default=datetime.utcnow())
    lastSync = fields.DateTimeField()
    isSync = fields.BooleanField(default=False)
    isFreshing = fields.BooleanField(default=False)
    color_onto = fields.EmbeddedDocumentField(Onto, default=Onto())
    people_onto = fields.EmbeddedDocumentField(Onto, default=Onto())

    @classmethod
    def pre_save(cls, sender, document):
        document.lastUpdateTime = datetime.utcnow()
Пример #20
0
class Testsuite(BaseModel):
    uid = fields.StringField(required=True, primary_key=True)
    name = fields.StringField(required=True, min_length=3, max_length=50)
    level = fields.StringField(required=True,
                               choice=['basic', 'extended', 'advanced'])
    public = fields.BooleanField(default=False)
    enable_suggestions = fields.BooleanField(default=False)
    attempts = fields.IntField(default=0)
    group = fields.ReferenceField(Group, required=True, reverse_delete_rule=2)
    testcases = fields.EmbeddedDocumentListField(Testcase, default=[])
    created_at = fields.IntField(required=True)
    created_by = fields.ReferenceField(User, required=True)
    updated_at = fields.IntField()
    updated_by = fields.ReferenceField(User)
    # db collection
    meta = {"collection": "testsuite"}
Пример #21
0
class Notification(DynamicDocument):
    tenant = fields.ReferenceField("Tenant", required=False)
    recipient = fields.ReferenceField("VosaeUser", required=True)
    sent_at = fields.DateTimeField(required=True, default=datetime_now)
    read = fields.BooleanField(required=True, default=False)

    meta = {
        "indexes": ["tenant", "recipient", "sent_at", "read"],
        "ordering": ["-sent_at"],
        "allow_inheritance": True
    }

    @classmethod
    def post_save(self, sender, document, **kwargs):
        """
        Post save hook handler

        Emits notification through the realtime service
        """
        from notification.api.resources import NotificationResource
        nr = NotificationResource()
        try:
            resource_type = nr._get_type_from_class(nr._meta.polymorphic,
                                                    document.__class__)
        except:
            resource_type = None
        emit_to_channel(
            u'private-user-{0}'.format(unicode(document.recipient.id)),
            u'new-notification', {
                u'id': unicode(document.id),
                u'type': resource_type
            })
Пример #22
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)
Пример #23
0
class Customer(Document):
    customerId = fields.StringField(max_length=10, required=True, null=False)
    customerName = fields.StringField(max_length=100, required=True)
    credit = fields.IntField()
    status = fields.BooleanField()
    remarks = fields.StringField(max_length=255, required=False)
    orders = fields.EmbeddedDocumentListField(Order)
Пример #24
0
class Request(Document):
    category_id = fields.StringField(required=True)
    mobile = fields.StringField(max_length=11)
    # todo keep a check
    radius = fields.IntField(required=True)
    location = fields.PointField(required=True)
    comment = fields.StringField(max_length=1000)
    created_at = fields.DateTimeField(required=True)
    user_id = fields.StringField(max_length=300)
    isCompleted = fields.BooleanField(default=False)
    isPaid = fields.BooleanField(default=False)
    isExpired = fields.BooleanField(default=False)
    provider_id = fields.StringField(max_length=300)
    complaints = fields.ListField(fields.StringField())

    meta = {"db_alias": "default"}
Пример #25
0
class Location(Document):
    """
    A location object
    """
    name = fields.StringField()
    description = fields.StringField()
    address = fields.StringField()
    lat = fields.StringField()
    lng = fields.StringField()
    submitted_by = fields.StringField()
    certified = fields.BooleanField()
    feature_set = fields.EmbeddedDocumentField(FeatureSet,
                                               default=FeatureSet())
    comments = fields.EmbeddedDocumentListField(Comment)

    def __repr__(self):  # pragma: no cover
        return "Location(name=%r)" % self.name

    def toJSType(self):
        """
        => dict of Location
        """
        return dict(name=self.name,
                    description=self.description,
                    address=self.address,
                    lat=self.lat,
                    lng=self.lng,
                    submitted_by=self.submitted_by,
                    certified=self.certified,
                    id=str(self.id),
                    comments=[c.toJSType() for c in self.comments],
                    feature_set=self.feature_set.toJSType())
Пример #26
0
class Place(gj.Document):
    title = fields.StringField(required=True,
                               max_length=70,
                               unique_with='address')
    main_category = fields.StringField(max_length=30, choices=src.categories)
    categories = fields.ListField(fields.StringField(max_length=30,
                                                     choices=src.categories),
                                  default=[])
    main_cuisine = fields.StringField(max_length=30, choices=src.cuisines)
    cuisines = fields.ListField(fields.StringField(max_length=30,
                                                   choices=src.cuisines),
                                default=[])
    additional_services = fields.ListField(fields.StringField(
        max_length=30, choices=src.additional_services),
                                           default=[])
    description = fields.StringField(max_length=3000)
    phone = fields.StringField(required=True, max_length=20, unique=True)
    instagram = fields.URLField()
    website = fields.URLField()
    timezone = fields.StringField(required=True)
    opening_hours = fields.ListField(field=fields.ListField(
        field=fields.DateTimeField(default=datetime.utcnow), max_length=2),
                                     max_length=7,
                                     default=[[None, None]] * 7)
    address = fields.EmbeddedDocumentField(Address, required=True)
    main_photo = fields.ReferenceField(Image, reverse_delete_rule=NULLIFY)
    photos = fields.ListField(fields.ReferenceField(Image,
                                                    reverse_delete_rule=PULL),
                              default=[])
    general_review = fields.ReferenceField(GeneralReview,
                                           reverse_delete_rule=NULLIFY,
                                           unique=True)
    configuration = fields.EmbeddedDocumentField(Configuration)
    is_active = fields.BooleanField(default=False)
Пример #27
0
class LocationUpdate(Document):
    driver = fields.ReferenceField(User)
    timestamp = fields.DateTimeField()
    location = fields.StringField()
    checkin = fields.BooleanField()
    vehicle = fields.ReferenceField(Vehicle)
    handoff = fields.ReferenceField(User)
Пример #28
0
class User(Document):
    meta = {
        "indexes": [
            'email',
        ]
    }

    id = fields.UUIDField(primary_key=True, binary=False)
    username = fields.StringField(required=True, max_length=50)
    email = fields.EmailField(required=True, unique=True)
    password = fields.StringField(required=True)
    role = fields.StringField(default="user")
    active = fields.BooleanField(default=True)
    created_at = fields.DateTimeField(default=datetime.datetime.utcnow())
    modified_at = fields.DateTimeField(default=datetime.datetime.utcnow())

    def get_id(self):
        return self.id.__str__()

    def dict(self):
        return {
            'id': self.get_id(),
            'username': self.username,
            'email': self.email,
            'role': self.role,
            'active': self.active
        }
Пример #29
0
class User(UserMixin, Document):

    username = fields.StringField(unique=True, required=True)

    email = fields.EmailField(required=False)

    password = fields.StringField(required=True)

    api_key = fields.StringField()

    active = fields.BooleanField(default=True)

    slug = fields.StringField(unique=True, required=True)

    def _clean_api_key(self):
        if self.api_key:
            exist = User.objects(api_key=self.api_key,
                                 username__ne=self.username).first()
            if exist:
                message = _(
                    u"Conflict with api_key[%s]. Already exist") % value
                raise NotUniqueError(message)

    @classmethod
    def create_user(cls,
                    username=None,
                    password=None,
                    api_key=None,
                    update_if_exist=False):
        user = cls.objects(username__exact=username).first()

        if user:
            if not update_if_exist:
                return user

        user = user or cls(username=username)
        user.set_password(password)
        user.api_key = api_key
        return user.save()

    def clean(self):
        Document.clean(self)
        validators.clean_email_or_username(self.username,
                                           field_name="username",
                                           error_class=ValidationError)
        if self.api_key:
            self._clean_api_key()

    def save(self, **kwargs):
        self.slug = ModelSlug.unique_slug(User)(self.username)
        return Document.save(self, **kwargs)

    def __unicode__(self):
        return self.username

    meta = {
        'collection': 'user',
        'ordering': ['username'],
        'indexes': ['username', 'slug'],
    }
Пример #30
0
class EventClassVar(EmbeddedDocument):
    meta = {"strict": False}
    name = fields.StringField(required=True)
    description = fields.StringField(required=False)
    type = fields.StringField(
        required=True,
        choices=[(x, x) for x in (
            "str",
            "int",
            "float",
            "ipv4_address",
            "ipv6_address",
            "ip_address",
            "ipv4_prefix",
            "ipv6_prefix",
            "ip_prefix",
            "mac",
            "interface_name",
            "oid",
        )],
    )
    required = fields.BooleanField(required=True)

    def __str__(self):
        return self.name

    def __eq__(self, other):
        return (self.name == other.name
                and self.description == other.description
                and self.type == other.type
                and self.required == other.required)