Example #1
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)
Example #2
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)
Example #3
0
def password_update():
    s_config = siteconfig.get_config()
    if not authenticated(session) or (s_config["modo_mantenimiento"] == 1 and
                                      not has_role("administrador", session)):
        abort(401)

    form = PasswordUpdateForm()
    if form.validate_on_submit():
        password = request.form.get("password")
        bcrypt_password = bcrypt.generate_password_hash(password).decode(
            "utf - 8")

        updated = User.update_password(bcrypt_password, session.get("user"))
        if updated:
            # TODO: Email notificando la actualización de contraseña
            flash("La contraseña se ha modificado con éxito", "success")
        else:
            flash("Se ha producido un error al actualizar la contraseña",
                  "error")

    else:
        error_msg = "".join(list(form.errors.values())[0]).strip("'[]")
        flash(error_msg, "error")

    return redirect(url_for("user_profile"))
Example #4
0
def ciclos_taller_docente():
    s_config = siteconfig.get_config()
    if (not has_permission("horariodocente_index", session)
            or not has_permission("horariodocente_show", session)
            or (s_config["modo_mantenimiento"] == 1
                and not has_role("administrador", session))):
        abort(401)

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

    if d_id and t_id:
        ciclos = Administracion.ciclos_taller_docente(d_id, 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 not None:
            data = jsonify(ciclos)
            return make_response(data, 200)
        else:
            abort(422)
    else:
        abort(400)
def instrumento_info():
    s_config = siteconfig.get_config()
    if not has_permission("instrumento_show", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

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

    instrumento = Instrumento.find_by_id(id_instrumento)

    if instrumento:
        # Tipo del instrumento
        tipo = TipoInstrumento.find_by_id(instrumento["tipo_id"])
        instrumento["tipo"] = tipo["nombre"]
        instrumento["created_at"] = instrumento["created_at"].strftime(
            "%d-%m-%Y %H:%M:%S"
        )
        if instrumento["updated_at"] is not None:
            instrumento["updated_at"] = instrumento["updated_at"].strftime(
                "%d-%m-%Y %H:%M:%S"
            )
        else:
            instrumento["updated_at"] = "Nunca"

        # Tipos de instrumentos para el select
        tipos_instrumento = TipoInstrumento.all()

        return render_template(
            "user/instrumento.html", instrumento=instrumento, tipos=tipos_instrumento
        )
    else:
        abort(404)
def destroy():
    s_config = siteconfig.get_config()
    if not has_permission("nucleo_destroy", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

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

    success = Nucleo.delete(nid)

    op_response = dict()

    activo = params["activo"]

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

    return make_response(jsonify(op_response), 204)
def maintenance_mode():
    if not has_permission("config_update", session):
        abort(401)

    config = siteconfig.get_config()
    modo_mantenimiento = config["modo_mantenimiento"]

    if modo_mantenimiento == 0:
        siteconfig.update_maintenance(1)
    else:
        siteconfig.update_maintenance(0)

    config = siteconfig.get_config()
    modo_mantenimiento = config["modo_mantenimiento"]

    data = {"modo_mantenimiento": modo_mantenimiento}
    return make_response(jsonify(data), 200)
Example #8
0
def taller_new_form():
    s_config = siteconfig.get_config()
    if not has_permission("taller_new", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    return render_template("user/actions/taller_crear.html")
def nucleo_table():
    s_config = siteconfig.get_config()
    if not has_permission("nucleo_index", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    return render_template("tables/nucleos.html")
Example #10
0
def serverside_table_content():
    s_config = siteconfig.get_config()
    if not has_permission("usuario_index", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    data = collect_data_serverside(request)
    return jsonify(data)
Example #11
0
def user_table():
    s_config = siteconfig.get_config()
    if not has_permission("usuario_index", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    roles = Role.all()

    return render_template("tables/usuarios.html", roles=roles)
Example #12
0
def dashboard():
    s_config = siteconfig.get_config()
    if not authenticated(session) or (s_config["modo_mantenimiento"] == 1 and
                                      not has_role("administrador", session)):
        abort(401)
    else:

        roles = Role.all()

        return render_template("user/dashboard.html", roles=roles)
Example #13
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)
Example #14
0
def all_roles():
    s_config = siteconfig.get_config()
    if not has_permission("usuario_new", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    roles = Role.all()
    data = jsonify(roles)
    return make_response(data, 200)
Example #15
0
def new():
    s_config = siteconfig.get_config()
    if not has_permission("usuario_new", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    form = UserCreateForm()

    op_response = dict()

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

        plain_pw = params["password"]
        params["password"] = bcrypt.generate_password_hash(plain_pw).decode(
            "utf - 8")

        params["roles"] = request.form.getlist("rol_id")

        created = User.create(params)

        if created:
            html = render_template(
                "emails/mail_alta_usuario.html",
                username=params["username"],
                passwd=plain_pw,
            )

            send_async(
                params["email"],
                "Cuenta Registrada | Grupo2 - Orquesta Escuela de Berisso",
                html,
            )

            op_response["msg"] = "Se ha agregado al usuario con éxito"
            op_response["type"] = "success"
        else:
            op_response[
                "msg"] = "El nombre de usuario está en uso, intente con otro"
            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 nuevo usuario"
            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), 201)
def new():
    s_config = siteconfig.get_config()
    if not has_permission("instrumento_new", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    # Instanciar el form de WTForm para la validación
    choices = forms_instrumento.crud_choices()
    form = InstrumentoCreateForm(choices)

    op_response = dict()

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

        # Si el usuario seleccionó una imagen
        if request.files["photo"].filename != "":
            f = form.photo.data
            parts = f.filename.split(".")
            filename = (
                "".join(parts[:-1])
                + "_"
                + datetime.now().strftime("%d-%m-%Y_%I-%M-%S_%p")
                + "."
                + parts[-1]
            )
            filename = secure_filename(filename)
            imagepath = os.path.join(app.config["UPLOADED_IMAGES_DEST"], filename)
            f.save(imagepath)
            params["image_name"] = filename

        created = Instrumento.create(params)

        if created:
            op_response["msg"] = "Se ha registrado el Instrumento exitosamente"
            op_response["type"] = "success"
        else:
            op_response["msg"] = "Ha ocurrido un error al registrar el Instrumento"
            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 Instrumento"
            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), 201)
def instrumento_table():
    s_config = siteconfig.get_config()
    if not has_permission("instrumento_index", session) or (
        s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)
    ):
        abort(401)

    # Tipos de instrumentos para el select
    tipos_instrumento = TipoInstrumento.all()

    return render_template("tables/instrumentos.html", tipos=tipos_instrumento)
def get_nucleos_activos():
    s_config = siteconfig.get_config()
    if s_config["modo_mantenimiento"] == 1 and not has_role(
            "administrador", session):
        abort(401)

    nucleos = Nucleo.activos()

    nucleos = jsonify(nucleos)

    return make_response(nucleos, 200)
Example #19
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)
def get_nucleos():
    s_config = siteconfig.get_config()
    if not has_permission("nucleo_index", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    nucleos = Nucleo.all()

    nucleos = jsonify(nucleos)

    return make_response(nucleos, 200)
def new():
    s_config = siteconfig.get_config()
    if not has_permission("ciclolectivo_new", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    form = CicloCreateForm()

    op_response = dict()

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

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

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

        fecha_ini = params["fecha_inicio"]
        fecha_fin = params["fecha_fin"]

        if fecha_fin <= fecha_ini:
            op_response[
                "msg"] = "La fecha de finalización es menor o igual a la fecha de inicio"
            op_response["type"] = "error"
            abort(make_response(jsonify(op_response), 400))

        created = CicloLectivo.create(params)

        if created:
            op_response["msg"] = "Se ha agregado el ciclo lectivo exitosamente"
            op_response["type"] = "success"
        else:
            op_response[
                "msg"] = "Ha ocurrido un error al crear el ciclo lectivo"
            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 ciclo lectivo"
            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), 201)
def ciclo_table():
    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)

    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("partials/tabs/ciclos.html", ciclos=ciclos)
Example #23
0
def docente_table():
    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)

    generos = Genero.all()

    return render_template(
        "tables/docentes.html",
        localidades=localidades(),
        tipodoc=tipos_documento(),
        generos=generos,
    )
def get_talleres():
    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)

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

    talleres = CicloLectivo.talleres(c_id)

    if talleres is None:
        abort(404)

    return make_response(jsonify(talleres), 200)
Example #25
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)
Example #26
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)
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)

    ciclos = CicloLectivo.all()

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

    ciclos = jsonify(ciclos)

    return make_response(ciclos, 200)
Example #28
0
def docente_set_horario():
    s_config = siteconfig.get_config()
    if (not has_permission("horariodocente_new", session)
            or not has_permission("horariodocente_new", session)
            or not has_permission("horariodocente_update", session)
            or not has_permission("horariodocente_destroy", session)
            or (s_config["modo_mantenimiento"] == 1
                and not has_role("administrador", session))):

        abort(401)

    # Validación - (queda pendiente)

    op_response = dict()

    # suplantar True por form.validate_on_submit cuando haya validación
    if True:
        params = request.form.to_dict()
        d_id = params["docente_id"]
        c_id = params["ciclo_id"]
        t_id = params["taller_id"]

        docente_responsable_taller_id = Administracion.docente_responsable_taller_id(
            d_id, c_id, t_id)

        if docente_responsable_taller_id:
            n_id = params["nucleo_id"]
            dias_id = request.form.getlist("dias_id")
            horario_set = Administracion.docente_set_horario(
                docente_responsable_taller_id["id"], n_id, dias_id)

            if horario_set:
                msg = "asignado" if dias_id else "desasignado"
                op_response["msg"] = ("Se ha " + msg +
                                      " el horario del docente con éxito")
                op_response["type"] = "success"
            else:
                op_response[
                    "msg"] = "Ha ocurrido un error al asignar el horario"
                op_response["type"] = "error"
                abort(make_response(jsonify(op_response), 422))

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

    return make_response(jsonify(op_response), 200)
Example #29
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)
Example #30
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
    )