class TipoDeItem(db.Model): """ Modelo de Tipo de Item """ __tablename__ = 'TipoDeItem' idTipoDeItem = db.Column(db.Integer, primary_key=True, nullable=False) nombre = db.Column(db.String(45), unique=True, nullable=False) descripcion = db.Column(db.String(150)) # one to many: Relaciona Fase x Tipo de Item faseId = db.Column(db.Integer, db.ForeignKey('Fase.idFase')) # one to many: Relaciona Proyecto x Tipo de Item proyectoId = db.Column(db.Integer, db.ForeignKey('Proyecto.idProyecto')) # one to many: Relaciona Tipo de Item x Item listaItem = db.relationship('Item', backref='tipoDeItem', lazy='dynamic') # many to many: Relaciona Tipo de Item x Tipo de Atributo atributosItem = db.relationship('TipoDeAtributo', secondary=atributosItem, backref=db.backref('tipoDeItem', lazy='dynamic')) def __init__(self, nombre=None, descripcion=None): """ constructor de tipo de item """ self.nombre = nombre self.descripcion = descripcion def __repr__(self): return self.nombre
class LineaBase(db.Model): """ Modelo de Linea Base""" __tablename__ = 'LineaBase' idLineaBase = db.Column(db.Integer, primary_key=True, nullable=False) nombre = db.Column(db.String(45), unique=True, nullable=False) descripcion = db.Column(db.String(150)) estado = db.Column(db.String(20), default='Activo', nullable=False) # many to many: Relaciona LineaBase x Item itemsLB = db.relationship('Item', secondary=itemsLB, backref=db.backref('lineaBases', lazy='dynamic')) # one to many: Relaciona Linea Base x fase faseId = db.Column(db.Integer, db.ForeignKey('Fase.idFase')) def __init__(self, nombre=None, descripcion=None, fase=None): """ constructor de linea base """ self.nombre = nombre self.descripcion = descripcion self.Fase = fase def __repr__(self): return self.nombre
class Proyecto(db.Model): """ Modelo de Proyecto """ __tablename__ = 'Proyecto' idProyecto = db.Column(db.Integer, primary_key=True, nullable=False) nombre = db.Column(db.String(45), unique=True, nullable=False) descripcion = db.Column(db.String(150)) presupuesto = db.Column(db.Integer) fechaDeCreacion = db.Column(db.DateTime, default=datetime.now(), nullable=False) estado = db.Column(db.String(20), default='Pendiente', nullable=False) # one to many: Relaciona Proyecto x Fase listafases = db.relationship('Fase', backref='Proyecto', lazy='dynamic') # many to many: Relaciona Proyecto x User users = db.relationship('User', secondary=users, backref=db.backref('proyectos', lazy='dynamic')) # one to many: Relaciona Proyecto x Tipo de Item listaTipoDeItem = db.relationship('TipoDeItem', backref='Proyecto', lazy='dynamic') # one to many: Relaciona Proyecto x Ususario(Lider) lider = db.Column(db.Integer, db.ForeignKey('User.idUser')) def __init__(self, nombre=None, descripcion=None, presupuesto=None, listafases=[None]): """ constructor de Proyecto """ self.nombre = nombre self.descripcion = descripcion self.presupuesto = presupuesto self.listafases = listafases def __repr__(self): return self.nombre
class Fase(db.Model): """ Modelo de Fase """ __tablename__ = 'Fase' idFase = db.Column(db.Integer, primary_key=True, nullable=False) nombre = db.Column(db.String(45), unique=True, nullable=False) descripcion = db.Column(db.String(150)) estado = db.Column(db.String(20), default='Pendiente', nullable=False) orden = db.Column(db.Integer, nullable=False) fechaDeCreacion = db.Column(db.DateTime, default=datetime.now(), nullable=False) # one to many: Relaciona Proyecto x Fase proyectoId = db.Column(db.Integer, db.ForeignKey('Proyecto.idProyecto')) # one to many: Relaciona Fase x Tipo de Item listaTipoDeItem = db.relationship('TipoDeItem', backref='Fase', lazy='dynamic') # one to many: Relaciona Fase x Item listaItem = db.relationship('Item', backref='Fase', lazy='dynamic') # one to many: Relaciona Fase x Linea Base listaLineaBase = db.relationship('LineaBase', backref='Fase', lazy='dynamic') def __init__(self, nombre=None, descripcion=None, orden=None): """ constructor de fase """ self.nombre = nombre self.descripcion = descripcion self.orden = orden def __repr__(self): return self.nombre
class Rol(db.Model): """ Modelo de Rol """ __tablename__ = 'Rol' idRol = db.Column(db.Integer, primary_key=True, nullable=False) nombre = db.Column(db.String(45), unique=True, nullable=False) ambito = db.Column( db.String(45)) # corresponde al proyecto en el cual se creo descripcion = db.Column(db.String(150)) # many to many: Relaciona Rol x Permiso permisos = db.relationship('Permiso', secondary=permisos, backref=db.backref('roles', lazy='dynamic')) def __init__(self, nombre=None, descripcion=None): """ constructor de Rol """ self.nombre = nombre self.descripcion = descripcion def __init__(self, nombre=None, descripcion=None, ambito=None): """ constructor de Rol sin permisos """ self.nombre = nombre self.ambito = ambito self.descripcion = descripcion def __init__(self, nombre=None, descripcion=None, ambito=None, permisos=[None]): """ constructor de Rol con permisos""" self.nombre = nombre self.ambito = ambito self.descripcion = descripcion self.permisos = permisos def __repr__(self): return self.nombre
class User(db.Model): """ Modelo de Usuario """ __tablename__ = 'User' idUser = db.Column(db.Integer, primary_key=True, nullable=False) name = db.Column(db.String(15), unique=True, nullable=False) passwd = db.Column(db.String(15), nullable=False) nombre = db.Column(db.String(45), nullable=False) apellido = db.Column(db.String(45), nullable=False) email = db.Column(db.String(45)) telefono = db.Column(db.Integer) obs = db.Column(db.String(150)) estado = db.Column(db.String(20), default='Inactivo', nullable=False) # many to many: Relaciona User x Rol roles = db.relationship('Rol', secondary=roles, backref=db.backref('users', lazy='dynamic')) # one to many: Relaciona User x Proyecto listaproyectos = db.relationship('Proyecto', backref='User', lazy='dynamic') def __init__(self, name=None, passwd=None, nombre=None, apellido=None, email=None, telefono=None, obs=None): """ constructor de user """ self.name = name self.passwd = passwd self.nombre = nombre self.apellido = apellido self.email = email self.telefono = telefono self.obs = obs def __init__(self, name=None, passwd=None, nombre=None, apellido=None, email=None, telefono=None, obs=None, roles=[None]): """ constructor de user """ self.name = name self.passwd = passwd self.nombre = nombre self.apellido = apellido self.email = email self.telefono = telefono self.obs = obs self.roles = roles def __repr__(self): return self.name