class User(UserMixin, db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(255), unique=True, nullable=False) email = db.Column(db.String(255), unique=True, nullable=False) _password = db.Column('password', db.String(255), nullable=False) active = db.Column(db.Boolean(), default=True) def _get_password(self): return self._password def _set_password(self, password): if password: password = password.strip() self._password = generate_password_hash(password) password_descriptor = property(_get_password, _set_password) password = synonym('_password', descriptor=password_descriptor) def check_password(self, password): password = password.strip() if not password: return False return check_password_hash(self.password, password) @classmethod def auth(cls, query, email, password): user = query(cls).filter(cls.email == email).first() if user is None: return None, False return user, user.check_password(password)
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) active = db.Column(db.Boolean()) confirmed_at = db.Column(db.DateTime()) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic'))
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String(255)) last_name = db.Column(db.String(255)) email = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) active = db.Column(db.Boolean()) confirmed_at = db.Column(db.DateTime()) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) def __str__(self): return "%s %s" % (self.first_name, self.last_name)
class User(db.Model, UserMixin): __tablename__ = "user" id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(255), unique=True) first_name = db.Column(db.String(255)) last_name = db.Column(db.String(255)) password = db.Column(db.String(255)) active = db.Column(db.Boolean(), default=True) confirmed_at = db.Column(db.DateTime(), default=datetime.datetime.utcnow()) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('user', lazy='dynamic')) def __str__(self): return "{}, {}".format(self.last_name, self.first_name)
class Data(db.Model): __tablename__ = "data" id = db.Column("id", db.Integer(), primary_key=True) project_id = db.Column( "project_id", db.Integer(), db.ForeignKey("project.id"), nullable=False ) assigned_user_id = db.Column( "assigned_user_id", db.Integer(), db.ForeignKey("user.id"), nullable=False ) filename = db.Column("filename", db.String(100), nullable=False, unique=True) original_filename = db.Column("original_filename", db.String(100), nullable=False) reference_transcription = db.Column( "reference_transcription", db.Text(), nullable=True ) is_marked_for_review = db.Column( "is_marked_for_review", db.Boolean(), nullable=False, default=False ) created_at = db.Column( "created_at", db.DateTime(), nullable=False, default=db.func.now() ) last_modified = db.Column( "last_modified", db.DateTime(), nullable=False, default=db.func.now(), onupdate=db.func.utc_timestamp(), ) project = db.relationship("Project") assigned_user = db.relationship("User") segmentations = db.relationship("Segmentation", backref="Data") def update_marked_review(self, marked_review): self.is_marked_for_review = marked_review def set_segmentations(self, segmentations): self.segmentations = segmentations def to_dict(self): return { "original_filename": self.original_filename, "filename": self.filename, "url": f"/audios/{self.filename}", "reference_transcription": self.reference_transcription, "is_marked_for_review": self.is_marked_for_review, "created_at": self.created_at, "last_modified": self.last_modified, "assigned_user": { "id": self.assigned_user_id, "username": self.assigned_user.username, "role": self.assigned_user.role.role, }, }