class Estudiante(db.Model): __tablename__ = "estudiante" id = db.Column(db.Integer, primary_key=True) apellido = db.Column(db.String(255), nullable=False, unique=True) nombre = db.Column(db.String(255), nullable=False, unique=True) fecha_nac = db.Column(db.DateTime, nullable=False) localidad_id = db.Column(db.Integer, primary_key=False) domicilio = db.Column(db.String(255), nullable=False, unique=True) barrio_id = db.Column(db.Integer, db.ForeignKey('barrio.id')) barrio = db.relationship(Barrio, backref=backref('estudiantes_barrio', uselist=True, cascade='delete,all')) genero_id = db.Column(db.Integer, db.ForeignKey('genero.id')) genero = db.relationship(Genero, backref=backref('estudiantes_genero', uselist=True, cascade='delete,all')) tipo_doc_id = db.Column(db.Integer, nullable=False, unique=True) numero = db.Column(db.Integer, nullable=False, unique=True) tel = db.Column(db.String(255), nullable=False, unique=True) escuela_id = db.Column(db.Integer, db.ForeignKey('escuela.id')) escuela = db.relationship(Escuela, backref=backref('estudiantes_escuela', uselist=True, cascade='delete,all')) nivel_id = db.Column(db.Integer, db.ForeignKey('nivel.id')) nivel = db.relationship(Nivel, backref=backref('estudiantes_nivel', uselist=True, cascade='delete,all')) def __init__(self, apellido, nombre, fecha_nac, localidad_id, nivel_id, domicilio, genero_id, escuela_id, tipo_doc_id, numero, tel, barrio_id): self.apellido = apellido self.nombre = nombre self.fecha_nac = fecha_nac self.localidad_id = localidad_id self.nivel_id = nivel_id self.domicilio = domicilio self.genero_id = genero_id self.escuela_id = escuela_id self.tipo_doc_id = tipo_doc_id self.numero = numero self.tel = tel self.barrio_id = barrio_id
class Escuela(db.Model): __tablename__ = "escuela" id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False, unique=True) direccion = db.Column(db.String(255), nullable=False) telefono = db.Column(db.String(255), nullable=False, unique=True) def __init__(self, nombre, direccion, telefono): self.nombre = nombre self.direccion = direccion self.telefono = telefono
class Taller(db.Model): __tablename__ = "taller" id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False, unique=True) nombre_corto = db.Column(db.String(255), nullable=False) ciclos_lectivos = db.relationship("CicloLectivo", secondary=ciclo_lectivo_taller, lazy='subquery') def __init__(self, nombre, nombre_corto): self.nombre = nombre self.nombre_corto = nombre_corto
class Nucleo(db.Model): __tablename__ = "nucleo" id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False, unique=True) direccion = db.Column(db.String(255), nullable=False) telefono = db.Column(db.String(255), nullable=False) preceptores = db.relationship(Preceptor, secondary=preceptor_nucleo, lazy='subquery') def __init__(self, nombre, direccion, telefono): self.nombre = nombre self.direccion = direccion self.telefono = telefono
class Preceptor(db.Model): __tablename__ = "preceptor" id = db.Column(db.Integer, primary_key=True) apellido = db.Column(db.String(255), nullable=False) nombre = db.Column(db.String(255), nullable=False) tel = db.Column(db.String(255), nullable=False, unique=True) nucleos = db.relationship("Nucleo", secondary=preceptor_nucleo, lazy='subquery') def __init__(self, apellido, nombre, telefono): self.apellido = apellido self.nombre = nombre self.telefono = telefono
class Nivel(db.Model): __tablename__ = "nivel" id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False, unique=True) def __init__(self, nombre): self.nombre = nombre
class Rol(db.Model): __tablename__ = "rol" id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False) permisos = db.relationship("Permiso", secondary=rol_tiene_permiso, lazy='subquery')
class TipoInstrumento(db.Model): __tablename__ = "tipo_instrumento" id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False, unique=True) def __init__(self, nombre): self.nombre = nombre
class Instrumento(db.Model): __tablename__ = "instrumento" numero_inventario = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False, unique=True) tipo_instrumento_id = db.Column(db.Integer, db.ForeignKey('tipo_instrumento.id')) tipo_instrumento = db.relationship(TipoInstrumento, backref=backref( 'instrumento_tipo_instrumento', uselist=True, cascade='delete,all')) ruta_imagen = db.Column(db.String(255)) def __init__(self, nombre, tipo_instrumento_id, ruta_imagen): self.nombre = nombre self.tipo_instrumento_id = tipo_instrumento_id self.ruta_imagen = ruta_imagen
class Config(db.Model): __tablename__ = "configuracion" id = db.Column(db.Integer, primary_key=True) titulo = db.Column(db.String(255), nullable=False) email = db.Column(db.String(30), nullable=False) habilitado = db.Column(db.Boolean, nullable=False) registros_por_pagina = db.Column(db.Integer, nullable=False) descripcion = db.Column(db.String(255), nullable=False) def __init__(self, titulo, email, registros_por_pagina, descripcion, habilitado=True): self.titulo = titulo self.email = email self.habilitado = habilitado self.registros_por_pagina = registros_por_pagina self.descripcion = descripcion
class Responsable(db.Model): __tablename__ = "responsable" id = db.Column(db.Integer, primary_key=True) apellido = db.Column(db.String(255), nullable=False) nombre = db.Column(db.String(255), nullable=False) fecha_nac = db.Column(db.DateTime, nullable=False) localidad = db.Column(db.String(255), nullable=False) domicilio = db.Column(db.String(255), nullable=False) genero_id = db.Column(db.Integer, db.ForeignKey('genero.id')) genero = db.relationship(Genero, backref = backref('estudiantes', uselist = True, cascade = 'delete,all')) tipo_documento = db.Column(db.String(255), nullable=False) numero = db.Column(db.Integer, nullable=False, unique=True) telefono = db.Column(db.String(255), nullable=False, unique=True) def __init__(self, apellido, nombre, fecha_nac, localidad, domicilio, genero, tipo_documento, numero, telefono): self.apellido = apellido self.nombre = nombre self.fecha_nac = fecha_nac self.localidad = localidad self.domicilio = domicilio self.genero = genero self.tipo_documento = tipo_documento self.numero = numero self.telefono = telefono
class Usuario(db.Model): __tablename__ = "usuario" id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(255), nullable=False, unique=True) username = db.Column(db.String(255), nullable=False, unique=True) password = db.Column(db.String(255), nullable=False) activo = db.Column(db.Boolean, nullable=False) updated_at = db.Column(db.DateTime) created_at = db.Column(db.DateTime, nullable=False) first_name = db.Column(db.String(255), nullable=False) last_name = db.Column(db.String(255), nullable=False) roles = db.relationship("Rol", secondary=usuario_tiene_rol, lazy="subquery") def __init__(self, email, username, password, first_name, last_name): self.email = email self.username = username self.password = password self.activo = True self.created_at = datetime.datetime.now() self.first_name = first_name self.last_name = last_name
class Permiso(db.Model): __tablename__ = "permiso" id = db.Column(db.Integer, primary_key=True) nombre = db.Column(db.String(255), nullable=False)