def calcularImpacto(self, id_item, direccion): nodos = [] self.construir(nodos,id_item,id_item, direccion) impacto = 0 iman = ItemManager() fman = FaseManager() for nodo in nodos: print nodo.nombre impacto = impacto + nodo.complejidad print "El impacto es:", impacto graph = pydot.Dot(graph_type='digraph') count = 0 for nodo in nodos: count = count + 1 if count == 1: for nodo in nodos: graph = pydot.Dot(graph_type='digraph') fase1 = fman.getNombreById(nodo.fase) impresion = nodo.nombre + " - Fase "+ fase1 + " - Costo "+str(nodo.complejidad) node_a = pydot.Node(str(impresion), style= "filled", fillcolor = "white") graph.add_node(node_a) else: for nodo in nodos: for relacion in nodo.relaciones: item = iman.getById(relacion) fase1 = fman.getNombreById(nodo.fase) fase2 = fman.getNombreById(item.id_fase) edge = pydot.Edge(nodo.nombre + " - Fase: "+fase1 + " - Costo: "+str(nodo.complejidad), item.identificador + " - Fase: "+fase2 + " - Costo: "+str(item.complejidad)) graph.add_edge(edge) pathname = os.path.dirname(sys.argv[0]) ruta = os.path.abspath(pathname) ruta = ruta + "/sgp/public/images/grafo.png" graph.write_png(ruta) return impacto
def newRelacion(self, *args, **kw): """Display a page to show a new record.""" rm = ItemManager() fm = FaseManager() id_fase = kw['id_fase'] items1 = rm.getItemsFaseActual(id_fase) items = rm.getItemsARelacionar(id_fase) items2 = [] for item in items: fase = fm.getNombreById(item.id_fase) i = ItemARelacionar() i.identificador = item.identificador i.fase = fase i.id_item = item.id_item items2.append(i) return dict(value=kw, model=self.model.__name__, items1=items1, items2= items2, id_fase = kw['id_fase'])