예제 #1
0
class Usuario(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True)
    password_hash = db.Column(db.String(128))
    active = db.Column(db.Boolean())
    last_login_at = db.Column(db.String(255))
    current_login_at = db.Column(db.String(255))
    last_login_ip = db.Column(db.String(255))
    current_login_ip = db.Column(db.String(255))
    login_count = db.Column(db.String(255))
    confirmed_at = db.Column(db.DateTime())
    roles = db.relationship('Rol',
                            secondary=roles_usuarios,
                            backref=db.backref('users', lazy='dynamic'))

    @property
    def password(self):
        raise AttributeError('password is not a readable attribute')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)
class Rol(db_sql.Model, RoleMixin):
    id = db_sql.Column(db_sql.Integer(), primary_key=True)
    name = db_sql.Column(db_sql.String(80), unique=True)
    description = db_sql.Column(db_sql.String(255))

    def __unicode__(self):
        return self.name

    def __hash__(self):
        return hash(self.name)
예제 #3
0
class Ocupacion(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nombre = db.Column(db.String(20), nullable=False, unique=True)
    descripcion = db.Column(db.String(127))
    usuarios = db.relationship('Usuario', backref='ocupacion', lazy=True)

    def __unicode__(self):
        return self.nombre

    def __hash__(self):
        return hash(self.nombre)
예제 #4
0
class Lugar(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nombre = db.Column(db.String(20), nullable=False, unique=True)
    asignacion_automatica = db.Column(db.Boolean,
                                      nullable=False,
                                      default=False)
    coordenadas = db.Column(Geometry("POLYGON"))
    key = db.Column(db.String(15), default=generate_key)
    hora_apertura = db.Column(db.Time)
    hora_cierre = db.Column(db.Time)
    privado = db.Column(db.Boolean, nullable=False, default=False)

    id_lugar_padre = db.Column(db.Integer,
                               db.ForeignKey('lugar.id'),
                               nullable=True)

    computadoras = db.relationship('Computadora', backref='Lugar', lazy=True)
    lugar_padre = db.relationship('Lugar', remote_side=[id])
    registros = db.relationship('Registro', backref='Lugar', lazy=True)
    usuarios = db.relationship("Usuario", secondary='lugares_usuarios')

    def __unicode__(self):
        return self.nombre

    def __hash__(self):
        return hash(self.nombre)

    @property
    def serialize(self):
        return {
            'id': self.id,
            'nombre': self.nombre,
            'asignacion_automatica': self.asignacion_automatica,
            'coordenadas': str(self.coordenadas),
            'hora_apertura': self.hora_apertura,
            'hora_cierre': self.hora_cierre,
            'privado': self.privado,
        }
class Detalle_registro(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    fecha_hora_toma = db.Column(db.DateTime, nullable=False,
                                default=datetime.utcnow)
    fecha_hora_entrega = db.Column(db.DateTime, nullable=True)

    id_computadora = db.Column(db.Integer, db.ForeignKey('computadora.id'),
                               nullable=False)
    id_registro_entrada = db.Column(db.Integer, db.ForeignKey('registro.id'),
                                    nullable=False)

    id_registro_salida = db.Column(db.Integer, db.ForeignKey('registro.id'),
                                   nullable=False)

    registro_entrada = db.relationship('Registro',
                                       foreign_keys=[id_registro_entrada])

    registro_salida = db.relationship('Registro',
                                      foreign_keys=[id_registro_salida])

    def __unicode__(self):
        return self.id

    def __hash__(self):
        return hash(self.id)

    def __repr__(self):
        return '<Detalle_registro %d | %d>' % (self.id, self.id_registro_entrada)

    @property
    def serialize(self):
        return {
            'id': self.id,
            'fecha_hora_toma': self.fecha_hora_toma,
            'fecha_hora_entrega': self.fecha_hora_entrega,
        }
예제 #6
0
class Usuario(db.Model, UserMixin):
    # Datos indizados
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True)
    # Datos de login
    password = db.Column(db.String(512))
    # Datos extra
    codigo = db.Column(db.String(15), unique=True)
    nip = db.Column(db.String(4))
    apellido_paterno = db.Column(db.String(20))
    apellido_materno = db.Column(db.String(20))
    nombres = db.Column(db.String(30))
    token = db.Column(db.String(32), nullable=True)
    # Datos de seguridad
    active = db.Column(db.Boolean())
    last_login_at = db.Column(db.String(255))
    current_login_at = db.Column(db.String(255))
    last_login_ip = db.Column(db.String(255))
    current_login_ip = db.Column(db.String(255))
    login_count = db.Column(db.String(255))
    confirmed_at = db.Column(db.DateTime())
    # Relaciones
    id_ocupacion = db.Column(db.Integer, db.ForeignKey('ocupacion.id'))
    registros = db.relationship('Registro', backref='Usuario', lazy=True)
    roles = db.relationship('Rol',
                            secondary=roles_usuarios,
                            backref=db.backref('usuarios',
                                               lazy='dynamic'))
    lugares = db.relationship("Lugar",
                              secondary='lugares_usuarios')

    def __unicode__(self):
        return self.email

    def __hash__(self):
        return hash(self.email)
    # @property
    # def password(self):
    #     # raise AttributeError('password is not a readable attribute')
    #     return self.password_hash
    #
    # @password.setter
    # def password(self, password):
    #     self.password_hash = generate_password_hash(password)
    #
    # def verify_password(self, password):
    #     return check_password_hash(self.password_hash, password)

    @property
    def serialize(self):
        return {
            'id': self.id,
            'email': self.email,
            # Datos extra
            'codigo': self.codigo,
            'apellido_paterno': self.apellido_paterno,
            'apellido_materno': self.apellido_materno,
            'nombres': self.nombres,
            'active': self.active,
        }
예제 #7
0
class Rol(db_sql.Model, RoleMixin):
    id = db_sql.Column(db_sql.Integer(), primary_key=True)
    name = db_sql.Column(db_sql.String(80), unique=True)
    description = db_sql.Column(db_sql.String(255))