Example #1
0
def obtener_asistencia_a_tutoria(tid):
    #(token,tkdata) = warden._require_valid_token()
    """
        !!!! TODO: esto se debe activar ni bien esté operativa la nueva version de warden

    if not warden.has_permissions(token, permisos=[NORMAS_CREATE]):
        return ('No tiene permisos para realizar esta acción', 403)
    """
    #uid = tkdata['sub']
    #if not _chequear_usuarios_tutorias(uid):
    #    return ('No tiene permisos para realizar esta acción', 403)

    assert tid is not None

    try:
        with obtener_session() as session:
            asistencias = tutoriasModel.obtener_asistencia(session, tid)
            resultado = [{
                'id': a.id,
                'alumno': a.alumno,
                'situacion': a.situacion.situacion
            } for a in asistencias]
            return jsonify({'status': 200, 'response': resultado})

    except Exception as e:
        return jsonify({'status': 500, 'response': str(e)})
Example #2
0
def crear_asistencia():
    try:

        datos = request.json
        tutoria_id = datos['id']
        situacion_id = datos['situacion_id']
        alumnos = datos['alumnos']

        with obtener_session() as session:
            aid = []
            for alumno_id in alumnos:
                aid.append(
                    tutoriasModel.crear_asistencia(session, tutoria_id,
                                                   alumno_id, situacion_id))
            session.commit()
            return jsonify({
                'status': 200,
                'response': {
                    'tutoria_id': tutoria_id,
                    'asistencias': aid
                }
            })

    except Exception as e:
        return jsonify({'status': 500, 'response': str(e)})
Example #3
0
def eliminar_tutoria(tid):
    (token, tkdata) = warden._require_valid_token()
    if not tkdata:
        return ('Token expirado', 401)
    uid = tkdata['sub']
    """
        !!!! TODO: esto se debe activar ni bien esté operativa la nueva version de warden

    if not warden.has_permissions(token, permisos=[NORMAS_CREATE]):
        return ('No tiene permisos para realizar esta acción', 403)
    """
    #if not _chequear_usuarios_tutorias(uid):
    #    return ('No tiene permisos para realizar esta acción', 403)

    try:

        assert tid is not None

        with obtener_session() as session:
            tid = tutoriasModel.eliminar_tutoria(session, tid, uid)
            session.commit()
            return jsonify({'status': 200, 'response': tid})

    except Exception as e:
        return jsonify({'status': 500, 'response': str(e)})
Example #4
0
def obtener_tutorias():
    (token, tkdata) = warden._require_valid_token()
    if not tkdata:
        return (401, 'Token expirado')
    uid = tkdata['sub']
    """
        !!!! TODO: esto se debe activar ni bien esté operativa la nueva version de warden

    if not warden.has_permissions(token, permisos=[NORMAS_CREATE]):
        return ('No tiene permisos para realizar esta acción', 403)
    """
    #uid = tkdata['sub']
    #if not _chequear_usuarios_tutorias(uid):
    #    return ('No tiene permisos para realizar esta acción', 403)

    try:
        params = request.json

        with obtener_session() as session:
            tutorias = tutoriasModel.obtener_tutorias(session, uid)
            resultado = [{
                'id': t.id,
                'fecha': t.fecha,
                'materia': t.materia,
                'comision': t.comision,
                'aula': t.aula,
                'tutor': t.tutor,
                'nro_alumnos': t.nro_alumnos,
                'asistencia': None
            } for t in tutorias]
            return jsonify({'status': 200, 'response': resultado})

    except Exception as e:
        return jsonify({'status': 500, 'response': str(e)})
Example #5
0
def obtener_tutoria(tid):
    (token, tkdata) = warden._require_valid_token()
    if not tkdata:
        return ('Token expirado', 401)
    uid = tkdata['sub']
    """
        !!!! TODO: esto se debe activar ni bien esté operativa la nueva version de warden

    if not warden.has_permissions(token, permisos=[NORMAS_CREATE]):
        return ('No tiene permisos para realizar esta acción', 403)
    """
    #uid = tkdata['sub']
    #if not _chequear_usuarios_tutorias(uid):
    #    return ('No tiene permisos para realizar esta acción', 403)

    try:
        assert tid is not None
        with obtener_session() as session:
            t = tutoriasModel.obtener_tutoria(session, tid, uid)
            resultado = {
                'id':
                t.id,
                'fecha':
                t.fecha,
                'materia':
                t.materia,
                'comision':
                t.comision,
                'aula':
                t.aula,
                'tutor':
                t.tutor,
                'nro_alumnos':
                t.nro_alumnos,
                'asistencia': [{
                    'id': a.id,
                    'alumno': a.alumno,
                    'situacion': a.situacion.situacion
                } for a in t.asistencia if not a.deleted],
                'qr':
                _generar_qr_para_tutoria(tid)
            }
            return jsonify({'status': 200, 'response': resultado})

    except Exception as e:
        return jsonify({'status': 500, 'response': str(e)})
Example #6
0
def crear_tutoria():
    (token, tkdata) = warden._require_valid_token()
    if not tkdata:
        return (401, 'Token expirado')
    """
        !!!! TODO: esto se debe activar ni bien esté operativa la nueva version de warden

    if not warden.has_permissions(token, permisos=[NORMAS_CREATE]):
        return ('No tiene permisos para realizar esta acción', 403)
    """
    #uid = tkdata['sub']
    #if not _chequear_usuarios_tutorias(uid):
    #    return ('No tiene permisos para realizar esta acción', 403)

    try:
        tutoria = request.json

        assert 'fecha' in tutoria
        assert 'hora_inicio' in tutoria
        assert 'materia' in tutoria
        assert 'comision' in tutoria
        assert 'aula' in tutoria

        tutoria['tutor_id'] = tkdata['sub']

        fecha = parse(tutoria['fecha'])
        tutoria['fecha'] = fecha
        ''' parseo la hora de inicio como segundos a partir de las 00 '''
        rhora = re.compile(r'(\d\d):(\d\d)')
        matchs = rhora.match(tutoria['hora_inicio'])
        if not matchs:
            raise Exception(
                f"formato incorrecto en la hora {tutoria['hora_inicio']}")
        _hora = matchs.group(1)
        _minutos = matchs.group(2)
        hora = int(_hora) * 60 * 60 + int(_minutos) * 60
        tutoria['hora_inicio'] = hora

        with obtener_session() as session:
            tid = tutoriasModel.crear_tutoria(session, tutoria)
            session.commit()
            return jsonify({'status': 200, 'response': tid})

    except Exception as e:
        return jsonify({'status': 500, 'response': str(e)})
if __name__ == '__main__':
    import datetime
    from tutorias.model import obtener_session
    from tutorias.model.entities.Tutorias import Tutoria, Coordinador
    import uuid
    import sys

    coordinador_id = sys.argv[1]

    with obtener_session() as session:

        coordinados = [
            c.tutor_id for c in session.query(Coordinador).filter(
                Coordinador.coordinador_id == coordinador_id).all()
        ]
        tutores = [
            t.tutor_id
            for t in session.query(Tutoria).distinct(Tutoria.tutor_id).all()
        ]
        agregar = list(filter(lambda t: t not in coordinados, tutores))

        for a in agregar:
            c = Coordinador()
            c.id = str(uuid.uuid4())
            c.created = datetime.datetime.utcnow()
            c.tutor_id = a
            c.coordinador_id = coordinador_id
            session.add(c)
        session.commit()