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
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
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)
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)
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'}
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'))
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)
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'}
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)
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')
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)
class InvalidToken(db.Document): # blacklist token = db.StringField(unique=True) expire_at = db.DateTimeField() meta = { 'indexes': [ {'fields': ['expire_at'], 'expireAfterSeconds': 0} # ttl ] }
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)
class ResetPasswordCode(db.Document): code = db.IntField() user_mail = db.StringField() expire_at = db.DateTimeField() meta = { 'indexes': [{ 'fields': ['expire_at'], 'expireAfterSeconds': 0 } # ttl ] }
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)
class Project(db.Document): link = db.StringField(required=True) title = db.StringField(required=True) contributors = db.ListField(db.StringField()) description = db.StringField(required=True)
class User(db.Document): email = db.StringField(require=True, unique=True) password = db.StringField(require=True) token = db.ListField(db.StringField())
class Github(db.Document): link = db.StringField(required=True) title = db.StringField(required=True)
class Feed(db.Document): title = db.StringField(required=True) description = db.StringField(required=True) link = db.StringField(required=True) image = db.StringField(required=True)
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)
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')
class Task(db.DynamicDocument): task_id = db.StringField(required=True)
class Tag(db.Document): name = db.StringField(required=True) slug = db.StringField(required=True)
class Resource(db.Document): link = db.StringField(required=True) title = db.StringField(required=True) domain = db.StringField(required=True)
class Article(db.Document): link = db.StringField(required=True) title = db.StringField(required=True) domain = db.StringField(required=True)
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)
class MediaList(db.Document): name = db.StringField(required=True) medialist = db.ListField(db.StringField(), required=True)
class Holiday(db.Document): year = db.IntField(required=True) month = db.IntField(required=True) day = db.IntField(required=True) des = db.StringField(required=False)
class Result(db.DynamicDocument): result_id = db.StringField(required=True)
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)