PDMI/LBI_PiPy/models.py

55 lines
1.7 KiB
Python
Raw Normal View History

2019-04-28 18:49:02 +02:00
import datetime
from flask_security import RoleMixin, UserMixin
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
roles_users = db.Table(
'roles_users',
db.Column('user_id', db.Integer(), db.ForeignKey('user.id', ondelete='CASCADE')),
db.Column('role_id', db.Integer(), db.ForeignKey('role.id', ondelete='CASCADE'))
)
class Role(db.Model, RoleMixin):
__tablename__ = "role"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True)
description = db.Column(db.String(255))
def __str__(self):
return self.name
class Module(db.Model):
__tablename__ = "module"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(400))
versions = db.relationship('ModuleVersion', backref='module', lazy=True)
class ModuleVersion(db.Model):
__tablename__ = "moduleversion"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
version = db.Column(db.String(10))
module_id = db.Column(db.Integer, db.ForeignKey('module.id'), nullable=False)
class User(db.Model, UserMixin):
__tablename__ = "user"
id = db.Column(db.Integer, primary_key=True)
date_created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
username = db.Column(db.String(400))
email = db.Column(db.String(400), unique=True)
password = db.Column(db.String(400))
active = db.Column(db.Boolean)
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('user', lazy='dynamic'))
def __repr__(self):
return str(self.username)
def __str__(self):
return str(self.username)