Example #1
0
class BesoinFinancier(db.Document):
    commande = db.StringField()
    fournisseur = db.StringField()
    montant = db.FloatField()
    avance = db.FloatField()
    paye = db.FloatField()
    date_echeance = db.DateTimeField()
    projet_id = db.ReferenceField(Projet)
    attente = db.BooleanField(default=True)
    rejet = db.BooleanField(default=False)
    parent = db.ReferenceField('self')
    last_child = db.BooleanField(default=False)
    updated = db.ListField(db.EmbeddedDocumentField(Update_Besoin))

    def child(self):
        childs = BesoinFinancier.objects(parent=self.id)
        return childs

    def lasted_child(self):
        last = BesoinFinancier.objects(Q(parent=self.id)
                                       & Q(last_child=True)).first()
        return last

    def notified(self):
        data = []
        for notifie in self.updated:
            if notifie.notified:
                data.append(notifie)

        return data
Example #2
0
class User(db.Document):
    email = db.EmailField(required=True, unique=True)
    alias = db.StringField(required=True, unique=True)
    password = db.StringField(min_length=8, required=True)
    emailVerified = db.BooleanField(default=False)
    lastLogin = db.DateTimeField()
    allowTracking = db.BooleanField(default=False)
    isMod = db.BooleanField(default=False)
Example #3
0
class Subject(db.EmbeddedDocument):

    name = db.StringField(max_length=128, required=True)
    birthdate = db.DateTimeField()

    birth_place_known = db.BooleanField(default=False)
    birth_year_known = db.BooleanField(default=False)
    birth_time_known = db.BooleanField(default=False)
    birth_date_known = db.BooleanField(default=True)

    def get_natal_chart(self):
        return astro.get_natal_chart(self.birthdate,
                                     year_known=self.birth_year_known)
Example #4
0
class User(BaseDocument):

    username = db.StringField(verbose_name=u'login',
                              max_length=30,
                              required=True,
                              unique=True)

    name = db.StringField(verbose_name=u'nome', max_length=100)

    email = db.EmailField(verbose_name=u'e-mail',
                          max_length=100,
                          required=True,
                          unique=True)

    pw_hash = db.StringField(verbose_name=u'senha',
                             max_length=100,
                             required=True)

    is_active = db.BooleanField(verbose_name=u'ativo',
                                default=True,
                                required=True)

    is_superuser = db.BooleanField(verbose_name=u'super usuário',
                                   default=False,
                                   required=True)

    last_login = db.DateTimeField(verbose_name=u'último login', required=False)

    meta = {'indexes': ['username', 'email']}

    def __unicode__(self):
        return self.username

    def __init__(self, *args, **kwargs):
        password = kwargs.pop('password', None)
        super(User, self).__init__(*args, **kwargs)
        if password:
            self.set_password(password)

    def set_password(self, password):
        self.pw_hash = generate_password_hash(
            password,
            method=current_app.config['PROJECT_PASSWORD_HASH_METHOD'])

    def check_password(self, password):
        return check_password_hash(self.pw_hash, password)

    def refresh_last_login(self):
        self.last_login = datetime.now()
        self.save()
Example #5
0
class ActionRule(db.Document):
    """
    Rule to control Actions based on labels
    """

    name = db.StringField(required=True, unique=True)
    condition_typ = db.StringField(choices=rule_types)
    conditions = db.ListField(db.EmbeddedDocumentField(ActionCondition))
    outcome = db.ListField(db.EmbeddedDocumentField(ActionOutcome))
    last_match = db.BooleanField(default=False)
    enabled = db.BooleanField()

    meta = {
        'strict': False,
    }
Example #6
0
class TestCase(db.Document):

    """Single case of a TestResult."""
    name = db.StringField(min_length=1, required=True)
    detail = db.StringField(required=True)
    error = db.BooleanField(default=False, required=True)
    passed = db.BooleanField(default=False, required=True)

    def to_dict(self, **kwargs):
        return {
            "name": self.name,
            "detail": self.detail,
            "error": self.error,
            "passed": self.passed
        }
Example #7
0
class User(db.Document): #create object for Mongo
    username=db.StringField(db_field="u", required = True, unique = True) #dbfield name in Mongo: single letter to save space
    password=db.StringField(db_field="p", required = True)
    email=db.EmailField(db_field="e", required = True, unique = True)
    first_name=db.StringField(db_field="fn", max_length=50)
    last_name=db.StringField(db_field="ln", max_length=50)
    created=db.IntField(db_field="c", default=now())
    bio=db.StringField(db_field="b", max_length=200)
    email_confirmed=db.BooleanField(db_field="ec", default=False)
    change_configuration=db.DictField(db_field="cc")
    profile_image = db.StringField(db_field="i", default=None)
    
    @classmethod  #for pre_save
    def pre_save(cls, sender, document, **kwargs): #always called before database save
        document.username = document.username.lower()
        document.email = document.email.lower()
        
    def profile_imgsrc(self, size):
        if self.profile_image:
            if AWS_BUCKET:
                return os.path.join(AWS_CONTENT_URL, AWS_BUCKET, 'user', '%s.%s.%s.png' % (self.id, self.profile_image, size))
            else:
                return url_for('static', filename=os.path.join(STATIC_IMAGE_URL, 'user', '%s.%s.%s.png' % (self.id, self.profile_image, size)))
        else:
            return url_for('static', filename=os.path.join(STATIC_IMAGE_URL, 'user', 'no-profile.%s.png' % (size)))
    meta = {
        'indexes': ['username', 'email', '-created'] #create indices to sort the data
    }
Example #8
0
class User(db.Document):
    user_id     =   db.IntField(unique=True)
    first_name  =   db.StringField(max_length=20)
    last_name   =   db.StringField(max_length=20)
    email       =   db.EmailField(max_length=30, unique=True)
    birthday    =   db.DateField()
    gender      =   db.StringField()
    address     =   db.StringField()
    suburb      =   db.StringField()
    postcode    =   db.IntField(length=4)
    description =   db.StringField(max_length = 200)
    password    =   db.StringField(max_length=20)
    available   =   db.BooleanField(default=True)
    token       =   db.StringField()
    contacts    =   db.ListField(Contact)
    # profile_pic =   
    
    def set_password(self, password):
        self.password = generate_password_hash(password)

    def get_password(self, password):
        return check_password_hash(self.password, password)   

    def assign_token(self, id):
        secret = 'YUWA'
        token = str(jwt.encode({'id': id}, secret, algorithm='HS256'))
        self.token = token
        db.Users.update(
            {"_id": id}, 
            {$set: {"token": token}}
        )
        return token

    def invalidate_token(self, token):
        self.token = ""
class User(db.Document):
    username = db.StringField(db_field="u", required=True, unique=True)
    password = db.StringField(db_field="p", required=True)
    email = db.EmailField(db_field="e", required=True, unique=True)
    first_name = db.StringField(db_field="fn", max_length=50)
    last_name = db.StringField(db_field="ln", max_length=50)
    created = db.IntField(db_field="c", default=now())
    bio = db.StringField(db_field="b", max_length=160)
    email_confirmed = db.BooleanField(db_field="ecf", default=False)
    change_configuration = db.DictField(db_field="cc")
    profile_image = db.StringField(db_field="i", default=None)

    # Make username and email all lowercase
    # This method is called before object is written to the database
    @classmethod
    # Do any manipulations you need to do within pre_save
    def pre_save(cls, sender, document, **kwargs):
        document.username = document.username.lower()
        document.email = document.email.lower()

    def profile_imgsrc(self, size):
        # return os.path.join(IMAGE_URL, "user", "%s.%s.%s.png" % (self.id,
        #                     self.profile_image, size))
        return os.path.join(
            IMAGE_URL, "user",
            "{0}.{1}.{2}.png".format(self.id, self.profile_image, size))

    # Add indexes
    meta = {
        "indexes": ["username", "email", "-created"]
        # -created means sort order reversed to get most recent members
    }
Example #10
0
class User(db.Document):
    
    #  db_field='u' the first character of the field name => saves space in large
    #  databases
    username = db.StringField(db_field='u', required=True, unique=True)
    password = db.StringField(db_field='p', required=True)
    email = db.StringField(db_field='e', required=True, unique=True)
    first_name = db.StringField(db_field='fn', max_length=50)
    last_name = db.StringField(db_field='ln', max_length=50)
    
    #  create a time stamp(NB NOT a date because a time stampe cn give more 
    #  information). Use a helper function 
    created = db.IntField(db_field='c', default=now())
    bio = db.StringField(db_field='b', max_length=160)
    
    #  Confirm email. Usually after registration the email of the account is verified
    email_confirmed = db.BooleanField(db_field='ecf', default=False)
    
    # A dictionary object in json format that will store the old and new email
    # when the email is changing. In a transition phase
    change_configuration = db.DictField(db_field='cc')
    #  Add the indexes by using the meta properties of the class. Give a string
    #  of the indexes. The minus created means that the sort order is reversed
    meta = {
        'indexes':['username', 'email', '-created']
    }
    
    # The @classmethod will be called prior to the save to the database
    # so can make any adjustments here ie change fields to lower case
    #  pre_save is a mongo method
    @classmethod
    def pre_save(cls, sender, document, **kwargs):
        document.username = document.username.lower()
        document.email = document.email.lower()
Example #11
0
class Roles(db.Document):
    titre = db.StringField()
    description = db.StringField()
    valeur = db.StringField()
    action = db.IntField()
    active = db.BooleanField(default=True)
    parent = db.ReferenceField("self")
Example #12
0
class Pet(db.Document):
    external_id = db.StringField(db_field="ei")
    name = db.StringField(db_field="n")
    species = db.StringField(db_field="s")
    breed = db.StringField(db_field="b")
    age = db.IntField(db_field="a")
    store = db.ReferenceField(Store, db_field="st")
    price = db.DecimalField(db_field="p", precision=2, rounding='ROUND_HALF_UP')
    sold = db.BooleanField(db_field="sl", default=False)
    received_date = db.DateTimeField(db_field="rd")
    sold_date = db.DateTimeField(db_field="sd")
    live = db.BooleanField(db_field="l", default=True)

    meta = {
        'indexes': [('external_id', 'live'), ('species', 'live'), ('store', 'live')]
    }
Example #13
0
class User(db.Document):
    user_id     =   db.IntField( unique=True )
    first_name  =   db.StringField( max_length=20 )
    last_name   =   db.StringField( max_length=20 )
    email       =   db.StringField( max_length=30, unique=True )
    password    =   db.StringField( max_length=20)
    available   =   db.BooleanField( default=True )
    
    def set_password(self, password):
        self.password = generate_password_hash(password)

    def get_password(self, password):
        return check_password_hash(self.password, password)    

#class Family(db.Document):
    

# class Course(db.Document):
#     courseID   =   db.StringField( max_length=10, unique=True )
#     title       =   db.StringField( max_length=100 )
#     description =   db.StringField( max_length=255 )
#     credits     =   db.IntField()
#     term        =   db.StringField( max_length=25 )

# class Enrollment(db.Document):
#     user_id     =   db.IntField()
#     courseID    =   db.StringField( max_length=10 )
Example #14
0
class Message(db.Document):
    from_user = db.ReferenceField(User, db_field="fu", reverse_delete_rule=CASCADE)
    to_user = db.ReferenceField(User, db_field="tu", default=None, reverse_delete_rule=CASCADE)
    text = db.StringField(db_field="t", max_length=1024)
    live = db.BooleanField(db_field="l", default=True)
    create_date = db.LongField(db_field="c", default=now())
    parent = db.ObjectIdField(db_field="p", default=None)
    images = db.ListField(db_field="ii")
    message_type = db.IntField(db_field="mt", default=POST, choices=MESSAGE_TYPE)
    
    @property
    def text_linkified(self):
        return linkify(self.text)        
    
    @property
    def human_timestamp(self):
        return ms_stamp_humanize(self.create_date)
        
    @property
    def comments(self):
        return Message.objects.filter(parent=self.id, message_type=COMMENT).order_by('create_date')

    @property
    def likes(self):
        return Message.objects.filter(parent=self.id, message_type=LIKE).order_by('-create_date')

    def post_imgsrc(self, image_ts, size):
        if AWS_BUCKET:
            return os.path.join(AWS_CONTENT_URL, AWS_BUCKET, 'posts', '%s.%s.%s.png' % (self.id, image_ts, size))
        else:
            return url_for('static', filename=os.path.join(STATIC_IMAGE_URL, 'posts', '%s.%s.%s.png' % (self.id, image_ts, size)))

    meta = {
        'indexes': [('from_user', 'to_user', '-create_date', 'message_type', 'live')]
    }
Example #15
0
class User(db.Document, UserMixin):
    email = db.StringField(required=True)
    username = db.StringField(required=True)
    confirmed = db.BooleanField(required=True, default=False)

    password_hash = db.StringField(required=True, max_length=128)

    @property
    def password(self):
        raise AttributeError('password is not a readable attribute')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)

    def generate_confirmation_token(self, expiration=3600):
        s = Serializer(current_app.config["SECRET_KEY"], expiration)
        return s.dumps({"confirm": self.email})

    def confirm(self, token):
        s = Serializer(current_app.config["SECRET_KEY"])
        try:
            data = s.loads(token)
        except:
            return False
        if data.get("confirm") != self.email:
            return False
        self.confirmed = True
        self.save()
        return True
Example #16
0
class User(BaseDocument):
    name = db.StringField(verbose_name=u'name', max_length=100)

    email = db.EmailField(verbose_name=u'email',
                          max_length=100,
                          required=True,
                          unique=True)

    pw_hash = db.StringField(verbose_name=u'Password Hash',
                             max_length=100,
                             required=True)

    is_superuser = db.BooleanField(verbose_name=u'Is Superuser', default=False)

    meta = {'indexes': ['email']}

    def __unicode__(self):
        return self.name

    def __init__(self, *args, **kwargs):
        password = kwargs.pop('password', None)
        super(User, self).__init__(*args, **kwargs)
        if password:
            self.set_password(password)

    def set_password(self, password):
        self.pw_hash = generate_password_hash(
            password,
            method=current_app.config['PROJECT_PASSWORD_HASH_METHOD'])

    def check_password(self, password):
        return check_password_hash(self.pw_hash, password)
Example #17
0
class HostParams(db.EmbeddedDocument):
    """
    Custom Params
    """
    name = db.StringField()
    value = db.StringField()
    trigger = db.BooleanField()
Example #18
0
class User(db.Document):
    username = db.StringField(db_field="u", required=True, unique=True)
    password = db.StringField(db_field="p", required=True)
    email = db.EmailField(db_field="e", required=True, unique=True)
    first_name = db.StringField(db_field="fn", max_length=50)
    last_name = db.StringField(db_field="ln", max_length=50)
    created = db.IntField(db_field="c", default=now())
    bio = db.StringField(db_field="b", max_length=160)
    email_confirmed = db.BooleanField(db_field="ecf", default=False)
    change_configuration = db.DictField(db_field="cc")
    profile_image = db.StringField(db_field="i", default=None)

    @classmethod
    def pre_save(cls, sender, document, **kwargs):
        document.username = document.username.lower()
        document.email = document.email.lower()

    def profile_imgsrc(self, size):
        if self.profile_image:
            if AWS_BUCKET:
                return os.path.join(AWS_CONTENT_URL, AWS_BUCKET, 'user',
                                    '%s.%s.%s.png' % (self.id, self.profile_image, size))
            else:
                return url_for('static', filename=os.path.join(STATIC_IMAGE_URL, 'user',
                                                               '%s.%s.%s.png' % (self.id, self.profile_image, size)))
        else:
            return url_for('static', filename=os.path.join(STATIC_IMAGE_URL, 'user', 'no-profile.%s.png' % (size)))

    meta = {
        'indexes': ['username', 'email', '-created']
    }
Example #19
0
class Email(db.EmbeddedDocument):
    email_id = db.StringField(primary_key=True)
    email = db.StringField()
    is_primary = db.BooleanField(db_field="is_primary", default=False)
    created_at = db.DateTimeField(default=datetime.now())
    updated_at = db.DateTimeField()
    deleted_at = db.DateTimeField()
Example #20
0
class LabelRule(db.Document):
    """
    Rule to filter Labels
    """
    name = db.StringField(required=True, unique=True)
    conditions = db.ListField(db.EmbeddedDocumentField(LabelCondition))
    outcome = db.ListField(db.StringField(choices=label_outcome_types))
    enabled = db.BooleanField()
Example #21
0
class HostRule(db.Document):
    """
    Host Rule to add custom Parameters for importers or exporters
    """
    name = db.StringField(required=True, unique=True)
    conditions = db.ListField(db.EmbeddedDocumentField(HostCondition))
    params = db.ListField(db.EmbeddedDocumentField(HostParams))
    enabled = db.BooleanField()
Example #22
0
class Profil(db.Document):
    name = db.StringField()
    description = db.StringField()
    active = db.BooleanField()

    def count_role(self):
        profil_role_exist = ProfilRole.objects(id=self.id)
        return len(profil_role_exist)
Example #23
0
class Urls_to_crawl(db.Document):
    url = db.StringField(max_length=500, unique=True, required=True)
    channel_id = channel_id = db.IntField()
    title = db.StringField(max_length=200)
    topic_id = db.IntField()
    published_date = db.DateTimeField(default=datetime.now)
    description = db.StringField(max_length=500)
    visited = db.BooleanField(default=False)
    page_depth = db.IntField(required=True)
class Customer(db.Document):
    name = db.StringField()
    email = db.StringField()
    facebook = db.StringField()
    phone = db.StringField()
    current = db.BooleanField()
    created_by = db.ReferenceField(User)
    created_at = db.DateTimeField()
    modified_at = db.DateTimeField()
Example #25
0
class Trumptweet(db.Document):
    source = db.StringField(max_length=50)
    id_str = db.StringField(max_length=50)
    text = db.StringField(max_length=280)
    created_at = db.StringField(max_length=50)
    retweet_count = db.IntField(max_length=50)
    in_reply_to_user_id_str = db.StringField(max_length=50)
    favorite_count = db.IntField(max_length=50)
    is_retweet = db.BooleanField(max_length=50)
Example #26
0
class Submission(db.Document):

    """A student's submission."""
    created_at = db.DateTimeField(
        default=datetime.datetime.utcnow, required=True)
    test_results = db.ListField(
        db.ReferenceField('TestResult', reverse_delete_rule=db.PULL))
    processed = db.BooleanField(default=False, required=True)
    submitter = db.ReferenceField('Student', required=True,
                                  reverse_delete_rule=db.CASCADE)
    project = db.ReferenceField('Project', required=True)
    code = db.FileField(required=True)
    compile_status = db.BooleanField(default=False, required=True)
    compiler_out = db.StringField()
    started_processing_at = db.DateTimeField()
    finished_processing_at = db.DateTimeField()

    meta = {
        "indexes": [
            {
                "fields": ['submitter']
            },
            {
               "fields": ['project']
            }
        ]
    }

    def reset(self):
        """
        Resets status as if never processed.
        Note: Saves document.
        """
        self.processed = False
        self.compile_status = False
        self.compiler_out = None
        self.started_processing_at = None
        self.finished_processing_at = None
        for result in list(self.test_results):
            for case in list(result.cases):
                case.delete()
            result.delete()
        self.test_results = []
        self.save()
Example #27
0
class Event(db.Document):
    name = db.StringField(required=True)
    place = db.StringField(required=True)
    location = db.PointField(required=True)
    start_datetime = db.DateTimeField(required=True)
    end_datetime = db.DateTimeField(required=True)
    event_photo = db.StringField()
    description = db.StringField(min_length=50, required=True)
    host = db.ObjectIdField(required=True)
    cancel = db.BooleanField(default=False)
    attendees = db.ListField(db.ReferenceField(User))
Example #28
0
class Store(db.Document):
    external_id = db.StringField(db_field="ei")
    neighborhood = db.StringField(db_field="n")
    name = db.StringField(db_field="na")
    street_address = db.StringField(db_field="sa")
    city = db.StringField(db_field="c")
    state = db.StringField(db_field="st")
    zip = db.StringField(db_field="z")
    phone = db.StringField(db_field="p")
    store_id = db.StringField(db_field="si")
    live = db.BooleanField(db_field="l", default=True)

    meta = {'indexes': [('external_id', 'live')]}
Example #29
0
class Booking(db.Document):
    customers = db.ListField(
        db.ReferenceField(Customer, reverse_delete_rule=mongoengine.PULL))
    room_name = db.StringField()
    check_in = db.DateTimeField()
    check_out = db.DateTimeField()
    deposit = db.DecimalField()
    modified_at = db.DateTimeField()
    ppm = db.DecimalField()
    created_at = db.DateTimeField()
    created_by = db.ReferenceField(User)
    note = db.StringField()
    room_type = db.IntField()
    confirmed = db.BooleanField()
Example #30
0
class Message(db.Document):
    from_user = db.ReferenceField(User, db_field="fu", reverse_delete_rule=CASCADE)
    
    #optional, if not set, from_user is broadcasting. If set message sent to specific person
    to_user = db.ReferenceField(User, db_field="tu", default=None, reverse_delete_rule=CASCADE)
    text = db.StringField(db_field="t", max_length=300)
    live = db.BooleanField(db_field="l", default=None)
    create_date = db.IntField(db_field="cd", default=now())
    parent = db.ObjectIdField(db_field="p", default=None)
    image = db.StringField(db_field="i", default=None)
    
    meta = {
        'indexes': [('from_user', 'to_user', '-create_date', 'parent', 'live')]
    }