Esempio n. 1
0
def getPanelDocentesTaller(page):
    if auth.authenticated():  # or not auth.authenticated():
        #Obtiene permisos del usuario
        User.db = get_db()
        Ciclo.db = get_db()
        Docente.db = get_db()
        permisos = User.get_permisos(
            session['id'])  #Session user es el email unico del usuario
        if (page > Docente.total_paginas_taller(
                site_controller.get_pagination())) or (not int(page) > 0):
            abort(404)
        lastpage = Docente.getLastPageDocenteTaller(
            site_controller.get_pagination(), int(page))
        ciclotalleres = Ciclo.allCicloTaller()
        docentes = Docente.all()
        docente_responsable_taller = Docente.allDocenteTallerPaginated(
            site_controller.get_pagination(), int(page))
        return render_template(
            'auth/panel_components/docentes_taller.html',
            permisos=permisos,
            page=page,
            lastpage=lastpage,
            ciclotalleres=ciclotalleres,
            docentes=docentes,
            docente_responsable_taller=docente_responsable_taller)
    return redirect(url_for('auth_login'))
def listadoDocentes():
    if 'email' not in session or not any(i in ['administrador', 'docente'] for i in session['roles']):
        return redirect(url_for("accesoDenegado"))
    tabla = configuracion.get_config()
    if tabla.sitio_habilitado == 0:
        return redirect(url_for("mantenimiento"))
    lista = Docente.notDeletedAll()
    eliminados = Docente.deletedAll()
    try:
        dnis = requests.get(
            "https://api-referencias.proyecto2019.linti.unlp.edu.ar/tipo-documento"
        )
        localidades = requests.get(
            "https://api-referencias.proyecto2019.linti.unlp.edu.ar/localidad"
        )
        tiposDNI = json.loads(dnis.text)
        listaLoc = json.loads(localidades.text)
    except requests.exceptions.ConnectionError:
        flash('hubo un error al traer datos de los dnis y/o localidades :(')
        return redirect(url_for('index'))
    return render_template(
        "/docente/listadoDocentes.html", lista=lista, cant=tabla.cantListar,
        generos=Genero.get_all(),
        dnis=tiposDNI,
        localidades=listaLoc,
        eliminados=eliminados,
    )
Esempio n. 3
0
def delete(id_data):
    if not authenticated(session):
        abort(401)

    #Chequea permiso
    User.db = get_db()
    if (User.tiene_permiso(session['id'], 'docente_destroy')):
        Docente.db = get_db()
        Docente.delete(id_data)
        flash("Se eliminó el docente correctamente", 'success')
        return redirect(url_for('panel_docentes'))
    else:
        abort(401)
Esempio n. 4
0
def data():
    s_config = siteconfig.get_config()
    if not has_permission("docente_show", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

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

        docente = Docente.find_by_id(id)

        if docente is not None:
            docente["fecha_nac"] = datetime.strftime(docente["fecha_nac"],
                                                     "%d/%m/%Y")
            usuario_id = docente["usuario_id"]
            if usuario_id:

                user = User.find_by_id(usuario_id)
                docente["username"] = user["username"]
            data = jsonify(docente)
            return make_response(data, 200)
        else:
            abort(422)
    else:
        abort(400)
Esempio n. 5
0
def destroy():
    s_config = siteconfig.get_config()
    if not has_permission("docente_destroy", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    params = json.loads(request.data)
    d_id = params["id"]
    activo = params["activo"]

    success = Docente.delete(d_id)

    op_response = dict()

    if success:
        condicion = "bloqueado" if activo else "activado"
        op_response["msg"] = "Se ha " + condicion + " al docente exitosamente"
        op_response["type"] = "success"
    else:
        condicion = "bloquear" if activo else "activar"
        op_response["msg"] = "El docente a " + condicion + " no existe"
        op_response["type"] = "error"
        make_response(jsonify(op_response), 422)

    return make_response(jsonify(op_response), 204)
Esempio n. 6
0
def update():
    if not authenticated(session):
        abort(401)
    #Chequea permiso
    User.db = get_db()
    if (User.tiene_permiso(session['id'], 'docente_update')):
        if request.method == "POST" and forms.ValidateDocente(
                request.form).validate():
            Docente.db = get_db()
            Docente.update(request.form)
            flash("Se actualizó el docente correctamente", 'success')
        else:
            flash(
                'Verifica los campos obligatorios. No ingreses valores no permitidos',
                'error')
        return redirect(url_for('panel_docentes'))
Esempio n. 7
0
def getPanelHorario():
    if auth.authenticated():
        #Obtiene permisos del usuario
        User.db = get_db()
        if (User.tiene_permiso(session['id'], 'horario_index')):
            permisos = User.get_permisos(
                session['id'])  #Session user es el email unico del usuario
            #Obtiene informacion del sitio (Estado y paginacion)
            Horario.db = get_db()
            horarios = Horario.all()
            Clase.db = get_db()
            clases = Clase.all()
            Nucleo.db = get_db()
            nucleos = Nucleo.all()
            Docente.db = get_db()
            docente_responsable_taller = Docente.allDocenteTaller()
            return render_template(
                'auth/panel_components/clases.html',
                permisos=permisos,
                horarios=horarios,
                clases=clases,
                nucleos=nucleos,
                docente_responsable_taller=docente_responsable_taller)
        else:
            abort(401)
    else:
        return redirect(url_for('auth_login'))
Esempio n. 8
0
def getPanelEstudiantesDocentes(page):
    if auth.authenticated():  # or not auth.authenticated():
        #Obtiene permisos del usuario
        User.db = get_db()
        Student.db = get_db()
        permisos = User.get_permisos(
            session['id'])  #Session user es el email unico del usuario
        if (page > Student.total_paginas_taller(
                site_controller.get_pagination())) or (not int(page) > 0):
            abort(404)
        lastpage = Student.getLastPageTaller(site_controller.get_pagination(),
                                             int(page))
        Docente.db = get_db()
        docente_responsable_taller = Docente.allDocenteTaller()
        estudiantes_talleres = Student.allEstudianteTallerPaginated(
            site_controller.get_pagination(), int(page))
        estudiantes = Student.all()
        return render_template(
            'auth/panel_components/alumnos_docentes.html',
            permisos=permisos,
            page=page,
            lastpage=lastpage,
            docente_responsable_taller=docente_responsable_taller,
            estudiantes_talleres=estudiantes_talleres,
            estudiantes=estudiantes)
    return redirect(url_for('auth_login'))
def collect_data_serverside(req):

    docentes = Docente.all_table()

    columns = table_schemas.SERVERSIDE_DOCENTE_TABLE_COLUMNS

    return DocentesServerSideTable(req, docentes, columns).output_result()
Esempio n. 10
0
def actualizarDocente(dni):
    if 'email' not in session or not any(i in ['administrador', 'docente', 'preceptor'] for i in session['roles']):
        return redirect(url_for("accesoDenegado"))
    p = request.form
    Docente.actualizar(
        dni,
        p["apellido"],
        p["nombre"],
        p["fechaN"],
        p["localidad"],
        p["domicilio"],
        p["genero"],
        p["tipoD"],
        p["telefono"],
    )
    flash('docente actualizado con exito!')
    return redirect(url_for('listadoDocentes'))
Esempio n. 11
0
def deleteDocenteTaller():
    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.ValidateDocenteTallerDelete(
                request.form).validate():
            Docente.db = get_db()
            Docente.deleteDocenteTaller(request.form)
            flash("Se desasigno el docente del taller correctamente",
                  'success')
        else:
            flash(
                'Verifica los campos obligatorios. No ingreses valores no permitidos',
                'error')
        return redirect(url_for('panel_docentes_taller'))
    else:
        abort(401)
Esempio n. 12
0
def crearDocente():
    if 'email' not in session or not any(i in ['administrador', 'docente'] for i in session['roles']):
        return redirect(url_for("accesoDenegado"))
    p = request.form
    if Docente.getByDNI(p['numero']) is not None:
        flash('ya existe un docente con ese numero de documento!')
        return redirect(url_for('listadoDocentes'))
    else:
        Docente.create(
            p["apellido"],
            p["nombre"],
            p["fechaN"],
            p["localidad"],
            p["domicilio"],
            p["genero"],
            p["tipoD"],
            p["numero"],
            p["telefono"],
        )
        return redirect(url_for("listadoDocentes"))
Esempio n. 13
0
def storeDocenteTaller():
    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.ValidateDocenteTaller(
                request.form).validate():
            Docente.db = get_db()
            if Docente.tallerNoTieneDocente(request.form):
                Docente.storeDocenteTaller(request.form)
                flash("Se agrego el taller al ciclo lectivo correctamente",
                      'success')
            else:
                flash(
                    "El docente ya esta asignado al taller para el ciclo lectivo seleccionado",
                    'error')
        else:
            flash(
                'Verifica los campos obligatorios. No ingreses valores no permitidos',
                'error')
        return redirect(url_for('panel_docentes_taller'))
    else:
        abort(401)
Esempio n. 14
0
def update():
    s_config = siteconfig.get_config()
    if not has_permission("docente_update", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    # Validación - Fill choices
    choices = forms_docente.choices()
    form = DocenteForm(choices)

    op_response = dict()

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

        if "username" in params:

            user = User.find_by_user(params["username"])
            if user:
                params["usuario_id"] = user["id"]

        params["fecha_nacimiento"] = datetime.strptime(
            params["fecha_nacimiento"], "%d/%m/%Y").date()

        updated = Docente.update(params)

        if updated:
            op_response["msg"] = "Se ha modificado al docente con éxito"
            op_response["type"] = "success"
        else:
            op_response["msg"] = "Ha ocurrido un error al editar al docente"
            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 docente 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)
Esempio n. 15
0
def getPanelDocentes(page):
    if auth.authenticated():
        #g.user = session['user'] #En la documentación no detallaban el por qué de esta lína, pero sí que era necesaria para las paginas restringidas
        #Obtiene permisos del usuario
        User.db = get_db()
        permisos = User.get_permisos(session['id'])
        #Obtiene docentes
        Docente.db = get_db()

        lastpage = 1
        #Si se envia una pagina inexistente se aborta
        if (page > Docente.total_paginas(
                site_controller.get_pagination())) or (not int(page) > 0):
            abort(404)
        #Chequea si hubo busquedas
        #Se buscó solo nombre
        if forms.searchByFirstName(request.args).validate():
            docentes = Docente.searchByFirstName(
                request.args.get('solo_nombre'))
            #Se buscó solo apellido
        elif forms.searchByLastName(request.args).validate():
            docentes = Docente.searchByLastName(
                request.args.get('solo_apellido'))
        elif forms.searchByBoth(request.args).validate():
            #Se buscó ambos
            docentes = Docente.searchByBoth(request.args.get('ambos_nombre'),
                                            request.args.get('ambos_apellido'))
            #No hubo busqueda
        else:
            docentes = Docente.allPaginated(site_controller.get_pagination(),
                                            int(page))
            #Ultima pagina de paginado
            lastpage = Docente.getLastPage(site_controller.get_pagination(),
                                           int(page))
        #Obtiene generos
        Genero.db = get_db()
        generos = Genero.all()
        #Obtiene la información de las apis
        localidades = getLocalidades()
        tipo_docs = getDocumentos()
        #Retorna el template
        return render_template('auth/panel_components/docentes.html',
                               permisos=permisos,
                               nombre=session['nombre'],
                               apellido=session['apellido'],
                               localidades=localidades,
                               tipo_docs=tipo_docs,
                               generos=generos,
                               docentes=docentes,
                               page=page,
                               lastpage=lastpage)
    return redirect(url_for('auth_login'))
Esempio n. 16
0
def taller_set_docentes_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)

    ciclos = CicloLectivo.all()

    docentes = Docente.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_docentes.html", ciclos=ciclos, docentes=docentes
    )
Esempio n. 17
0
def administracion():

    ciclos = CicloLectivo.all()

    docentes = Docente.all()

    estudiantes = Estudiante.all()

    nucleos = Nucleo.all()

    dias = Dia.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/moduloadministrativo.html",
                           ciclos=ciclos,
                           docentes=docentes,
                           estudiantes=estudiantes,
                           nucleos=nucleos,
                           dias=dias
                           # username=user["username"],
                           )