本文整理汇总了Python中sgp.managers.ItemMan.ItemManager.getById方法的典型用法代码示例。如果您正苦于以下问题:Python ItemManager.getById方法的具体用法?Python ItemManager.getById怎么用?Python ItemManager.getById使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sgp.managers.ItemMan.ItemManager
的用法示例。
在下文中一共展示了ItemManager.getById方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: put
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def put(self, *args, **kw):
'''update'''
params = kw
# print params['submit']
pm=ItemManager()
item_viejo = pm.getById(int(args[0]))
item_nuevo = Item()
identificador = params['identificador']
item_nuevo.identificador = identificador
item_nuevo.observacion = params['observacion']
item_nuevo.estado = item_viejo.estado
item_nuevo.complejidad = params['complejidad']
item_nuevo.descripcion = params['descripcion']
item_nuevo.id_fase = item_viejo.id_fase
id_fase = item_viejo.id_fase
item_nuevo.codigo = item_viejo.codigo
item_nuevo.version = item_viejo.version + 1
item_nuevo.actual = 'true'
item_viejo.actual = 'false'
item_nuevo.tipo = item_viejo.tipo
tipo_item = item_viejo.id_tipo_item
version = item_nuevo.version
pm.add(item_nuevo)
pm.update(item_viejo)
'''Copiar los campos'''
if tipo_item :
ti = TipoItemManager()
tipo= ti.getById(tipo_item)
campos = tipo.campos
for campo in campos:
nombre_campo = campo.nombre
valor = params[nombre_campo]
pm.addAtributo(identificador,id_fase,version,campo.id_campo,valor)
item = pm.getByIdentificadorFaseVersion(identificador,id_fase,version) #Item_nuevo
item_viejo = pm.getById(int(args[0]))
'''Copiar los adjuntos'''
if item_viejo.adjuntos :
for adjunto in item_viejo.adjuntos:
pm.copiarAdjunto(item,adjunto)
pm.update(item)
pm.update(item_viejo)
item = pm.getByIdentificadorFaseVersion(identificador,id_fase,version) #Item_nuevo
'''Adjuntar nuevos Archivos'''
if params['submit'] == 'Adjuntar':
'''Hay que adjuntar archivos'''
id_item = item.id_item
raise redirect('/item/adjuntar?id_item='+ str(id_item))
raise redirect('/item/items?id_fase='+ str(id_fase))
示例2: revertir
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def revertir(self,*args,**kw):
id_item = kw["id_item"]
id_item = int(id_item)
im = ItemManager()
transaction.begin()
item_revertir = im.getById(id_item)
item_nuevo = Item()
item_nuevo.codigo = item_revertir.codigo
item_nuevo.identificador = item_revertir.identificador
item_nuevo.observacion = item_revertir.observacion
item_nuevo.estado = "inicial"
item_nuevo.complejidad = item_revertir.complejidad
item_nuevo.id_fase = item_revertir.id_fase
item_nuevo.id_tipo_item = item_revertir.id_tipo_item
item_nuevo.descripcion = item_revertir.descripcion
items_de_fase = im.buscar_por_fase(item_revertir.id_fase)
id_fase = item_revertir.id_fase
version = 0
for item in items_de_fase:
if item.version > version:
version = item.version
if item.codigo == item_revertir.codigo and item.actual == "true":
item.actual = "false"
version = version + 1
item_nuevo.version = version
item_nuevo.actual = 'true'
print "version",version
im.add(item_nuevo)
transaction.commit()
item_viejo = im.getById(id_item)
identificador = item_viejo.identificador
tipo_item = item_viejo.id_tipo_item
if tipo_item :
for atributo in item_viejo.atributos:
id_campo = atributo.id_campo
valor = atributo.valor
im.addAtributo(identificador,id_fase,version,id_campo,valor)
im.update(item_viejo)
item_viejo = im.getById(id_item)
item = im.getByIdentificadorFaseVersion(identificador,id_fase,version) #Item_nuevo
'''Copiar los adjuntos'''
if item_viejo.adjuntos :
for adjunto in item_viejo.adjuntos:
im.copiarAdjunto(item,adjunto)
im.update(item)
raise redirect('/item/items?id_fase='+ str(id_fase))
示例3: post
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def post (self, **kw):
"""Agrega una nueva linea base a la base de datos"""
if not 'id_fase' in kw:
flash(('Direccion no valida'), 'error')
raise redirect("/index")
if not(Secure().FiltrarByFase(int(kw['id_fase']),'crear_lb')):
flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error')
raise redirect("/index")
if kw['Aceptar']=="Cancelar":
raise redirect("/lineaBase", id_fase=kw['id_fase'])
linea_base = LineaBase()
lbm = LineaBaseManager()
im = ItemManager()
fm = FaseManager()
id_items = session['items_lb'] #lista de id_items que formaran parte de la LB
try:
id_items.sort()
except:
id_items=[]
id_items.append(session['items_lb'])
linea_base.estado='valido'
linea_base.usuario = session['id_usuario'].id_usuario
fecha = datetime.date.today()
linea_base.fecha = fecha
linea_base.fase = kw['id_fase']
for id in id_items:
item = im.getById(id)
linea_base.items.append(item)
lbm.add(linea_base)
for id in id_items:
item=im.getById(int(id))
item.estado = 'finalizado'
im.update(item)
'''Cambiar estado de fases'''
if im.fase_finalizada(kw['id_fase']):
fm.finalizar_fase(kw['id_fase'])
else:
fm.fase_en_desarrollo(kw['id_fase'])
fm.desarrollar_fase_siguiente(kw['id_fase'])
raise redirect('/lineaBase?id_fase='+str(kw["id_fase"]))
示例4: calcularImpacto
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
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
示例5: adjuntar_archivo
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def adjuntar_archivo(self,*args,**kw):
'''Metodo que obtiene el archivo a adjuntar a un item'''
try:
item, navegacion = self.getNavegacionFromIdItem(kw['id_item'])
except:
flash(('Direccion no valida.'), 'error')
raise redirect("/index")
if not(Secure().FiltrarByFase(item.id_fase, 'modificacion_item')):
flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES.'), 'error')
raise redirect("/index")
'''Consultar si se debe crear un nueva version del item'''
contador = kw['contador']
id_item = kw['id_item']
if contador == '0':
id_item = self.crear_nueva_version(kw['id_item']) #retorna el id de la nueva version del item
contador = 1
fileitem = kw['datafile']
if fileitem.filename:
os.path.basename(fileitem.filename.replace("\\", "/" ))
f = fileitem.file.read()
im = ItemManager()
item = im.getById(id_item)
im.adjuntarArchivo(item,f,fileitem.filename)
else:
print 'No se adjunto ningun archivo'
print id_item
raise redirect('/item/adjuntar',id_item= str(id_item), contador = contador)
示例6: crear
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def crear(self, *args, **kw):
'''crear relaciones'''
im = ItemManager()
rm = RelacionManager()
no_creados=[]
seleccion = kw['Aceptar']
if seleccion != 'Cancelar':
'''validar relaciones'''
id_item_actual = kw['item']
item_actual = im.getById(id_item_actual)
id_lista_items = []
id_lista_items = kw['lista_items']
try:
id_lista_items.count(1)
except:
int = id_lista_items
id_lista_items = []
id_lista_items.append(int)
#por cada item a relacionar
for id_item in id_lista_items:
item = im.getById(id_item) #obtener el item
if rm.relacionDuplicada(item_actual,item): #comprobar si es una relacion duplicada
no_creados.append(item.identificador)
else:
if item.id_fase == item_actual.id_fase : #son items de la misma fase
if not rm.tieneciclos(item_actual, item):#no tiene ciclos
rm.add(item_actual,item,'padre-hijo')
else:
no_creados.append(item.identificador)
else:
'''son de fases distintas'''
rm.add(item,item_actual, 'antecesor-sucesor')
if no_creados:
print no_creados
largo=True
if len(no_creados)==1:
largo=False
raise redirect('/relacion/resumen_errores',no_creados=no_creados,id_fase= item_actual.id_fase, largo=largo)
else:
raise redirect('/relacion?id_fase='+kw['id_fase'])
else:
raise redirect('/relacion?id_fase='+kw['id_fase'])
示例7: desaprobar
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def desaprobar(self,**kw):
id_item = kw["id_item"]
id_item = int(id_item)
im = ItemManager()
item_aprobar = im.getById(int(id_item))
fase_retorno = item_aprobar.id_fase
item_aprobar.estado = 'desaprobado'
im.update(item_aprobar)
raise redirect('/item/items?id_fase='+ str(fase_retorno))
示例8: listo
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def listo(self,**kw):
id_item = kw["id_item"]
id_item = int(id_item)
im = ItemManager()
item_listo = im.getById(int(id_item))
fase_retorno = item_listo.id_fase
item_listo.estado = 'listo'
im.update(item_listo)
raise redirect('/item/items?id_fase='+ str(fase_retorno))
示例9: post_delete
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def post_delete(self, *args, **kw):
'''Metodo que elimina un item'''
try:
item, navegacion = self.getNavegacionFromIdItem(args[0])
except:
flash(('Direccion no valida.'), 'error')
raise redirect("/index")
if not(Secure().FiltrarByFase(item.id_fase, 'modificacion_item')):
flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES.'), 'error')
raise redirect("/index")
pm = ItemManager()
if item.estado != 'finalizado':
item.estado = 'eliminado'
item.actual = 'false'
item.id_linea_base = None
id_fase = item.id_fase
pm.update(item)
transaction.begin()
rm = RelacionManager()
lbm = LineaBaseManager()
relaciones = rm.getByItem(args)
'''Marcar para Revision'''
for relacion in relaciones:
transaction.begin()
if relacion.id_item1 == args:
item_revision = pm.getById(relacion.id_item2)
else:
item_revision = pm.getById(relacion.id_item1)
item_revision.estado = 'revision'
if item_revision.id_linea_base != None:
linea_base = lbm.getById(item_revision.id_linea_base)
linea_base.estado = 'no valido'
lbm.update(linea_base)
transaction.commit()
'''Eliminar Relaciones'''
for relacion in relaciones:
rm.delete(relacion)
transaction.commit()
raise redirect('/item/items',id_fase=id_fase, navegacion=navegacion)
示例10: post_delete
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def post_delete(self, *args, **kw):
'''delete'''
pm = ItemManager()
item = pm.getById(args)
if item.estado != 'finalizado':
item.estado = 'eliminado'
item.actual = 'false'
id_fase = item.id_fase
pm.update(item)
raise redirect('/item/items?id_fase='+ str(id_fase))
示例11: verificar_action
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def verificar_action(self, obj):
''' Verifica si se puede relacionar o no un item
@param: obj, item que se desea relacionar
@return: si puede relacionarse o no'''
im = ItemManager()
item1 = im.getById(obj.id_item1)
item2 = im.getById(obj.id_item2)
if item1.id_linea_base != None or item2.id_linea_base!= None:
return False
else:
return True
示例12: adjuntar_archivo
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def adjuntar_archivo(self,*args,**kw):
fileitem = kw['datafile']
if fileitem.filename:
os.path.basename(fileitem.filename.replace("\\", "/" ))
f = fileitem.file.read()
im = ItemManager()
item = im.getById(kw['id_item'])
im.adjuntarArchivo(item,f,fileitem.filename)
else:
print 'No file was uploaded'
raise redirect('/item/adjuntar?id_item='+ kw['id_item'])
示例13: buscar_actuales_por_fase
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def buscar_actuales_por_fase(self,id_fase):
''' Obtiene las relaciones de los items actuales de una determinada fase '''
lista = DBSession.query(Relacion).filter((Relacion.id_fase1 == id_fase)
|(Relacion.id_fase2 == id_fase)).all()
im = ItemManager()
lista_return = []
for relacion in lista:
item1 = im.getById(relacion.id_item1)
item2 = im.getById(relacion.id_item2)
if item1.actual == "true" and item2.actual == "true":
lista_return.append(relacion)
return lista_return
示例14: construir
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def construir(self, nodos,id_item,target,direccion):
for elemento in nodos:
if elemento.item == id_item:
return
im = ItemManager()
rm = RelacionManager()
relations = rm.getByItem(id_item)
relaciones = []
for relacion in relations:
item1 = im.getById(relacion.id_item1)
item2 = im.getById(relacion.id_item2)
if target != id_item:
if item1.actual == "true" and item2.actual == "true":
relaciones.append(relacion)
else:
if direccion == "adelante" or direccion == "total":
if item1.actual == "true" and item2.actual == "true" and relacion.id_item1 == target:
relaciones.append(relacion)
if direccion == "atras" or direccion == "total":
if item1.actual == "true" and item2.actual == "true" and relacion.id_item2 == target:
relaciones.append(relacion)
nodo = Nodo(id_item)
item = im.getById(id_item)
nodo.complejidad = item.complejidad
nodo.nombre = item.identificador
nodo.fase = item.id_fase
analizar = []
for relacion in relaciones:
if relacion.id_item1 == nodo.item:
nodo.relaciones.append(relacion.id_item2)
analizar.append(relacion.id_item2)
else:
analizar.append(relacion.id_item1)
nodos.append(nodo)
for elemento in analizar:
self.construir(nodos,elemento, target, direccion)
示例15: tieneciclos
# 需要导入模块: from sgp.managers.ItemMan import ItemManager [as 别名]
# 或者: from sgp.managers.ItemMan.ItemManager import getById [as 别名]
def tieneciclos(self,item_padre, item_hijo):
''' Verifica si una relacion contiene ciclos
@param:item_padre
@param: item_hijo
return: si existe un ciclo entre los items'''
if str(item_padre.id_fase) != str(item_hijo.id_fase):
return False
relationes = self.buscar_actuales_por_fase(item_padre.id_fase)
iman = ItemManager()
relations = []
for relacion in relationes:
item1 = iman.getById(relacion.id_item1)
item2 = iman.getById(relacion.id_item2)
if item1.actual == "true" and item2.actual == "true":
relations.append(relacion)
nodos = []
bandera1 = 0
bandera2 = 0
for relacion in relations:
if str(relacion.id_item2) == str(item_padre.id_item):
bandera1 = 1
if str(relacion.id_item1) == str(item_hijo.id_item):
bandera2 = 1
nodo1 = Nodo(str(relacion.id_item1))
nodo2 = Nodo(str(relacion.id_item2))
if nodos.count(nodo1) == 0:
nodos.append(nodo1)
if nodos.count(nodo2) == 0:
nodos.append(nodo2)
if bandera1 != 1 or bandera2 != 1:
return False
for nodo in nodos:
for relacion in relations:
if str(relacion.id_item1) == nodo.item1:
nodo.relaciones.append(str(relacion.id_item2))
contador = 0
inicio = ""
for nodo in nodos:
contador = contador + 1
if nodo.item1 == str(item_hijo.id_item):
inicio = nodo
controlador = 0
analizados = []
bool = self.buscarCiclos(str(item_padre.id_item), inicio, nodos,contador, controlador, analizados)
return bool