예제 #1
0
class User(db.Document):
    id = db.SequenceField(primary_key=True)
    email = db.EmailField(required=True, unique=True)
    password = db.StringField(required=False)
    username = db.StringField(required=True, unique=True)
    profile_pic = db.StringField(required=False)
    is_blocked = db.BooleanField(required=False, default=False)
    provider = db.StringField(required=True)

    def serialize(self):  #to select what fields to return in get
        profile_info = {}
        if self.profile_pic:
            profile_info['picture'] = self.profile_pic

        return {
            'id': self.id,
            'email': self.email,
            'username': self.username,
            'profile': profile_info
        }

    def serialize_admin(self):
        fields = self.serialize()
        fields['is_blocked'] = self.is_blocked
        return fields
예제 #2
0
class Card(db.Document):
    STATUS_CHOICES = (
        ('todo', 'Todo'),
        ('in_progress', 'In progress'),
        ('in_review', 'In review'),
        ('done', 'Done'),
    )

    title = db.StringField(required=True, unique_with='board')
    content = db.StringField(required=True)
    created_at = db.DateTimeField(default=now())
    created_by = db.ReferenceField('User')
    completed_at = db.DateTimeField(required=False)
    planned_start_time = db.DateTimeField(required=False)
    planned_end_time = db.DateTimeField(required=False)
    status = db.StringField(choices=STATUS_CHOICES, default='todo')
    comments = db.ListField(db.ReferenceField('Comment'))
    board = db.ReferenceField('Board')

    def save(self, *args, **kwargs):
        instance = super(Card, self).save(*args, **kwargs)

        if self.planned_start_time and self.planned_start_time.replace(tzinfo=utc) > now():
            from app import schedule_card_start_time
            schedule_card_start_time.apply_async(kwargs={'card_id': str(self.id)}, eta=self.planned_start_time)

        if self.planned_end_time and self.planned_end_time.replace(tzinfo=utc) > now():
            from app import schedule_card_end_time
            schedule_card_end_time.apply_async(kwargs={'card_id': str(self.id)}, eta=self.planned_end_time)

        if self.completed_at:
            self.completed_at = now()
            instance.save()

        return instance
예제 #3
0
class Students(db.Document):
    name = db.StringField(required=True)
    s_id = db.IntField(required=True, unique=True)
    course = db.StringField(required=True)
    program = db.StringField(required=True)
    batch = db.StringField(required=True)
    college = db.StringField(required=True)
예제 #4
0
class Website(db.Document):
    url = db.StringField(required=True, unique=True)
    code = db.StringField(required=True, unique=True)
    creation_date = db.DateTimeField()

    def save(self, *args, **kwargs):
        if not self.creation_date:
            self.creation_date = datetime.now()
        return super(Website, self).save(*args, **kwargs)
예제 #5
0
class Task(db.DynamicDocument):
    """Task collection model"""
    text = db.StringField(required=True)
    done = db.BooleanField(required=True)
    weight = db.IntField(requrired=True)
    status = db.StringField()
    projectId = db.StringField()
    deleted = db.BooleanField()

    meta = {'collection': 'tasks'}
예제 #6
0
class Board(db.Document):
    STATUS_CHOICES = (
        ('active', 'Active'),
        ('archived', 'Archived'),
    )
    name = db.StringField(required=True, unique=True)
    status = db.StringField(choices=STATUS_CHOICES, default='active')
    created_at = db.DateTimeField(default=now())
    created_by = db.ReferenceField('User')
    cards = db.ListField(db.ReferenceField('Card'))
예제 #7
0
class User(db.Document):
    email = db.EmailField(unique = True, required = True)
    password = db.StringField(required=True, min_length=8)
    first_name = db.StringField(required=True,max_length=50)
    last_name = db.StringField(required=True, max_length=50)

    def hash_password(self):
        self.password = generate_password_hash(self.password).decode('utf8')

    def check_password(self, password):
        return check_password_hash(self.password, password)
예제 #8
0
class Project(db.DynamicDocument):
    """Project collection model"""
    name = db.StringField(required=True)
    goal = db.StringField()
    password = db.StringField()
    isStarted = db.BooleanField()
    isFinished = db.BooleanField()
    startedAt = db.DateTimeField()
    deadline = db.DateTimeField()

    meta = {'collection': 'projects'}
예제 #9
0
class User(db.Document):
    first_name = db.StringField(required=True)
    last_name = db.StringField(required=True)
    password = db.StringField(required=True)
    email = db.EmailField(required=True, unique=True)

    def save(self, *args, **kwargs):
        self.password = self.create_hashed_password(self.password)
        return super().save(*args, **kwargs)

    @staticmethod
    def create_hashed_password(password):
        return generate_password_hash(password).decode('utf8')

    def check_password(self, password):
        return check_password_hash(self.password, password)
예제 #10
0
class TaskList(BaseModel):
    name = db.StringField(required=True)
    dead_line = db.DateTimeField(required=False)
    tasks = db.ListField(
        db.ReferenceField('Task', reverse_delete_rule=db.CASCADE))

    created_by = db.ReferenceField('User')
예제 #11
0
class User(BaseModel):
    name = db.StringField(required=True, unique=True)
    email = db.EmailField(requred=True, unique=True)
    password = db.StringField(required=True, min_length=6)

    task_lists = db.ListField(
        db.ReferenceField('TaskList', revese_delete_rule=db.CASCADE),
        required=False
    )


    def hash_password(self):
        self.password = generate_password_hash(self.password).decode('utf8')
    

    def check_password(self, password):
        return check_password_hash(self.password, password)
예제 #12
0
class InvalidToken(db.Document): # blacklist
    token = db.StringField(unique=True)
    expire_at = db.DateTimeField()
    meta = {
        'indexes': [
            {'fields': ['expire_at'], 'expireAfterSeconds': 0} # ttl
        ]
    }
예제 #13
0
class User(db.Document):
    email = db.EmailField(required=True, unique=True)
    password = db.StringField(required=True, min_length=6)
    movies = db.ListField(db.ReferenceField('Movie', reverse_delete_rule=db.PULL))

    def hash_password(self):
        self.password = generate_password_hash(self.password).decode('utf8')
    
    def check_password(self, password):
        return check_password_hash(self.password, password)
예제 #14
0
class ResetPasswordCode(db.Document):
    code = db.IntField()
    user_mail = db.StringField()
    expire_at = db.DateTimeField()
    meta = {
        'indexes': [{
            'fields': ['expire_at'],
            'expireAfterSeconds': 0
        }  # ttl
                    ]
    }
예제 #15
0
class Books(db.Document):
    b_id = db.IntField(required=True, unique=True)
    author = db.StringField(required=True)
    country = db.StringField(required=True)
    imageLink = db.StringField(required=True)
    language = db.StringField(required=True)
    link = db.StringField(required=True)
    pages = db.IntField(required=True)
    title = db.StringField(required=True)
    year = db.IntField(required=True)
예제 #16
0
class Project(db.Document):
    link = db.StringField(required=True)
    title = db.StringField(required=True)
    contributors = db.ListField(db.StringField())
    description = db.StringField(required=True)
예제 #17
0
class User(db.Document):
    email = db.StringField(require=True, unique=True)
    password = db.StringField(require=True)
    token = db.ListField(db.StringField())
예제 #18
0
class Github(db.Document):
    link = db.StringField(required=True)
    title = db.StringField(required=True)
예제 #19
0
class Feed(db.Document):
    title = db.StringField(required=True)
    description = db.StringField(required=True)
    link = db.StringField(required=True)
    image = db.StringField(required=True)
예제 #20
0
class Movie(db.Document):
    name = db.StringField(required=True, unique=True)
    ano = db.IntField(require=True, unique=True)
    genero = db.ListField(db.StringField(), required=True)
예제 #21
0
class Movie(db.Document):
    name = db.StringField(required=True, unique=True)
    casts = db.ListField(db.StringField(), required=True)
    genres = db.ListField(db.StringField(), required=True)
    added_by = db.ReferenceField('User')
예제 #22
0
class Task(db.DynamicDocument):
    task_id = db.StringField(required=True)
예제 #23
0
class Tag(db.Document):
    name = db.StringField(required=True)
    slug = db.StringField(required=True)
예제 #24
0
class Resource(db.Document):
    link = db.StringField(required=True)
    title = db.StringField(required=True)
    domain = db.StringField(required=True)
예제 #25
0
class Article(db.Document):
    link = db.StringField(required=True)
    title = db.StringField(required=True)
    domain = db.StringField(required=True)
예제 #26
0
class authoritative_zone(db.Document):
    zone_name = db.StringField(required=True, unique=True)
    primary_server = db.StringField(required=True, unique=True)
    EA = db.ListField(required=False)
    Records = db.ListField(required=False, unique=True)
예제 #27
0
class MediaList(db.Document):
    name = db.StringField(required=True)
    medialist = db.ListField(db.StringField(), required=True)
예제 #28
0
class Holiday(db.Document):
    year = db.IntField(required=True)
    month = db.IntField(required=True)
    day = db.IntField(required=True)
    des = db.StringField(required=False)
예제 #29
0
class Result(db.DynamicDocument):
    result_id = db.StringField(required=True)
예제 #30
0
class Episodes(db.Document):
    name = db.StringField(required=True)
    description = db.StringField(required=True)
    duration = db.StringField(required=True)
    link = db.ListField(db.StringField(), required=True)