class User(db.Model, UserMixin): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) # User authentication information (required for Flask-User) email = db.Column(db.Unicode(255), nullable=False, server_default=u'', unique=True) password = db.Column(db.String(255), nullable=False, server_default='') actiu = db.Column(db.Boolean(), nullable=False, server_default='0') # User information actiu = db.Column('is_active', db.Boolean(), nullable=False, server_default='0') nom = db.Column(db.Unicode(50), nullable=False, server_default=u'') # Relationships roles = db.relationship('Role', secondary='users_roles', backref=db.backref('users', lazy='dynamic')) def __str__(self): return u"Nom : {name}; Email: {email})".format(name=self.nom, email=self.email)
class Tag(db.Model): __tablename__ = 'Tag' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, unique=True, nullable=False) photos = db.relationship('Photo', secondary=photo_tags, backref=db.backref('Tag', lazy=True))
class Vokabel(db.Model): id = db.Column('wort_id', db.Integer, primary_key=True) wort = db.Column(db.String(45)) bedeutung = db.Column(db.String(45)) beispiel = db.Column(db.String(250)) quelle_id = db.Column(db.Integer, db.ForeignKey('quelle.id')) quelle = db.relationship("Quelle", backref=db.backref("Vokabel", lazy=True))
class Document(db.Model, BlobMixin): __tablename__ = 'documents' id = db.Column(db.Integer, primary_key=True) creat = db.Column(db.DateTime, server_default=db.func.now()) nom = db.Column(db.Unicode(length=255), nullable=False, unique=True) compartit = db.Column(db.Boolean(), nullable=False, server_default='0') clients = db.relationship('User', secondary='users_documents', backref=db.backref('documents', lazy='dynamic')) tipus_id = db.Column(db.Integer(), db.ForeignKey('tipus_document.id')) tipus = db.relationship('TipusDocument', foreign_keys=tipus_id) def __str__(self): return u"nom: {name}; document: {filename})".format( name=self.nom, filename=self.filename) def __lt__(self, other): return self.creat > other.creat
class User(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(255)) email = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) offers = db.relationship('Offer', backref='user.creator') requests = db.relationship('Request', backref='user.creator') offers_history = db.relationship('Offer', secondary=offers_history_table, backref=db.backref('passenger_list', lazy='dynamic')) def __init__(self, name, email, password): self.email = email self.name = name self.active = True self.password = User.hashed_password(password) @staticmethod def hashed_password(password): return bcrypt.generate_password_hash(password).decode("utf-8") @staticmethod def get_user_with_email_and_password(email, password): user = User.query.filter_by(email=email).first() if user and bcrypt.check_password_hash(user.password, password): return user else: return None @staticmethod def get_users(): users = User.query.all() #users = users.append([User.query.filter([User.requests] > None).all()]) print(users) return { x.id: { 'name': x.name, 'email': x.email + '@marlboro.edu' } for x in users }
class Photo(db.Model): __tablename__ = 'Photo' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('User.id')) filename = db.Column(db.String, default=None, nullable=True) url = db.Column(db.String, default=None, nullable=True) date_created = db.Column(db.DateTime, default=datetime.utcnow) date_updated = db.Column(db.DateTime, default=datetime.utcnow) caption = db.Column(db.String, default=None, nullable=True) tags = db.relationship('Tag', secondary=photo_tags, lazy='subquery', backref=db.backref('Photo', lazy=True)) likes = db.relationship('Like', backref='Photo', lazy=True) def __init__(self, user_id, filename=None, url=None, caption=None): self.user_id = user_id self.filename = filename self.url = url self.caption = caption