def create():
    if not authenticated(session):
        return render_template('auth/login.html')
    ok = True
    if not pageState():
        ok = False
        for permiso in session['permisos']:
            if "VER_EN_MANTENIMIENTO" == permiso['nombre']:
                ok = True
    if not ok:
        return render_template('error/mantenimiento.html')
    if not usuarioTienePermiso("CREAR_TALLER"):
        return redirect(url_for('pages_home'))

    Taller.db = get_db()

    res = Taller.create(request.form['nombre'], request.form['nombrecorto'],
                        request.form['nucleo'])
    Taller.assign_ciclo(res['idInsertado'], request.form['ciclo'])
    if request.form['docente'] != "0":
        Taller.assign_docente(request.form['docente'], res['idInsertado'])

    Taller.db.commit()

    flash("El taller ha sido creado correctamente.", "success")
    if ('clid' in request.form.keys()):
        return ciclos.detalle()
    return redirect(url_for('listado_talleres'))
def detalle():
    if not authenticated(session):
        return render_template('auth/login.html')
    ok = True
    if not pageState():
        ok = False
        for permiso in session['permisos']:
            if "VER_EN_MANTENIMIENTO" == permiso['nombre']:
                ok = True
    if not ok:
        return render_template('error/mantenimiento.html')
    if not usuarioTienePermiso("DETALLE_TALLER"):
        return redirect(url_for('pages_home'))

    Taller.db = get_db()
    Clase.db = get_db()
    taller = Taller.get_detalle_taller(request.form['id'])
    alumnos = Taller.get_alumnos_taller(request.form['id'])
    docentes = Taller.get_docentes_taller(request.form['id'])
    clases = Clase.get_clases_by_taller(request.form['id'])
    mapeo = request.form['mapeo']
    clid = request.form['clid']
    Estudiante.db = get_db()
    Docente.db = get_db()
    alums = Estudiante.entaller_no_rep(request.form['id'])
    docs = Docente.entaller_no_rep(request.form['id'])
    return render_template('user/detalleTaller.html',
                           taller=taller,
                           alumnos=alumnos,
                           docentes=docentes,
                           docs=docs,
                           alums=alums,
                           clid=clid,
                           mapeo=mapeo,
                           clases=clases)
Beispiel #3
0
def getPanelTalleres(page):
    if auth.authenticated():  # or not auth.authenticated():
        #Obtiene permisos del usuario
        User.db = get_db()
        Ciclo.db = get_db()
        Taller.db = get_db()
        permisos = User.get_permisos(
            session['id'])  #Session user es el email unico del usuario
        if (page > Taller.total_paginas(
                site_controller.get_pagination())) or (not int(page) > 0):
            abort(404)
        lastpage = Taller.getLastPage(site_controller.get_pagination(),
                                      int(page))
        talleres = Taller.all()
        ciclos = Ciclo.all()
        ciclotalleres = Taller.allCicloTallerPaginated(
            site_controller.get_pagination(), int(page))
        return render_template('auth/panel_components/talleres.html',
                               permisos=permisos,
                               page=page,
                               lastpage=lastpage,
                               talleres=talleres,
                               ciclos=ciclos,
                               ciclotalleres=ciclotalleres)
    return redirect(url_for('auth_login'))
Beispiel #4
0
def storeTallerCiclo():
    if not authenticated(session):
        abort(401)
    #Chequea permiso
    User.db = get_db()
    if (User.tiene_permiso(session['id'], 'administrativo_new')):
        if request.method == "POST" and forms.ValidateCicloTaller(
                request.form).validate():
            Ciclo.db = get_db()
            Taller.db = get_db()
            if Ciclo.cicloNoTieneTaller(request.form):
                Taller.storeConTaller(request.form)
                flash("Se agrego el taller al ciclo lectivo correctamente",
                      'success')
            else:
                flash(
                    "El taller ya esta asignado al ciclo lectivo seleccionado",
                    'error')
        else:
            flash(
                'Verifica los campos obligatorios. No ingreses valores no permitidos',
                'error')
        return redirect(url_for('panel_talleres'))
    else:
        abort(401)
def baja_docente():
    Taller.db = get_db()
    Clase.db = get_db()
    res = Clase.get_clases_by_docente_taller(request.form['docid'],
                                             request.form['id'])

    if res['cantidadClases'] == 0:
        Taller.baja_docente(request.form['docid'], request.form['id'])
        flash("El docente ha sido removido correctamente.", "success")
    else:
        flash("El docente tiene clases asignadas y no puede removerse.",
              "danger")
    return detalle()
Beispiel #6
0
def set_estudiantes():
    s_config = siteconfig.get_config()
    if not has_permission("taller_update", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    params = request.form.to_dict()
    params["estudiantes"] = request.form.getlist("modal_select_estudiantes")

    # TODO:

    created = Taller.set_estudiantes(params)

    op_response = dict()

    if created:
        op_response["msg"] = "Se ha establecido la relación"
        op_response["type"] = "success"
    else:
        op_response["msg"] = "Ha ocurrido un error al establecer la relación"
        op_response["type"] = "error"
        abort(make_response(jsonify(op_response), 422))

    return make_response(jsonify(op_response), 200)
Beispiel #7
0
def taller_table():
    s_config = siteconfig.get_config()
    if not has_permission("taller_index", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    talleres = Taller.all()

    return render_template("partials/tabs/talleres.html", talleres=talleres)
Beispiel #8
0
def deleteTallerCiclo():
    if not authenticated(session):
        abort(401)
    #Chequea permiso
    User.db = get_db()
    if (User.tiene_permiso(session['id'], 'administrativo_destroy')):
        if request.method == "POST" and forms.ValidateCicloTaller(
                request.form).validate():
            Taller.db = get_db()
            Taller.deleteTallerCiclo(request.form)
            flash("Se desasigno el taller del ciclo lectivo correctamente",
                  'success')
        else:
            flash(
                'Verifica los campos obligatorios. No ingreses valores no permitidos',
                'error')
        return redirect(url_for('panel_talleres'))
    else:
        abort(401)
Beispiel #9
0
def show():
    User.db = get_db()
    permisos = User.misPermisos(session['id'])
    Taller.db = get_db()
    talleres = Taller.all()
    id_taller = request.args.get('id')
    taller = Taller.searchTaller(id_taller)
    Horario.db = get_db()
    horarios = Horario.searchHorariosTaller(id_taller)
    Dia.db = get_db()
    dias = Dia.all()
    Nucleo.db = get_db()
    nucleos = Nucleo.all()

    return render_template('taller/show.html',
                           horarios=horarios,
                           nucleos=nucleos,
                           dias=dias,
                           taller=taller,
                           permisos=permisos)
Beispiel #10
0
def asignar():
    permisos = User.misPermisos(session['id'])
    Ciclo.db = get_db()
    ciclos = Ciclo.all()

    Taller.db = get_db()
    talleres = Taller.all()
    return render_template('ciclo/asignarTaller.html',
                           ciclos=ciclos,
                           talleres=talleres,
                           permisos=permisos)
Beispiel #11
0
def tallerConCiclo():
    # User.db = get_db()
    permisos = User.misPermisos(session['id'])

    Taller.db = get_db()
    id_ciclo = request.args.get('id')
    talleres = Taller.obtenerConUnId(id_ciclo)

    return render_template('taller/index.html',
                           talleres=talleres,
                           permisos=permisos)
Beispiel #12
0
def get_talleres():
    s_config = siteconfig.get_config()
    if not has_permission("taller_index", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    all_talleres = Taller.all()

    all_talleres = jsonify(all_talleres)

    return make_response(all_talleres, 200)
Beispiel #13
0
def delete():
    Ciclo.db = get_db()
    Taller.db = get_db()
    Clase.db = get_db()
    Ciclo.db.autocommit = False
    Taller.db.autocommit = False
    #obtengo los talleres del cliclo
    talleresDelCiclo = Ciclo.get_talleres(request.form['hiddenEmailD'])
    #solo borro el ciclo si no tiene talleres 
    # if (len(talleresDelCiclo) == 0):

    #ELIMINO TODAS LAS ASIGNACIONES DE TALLERES AL CICLO
    Ciclo.delete_clt(request.form['hiddenEmailD'])

    #ELIMINO LA ASIGNACIÓN DE ALUMNOS Y DOCENTES EN TALLERES ASOCIADOS AL CICLO
    for t in talleresDelCiclo:
        Taller.baja_alumnos(t['id'])
        Taller.baja_docentes(t['id'])
        Clase.desasignar(t['id'])
        Taller.delete(t['id'])
    
    #ELIMINO EL CICLO
    Ciclo.delete(request.form['hiddenEmailD'])

    Ciclo.db.commit()
    Taller.db.commit()
    flash("El ciclo ha sido borrado correctamente.","success")
    # else:
    #     flash("El ciclo no puede ser borrado, asegúrese de que no tenga talleres asignados.","danger")
    return redirect(url_for('listado_ciclos'))
Beispiel #14
0
def usuarios_alumnos_talleres():
    if not authenticated(session):
        abort(401)
    permisos = User.misPermisos(session['id'])

    # User.db=get_db()
    Taller.db = get_db()
    Estudiante.db = get_db()
    estudiantes = Estudiante.allEstudiantes()
    # docentes=User.docentes()
    talleres = Taller.all()
    return render_template('taller/asignarAlumnosTaller.html',
                           alumnos=estudiantes,
                           talleres=talleres,
                           permisos=permisos)
Beispiel #15
0
def get_docentes_ciclo():
    s_config = siteconfig.get_config()
    if not has_permission("docente_index", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    t_id = request.args.get("t_id")
    c_id = request.args.get("c_id")

    docentes = Taller.docentes_ciclo(t_id, c_id)

    if docentes is None:
        abort(404)

    return make_response(jsonify(docentes), 200)
Beispiel #16
0
def asistencia():
    User.db = get_db()
    permisos = User.misPermisos(session['id'])

    id_horario = request.args.get('id')
    Horario.db = get_db()
    horario = Horario.searchHorario(id_horario)
    alumnos = Horario.alumnos_asignados(id_horario)
    id_taller = request.args.get('id_taller')
    taller = Taller.searchTaller(id_taller)
    #fechaActual = datetime.date.today()

    return render_template('horario/asistenciaEstudiantes.html',
                           horario=horario,
                           taller=taller,
                           alumnos=alumnos,
                           permisos=permisos,
                           id_horario=id_horario)
Beispiel #17
0
def data():
    s_config = siteconfig.get_config()
    if not has_permission("taller_show", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    id = request.args.get("id")
    if id:

        taller = Taller.find_by_id(id)
        if taller is not None:
            data = jsonify(taller)
            return make_response(data, 200)
        else:
            abort(422)
    else:
        abort(400)
Beispiel #18
0
def taller_set_ciclo_form():
    s_config = siteconfig.get_config()
    if not has_permission("taller_update", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    talleres = Taller.all()

    ciclos = CicloLectivo.all()

    for ciclo in ciclos:
        ciclo["fecha_ini"] = ciclo["fecha_ini"].strftime("%d-%m-%Y")
        ciclo["fecha_fin"] = ciclo["fecha_fin"].strftime("%d-%m-%Y")

    return render_template(
        "user/actions/taller_asociar_ciclo.html", talleres=talleres, ciclos=ciclos
    )
Beispiel #19
0
def delete():
    if not authenticated(session):
        return render_template('auth/login.html')
    ok = True
    if not pageState():
        ok = False
        for permiso in session['permisos']:
            if "VER_EN_MANTENIMIENTO" == permiso['nombre']:
                ok = True
    if not ok:
        return render_template('error/mantenimiento.html')

    try:
        Taller.db = get_db()
        #valido que el docente no tenga talleres asignados
        talleres = Taller.get_talleres_con_clases_de_docente(
            request.form['hiddenDocId'])
        msj = ""
        if len(talleres) > 0:
            for t in talleres:
                msj = msj + t['nombre'] + ", "
            msj = "El docente actualmente dicta clases en el/los talleres: " + msj + "para eliminarlo desasignelo"
            flash(msj, "danger")
        else:
            Docente.db = get_db()
            Docente.db.autocommit = False
            # auxDocente = Docente.find_by_id(request.form['hiddenDocId'])
            # asTaller = Docente.asociado_A_Taller(auxDocente['id'])

            # if(len(asTaller) == 0):
            Docente.remove_docente_de_taller(request.form['hiddenDocId'])
            Docente.delete(request.form['hiddenDocId'])
            flash("Se eliminó con éxito", "success")
            # else:
            #     flash("El docente se encuentra asociado a un taller", "danger")

            Docente.db.commit()

        return redirect(url_for('listado_docentes'))

    except Exception as e:
        flash(str(e), "danger")
        Docente.db.rollback()
        return redirect(url_for('listado_docentes'))
Beispiel #20
0
def get_ciclos():
    s_config = siteconfig.get_config()
    if not has_permission("ciclolectivo_index", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    t_id = request.args.get("id")

    ciclos = Taller.ciclos(t_id)

    for ciclo in ciclos:
        ciclo["fecha_ini"] = ciclo["fecha_ini"].strftime("%d-%m-%Y")
        ciclo["fecha_fin"] = ciclo["fecha_fin"].strftime("%d-%m-%Y")

    if ciclos is None:
        abort(404)

    return make_response(jsonify(ciclos), 200)
Beispiel #21
0
def listado_talleres(params={"init": 0}, function=1, activo=None, nombre=''):
    if not authenticated(session):
        return render_template('auth/login.html')
    ok = True
    if not pageState():
        ok = False
        for permiso in session['permisos']:
            if "VER_EN_MANTENIMIENTO" == permiso['nombre']:
                ok = True
    if not ok:
        return render_template('error/mantenimiento.html')
    if not usuarioTienePermiso("LISTADO_TALLERES"):
        return redirect(url_for('pages_home'))

    Pages.db = get_db()
    paginado = Pages.get_paginado()
    params['pag'] = int(paginado['cuerpo'])

    if request.method == 'POST' and 'init' in request.form.keys() and int(
            request.form['init']) >= 0:
        params['init'] = int(request.form['init'])

    filtro = ''

    if ('nombreFiltro' in request.form.keys()):
        if (request.form['nombreFiltro']
                and request.form['nombreFiltro'].strip()):
            nombre = request.form['nombreFiltro']
            function = 0
            filtro = request.form['nombreFiltro']

    Taller.db = get_db()
    users = Taller.listado(nombre)

    return render_template('user/listadoTalleres.html',
                           users=users,
                           params=params,
                           nombreFiltro=nombre,
                           function=function,
                           filtro=filtro)
Beispiel #22
0
def update():
    s_config = siteconfig.get_config()
    if not has_permission("taller_update", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    form = TallerForm()

    op_response = dict()

    if form.validate_on_submit():
        params = request.form.to_dict()

        updated = Taller.update(params)

        if updated:
            op_response["msg"] = "Se ha modificado el taller con éxito"
            op_response["type"] = "success"
        else:
            op_response["msg"] = "Ha ocurrido un error al editar el taller"
            op_response["type"] = "error"
            abort(make_response(jsonify(op_response), 422))

    else:
        if len(form.errors) >= 2:
            op_response["msg"] = "Complete todos los datos del taller a modificar"
            op_response["type"] = "error"
        else:
            error_msg = "".join(list(form.errors.values())[0]).strip("'[]")
            op_response["msg"] = error_msg
            op_response["type"] = "error"

        abort(make_response(jsonify(op_response), 400))

    return make_response(jsonify(op_response), 200)
Beispiel #23
0
def agregar_docente():
    Taller.db = get_db()
    Taller.assign_docente(request.form['docente'], request.form['id'])
    Taller.db.commit()
    flash("El docente ha sido agregado correctamente.", "success")
    return detalle()
Beispiel #24
0
def agregar_alumno():
    Taller.db = get_db()
    Taller.assign_alumno(request.form['alumno'], request.form['id'])
    flash("El alumno ha sido agregado correctamente.", "success")
    return detalle()
Beispiel #25
0
def baja_alumno():
    Taller.db = get_db()
    Taller.baja_alumno(request.form['alid'], request.form['id'])
    flash("El alumno ha sido removido correctamente.", "success")
    return detalle()