Exemplo n.º 1
0
def verificarPermisoPro(id_proyecto, permiso):
    recurso = db_session.query(Recurso).filter_by(id_proyecto=id_proyecto).first()
    if recurso != None:
        permission = UserPermission(permiso, int(recurso.id))
        if permission.can() == False:
            return False
        else:
            return True
    else:
        return False
Exemplo n.º 2
0
def administrarrelacion():
    if not current_user.is_authenticated():
        flash("Debe loguearse primeramente!!!!", "loggin")
        return render_template("index.html")

    permi = verificarPermisoPro(session["pry"], "COMITE CAMBIOS")
    permission = UserPermission("ADMINISTRAR RELACION", int(session["pry"]))
    if permission.can() == False or permi == False:
        flash("No posee los Permisos suficientes para realizar esta Operacion", "info")
        return render_template("index.html")

    relaciones = getRelUltiVerEnProg()
    return render_template("relacion/administrarrelacion.html", relaciones=relaciones)
Exemplo n.º 3
0
def eliminarrelacion():
    if not current_user.is_authenticated():
        flash("Debe loguearse primeramente!!!!", "loggin")
        return render_template("index.html")

    permission = UserPermission("ADMINISTRAR RELACION", int(session["pry"]))
    if permission.can() == False:
        flash("No posee los Permisos suficientes para realizar esta Operacion", "info")
        return render_template("index.html")

    cod = request.args.get("codigo")
    relacion = db_session.query(Relacion).filter_by(id=cod).first()
    relacion.estado = "E"
    db_session.merge(relacion)
    db_session.commit()

    return redirect("/relacion/administrarrelacion")
Exemplo n.º 4
0
def editarrelacion():
    if not current_user.is_authenticated():
        flash("Debe loguearse primeramente!!!!", "loggin")
        return render_template("index.html")

    permission = UserPermission("ADMINISTRAR RELACION", int(session["pry"]))
    if permission.can() == False:
        flash("No posee los Permisos suficientes para realizar esta Operacion", "info")
        return render_template("index.html")

    p = db_session.query(Relacion).filter_by(codigo=request.args.get("cod")).first()
    form = RelacionFormulario(request.form, p)
    relacion = db_session.query(Relacion).filter_by(id=form.id.data).first()
    if request.method == "POST" and form.validate():
        form.populate_obj(relacion)
        db_session.merge(relacion)
        db_session.commit()
        return redirect("/relacion/administrarrelacion")
    else:
        flash_errors(form)
    return render_template("relacion/editarrelacion.html", form=form)
Exemplo n.º 5
0
def nuevarelacion():
    """ Funcion para agregar registros a la tabla relacion"""
    if not current_user.is_authenticated():
        flash("Debe loguearse primeramente!!!!", "loggin")
        return render_template("index.html")

    permission = UserPermission("ADMINISTRAR RELACION", int(session["pry"]))
    if permission.can() == False:
        flash("No posee los Permisos suficientes para realizar esta Operacion", "info")
        return render_template("index.html")

    codItem = request.args.get("cod_item")
    codItem2 = request.args.get("cod_item2")
    # ===========================================================================
    # Si no hay ningun item seleccionado muestra todos los items que pertenecen a
    # un proyecto, caso contrario muestra todos los items de la misma fase o fase
    # Siguiente, recordar que el duenho de la relacion es el hijo/sucesor, es decir, en el
    # if se selecciona al hijo o sucesor
    # ===========================================================================
    if codItem == None or codItem == "":
        if codItem2 == None or codItem == "":
            items = getItemByProyecto()
            if "itemDuenho" in session:
                session.pop("itemDuenho", None)
        else:
            if "itemDuenho" in session:
                # ===============================================================
                # Obtiene los ordenes de fases a la que pertenece cada item
                # ===============================================================
                fasePhaAnt = (
                    db_session.query(Fase).join(Item, Fase.id == Item.id_fase).filter(Item.id == codItem2).first()
                )
                faseChiSuc = (
                    db_session.query(Fase)
                    .join(Item, Fase.id == Item.id_fase)
                    .filter(Item.id == session["itemDuenho"])
                    .first()
                )
                # ===============================================================
                # Verifica de que fases son para establecer el tipo de relacion
                # ===============================================================
                if fasePhaAnt.nro_orden == faseChiSuc.nro_orden:
                    tipo = db_session.query(TipoRelacion.id).filter_by(codigo="Padre Hijo").first()
                else:
                    tipo = db_session.query(TipoRelacion.id).filter_by(codigo="Antecesor Sucesor").first()

                relacion = Relacion(datetime.date.today(), None, tipo, codItem2, session["itemDuenho"], "A")
                db_session.add(relacion)
                db_session.commit()
                session.pop("itemDuenho", None)
                flash("La relacion ha sido registrado con exito", "info")
                return redirect("/relacion/administrarrelacion")
    else:
        items = getItemByProyBefoActFase(codItem)
        if len(items) > 0:
            session["itemDuenho"] = codItem
            item = db_session.query(Item).filter_by(id=codItem).first()
            return render_template("relacion/nuevarelacionpaso2.html", items=items, firstItem=item)
        else:
            flash("El item no tiene posibles antecesores o padres", "info")
            return redirect("/relacion/administrarrelacion")
    return render_template("relacion/nuevarelacion.html", items=items)
Exemplo n.º 6
0
def buscarrelacion():
    if not current_user.is_authenticated():
        flash("Debe loguearse primeramente!!!!", "loggin")
        return render_template("index.html")

    permi = verificarPermisoPro(session["pry"], "COMITE CAMBIOS")
    permission = UserPermission("ADMINISTRAR RELACION", int(session["pry"]))
    if permission.can() == False or permi == False:
        flash("No posee los Permisos suficientes para realizar esta Operacion", "info")
        return render_template("index.html")

    valor = request.args["patron"]
    parametro = request.args["parametro"]
    # init_db(db_session)
    if valor == "" or valor == None:
        return administrarrelacion()
    else:
        if parametro == "fecha_creacion" or parametro == "fecha_modificacion":
            consulta = selectRelacionUltimaVersionItem()
            relaciones = consulta.filter(
                Relacion.id.in_(
                    db_session.query(Relacion.id)
                    .from_statement(
                        "SELECT * FROM relacion WHERE to_char(" + parametro + ", 'YYYY-mm-dd') ilike '%" + valor + "%'"
                    )
                    .all()
                )
            ).all()
            # relaciones = db_session.query(Relacion).from_statement("SELECT * FROM relacion WHERE to_char("+parametro+", 'YYYY-mm-dd') ilike '%"+valor+"%'").all()
        elif parametro == "id_tipo_relacion":
            consulta = selectRelacionUltimaVersionItem()
            relaciones = consulta.filter(
                Relacion.id.in_(
                    db_session.query(Relacion.id)
                    .from_statement(
                        "SELECT * FROM relacion WHERE relacion."
                        + parametro
                        + " IN (SELECT id FROM tipo_relacion WHERE tipo_relacion.codigo ILIKE '%"
                        + valor
                        + "%')"
                    )
                    .all()
                )
            ).all()
            # relaciones = db_session.query(Relacion).from_statement("SELECT * FROM relacion WHERE relacion."+parametro+" IN (SELECT id FROM tipo_relacion WHERE tipo_relacion.codigo ILIKE '%"+valor+"%')").all()
        elif parametro == "id_item" or parametro == "id_item_duenho":
            consulta = selectRelacionUltimaVersionItem()
            relaciones = consulta.filter(
                Relacion.id.in_(
                    db_session.query(Relacion.id)
                    .from_statement(
                        "SELECT * FROM relacion WHERE "
                        + parametro
                        + " IN (SELECT id FROM item WHERE codigo ILIKE '%"
                        + valor
                        + "%')"
                    )
                    .all()
                )
            ).all()
            # relaciones = db_session.query(Relacion).from_statement("SELECT * FROM relacion WHERE "+parametro+" IN (SELECT id FROM item WHERE codigo ILIKE '%"+valor+"%')").all()
            # relaciones = db_session.query(Relacion).from_statement("SELECT * FROM relacion where to_char("+parametro+", '99999') ilike '%"+valor+"%'").all()
            # p = db_session.query(Relacion).from_statement("SELECT * FROM relacion where "+parametro+" = CAST("+valor+" AS Int)").all()
        else:
            return administrarrelacion()
        # p = db_session.query(Relacion).filter(Relacion.codigo.like('%'+valor+'%'))
        return render_template("relacion/administrarrelacion.html", relaciones=relaciones)