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
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)
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")
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)
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)
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)