def post_delete(self, id_tipo_item, nombre_tipo_item, codigo_tipo_item, descripcion, **kw): if id_tipo_item is not None: id_tipo_item = int(id_tipo_item) campos2 = Tipo_Campos.get_campos_by_tipo_item(id_tipo_item) for cam in campos2: Tipo_Campos.borrar_by_id(cam.id_tipo_campos) DBSession.flush() Tipo_Item.borrar_by_id(id_tipo_item) DBSession.flush() flash("Tipo de Item eliminado!") redirect("/tipo_item/tipo_item")
def post_tipo_item(self, nombre_tipo_item, codigo_tipo_item, descripcion, campo, valor): tipo_item = Tipo_Item( nombre_tipo_item=nombre_tipo_item, codigo_tipo_item=codigo_tipo_item, descripcion=descripcion ) DBSession.add(tipo_item) if campo is not None: if not isinstance(campo, list): campo = [campo] if valor is not None: if not isinstance(valor, list): valor = [valor] indice = 0 id_tipo = Tipo_Item.get_ultimo_id() for c in campo: if len(c) > 0: camp = Tipo_Campos(id_tipo_item=id_tipo, nombre_campo=c, valor_campo=valor[indice]) DBSession.add(camp) indice += 1 flash("Tipo Item Agregado!") redirect("/tipo_item/tipo_item")
def put(self, id_tipo_item, nombre_tipo_item, codigo_tipo_item, descripcion, campo, valor, **kw): if id_tipo_item is not None: id_tipo_item = int(id_tipo_item) tipo_item = Tipo_Item.get_tipo_item_by_id(id_tipo_item) campos2 = Tipo_Campos.get_campos_by_tipo_item(tipo_item.id_tipo_item) for cam in campos2: Tipo_Campos.borrar_by_id(cam.id_tipo_campos) DBSession.flush() tipo_item.nombre_tipo_item = nombre_tipo_item tipo_item.descripcion = descripcion tipo_item.codigo_tipo_item = codigo_tipo_item if campo is not None: if not isinstance(campo, list): campo = [campo] if valor is not None: if not isinstance(valor, list): valor = [valor] indice = 0 for c in campo: if len(c) > 0: camp = Tipo_Campos(id_tipo_item=id_tipo_item, nombre_campo=c, valor_campo=valor[indice]) DBSession.add(camp) indice += 1 DBSession.flush() flash("Tipo de Item modificada!") redirect("/tipo_item/tipo_item")
def clonar_tipo_item(self, id_tipo_item, *args, **kw): nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual") if id_tipo_item is not None: id_tipo_item = int(id_tipo_item) tipo_item = Tipo_Item.get_tipo_item_by_id(id_tipo_item) valores_permitidos = ["alfanumerico", "numerico", "fecha"] campos = Tipo_Campos.get_campos_by_tipo_item(tipo_item.id_tipo_item) if request.method != "PUT": values = dict( id_tipo_item=tipo_item.id_tipo_item, nombre_tipo_item=tipo_item.nombre_tipo_item, codigo_tipo_item=tipo_item.codigo_tipo_item, descripcion=tipo_item.descripcion, ) return dict( pagina="clonar_tipo_item", values=values, campos=campos, nom_proyecto=nom_proyecto, nom_fase=nom_fase, valores_permitidos=valores_permitidos, )
def editar_tipo_fase(self,id_tipo_fase,*args, **kw): nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") if id_tipo_fase is not None: id_tipo_fase=int(id_tipo_fase) tipo_fase = Tipo_Fase.get_tipo_fase_by_id(id_tipo_fase) tipos_items = Tipo_Item.get_tipos_items() tipos = tipo_fase.tipos_items tipos_items2 = [] for tip in tipos: tipos_items2.append(tip.id_tipo_item) if request.method != 'PUT': values = dict(id_tipo_fase=tipo_fase.id_tipo_fase, nombre_tipo_fase=tipo_fase.nombre_tipo_fase, descripcion=tipo_fase.descripcion, ) return dict(pagina="editar_tipo_fase",values=values, tipos_items=tipos_items, nom_proyecto=nom_proyecto, tipos_items2=tipos_items2,nom_fase=nom_fase)
def ver_campos(self, id_tipo_item): """Lista """ nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual") if id_tipo_item is not None: id_tipo_item = int(id_tipo_item) tipo_item = Tipo_Item.get_tipo_item_by_id(id_tipo_item) values = dict( id_tipo_item=tipo_item.id_tipo_item, nombre_tipo_item=tipo_item.nombre_tipo_item, descripcion=tipo_item.descripcion, ) camp = Tipo_Campos.get_campos_by_tipo_item(tipo_item.id_tipo_item) campos = [] for c in camp: campos.append(c) return dict( pagina="listar_mis_campos", campos=campos, nom_proyecto=nom_proyecto, nom_fase=nom_fase, values=values )
def editar_fase(self,id_fase,*args, **kw): """ Permite editar una fase. Es posible la modificación del nombre de la fase y de su descripción. """ nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") if id_fase is not None: id_fase=int(id_fase) tipos_fases = Tipo_Fase.get_tipo_fases() fase = Fase.get_fase_by_id(id_fase) tipos_items = Tipo_Item.get_tipos_items() id_tipo_fase=int(fase.id_tipo_fase) lista=[] lista.append(id_tipo_fase) tipos = fase.tipos_items tipos_items2 = [] for tip in tipos: tipos_items2.append(tip.id_tipo_item) if request.method != 'PUT': values = dict(id_fase=fase.id_fase, nombre_fase=fase.nombre_fase, descripcion=fase.descripcion, ) return dict(pagina="editar_fase",values=values,tipos_fases=tipos_fases, tipos_items=tipos_items,tipos_items2=tipos_items2, lista=lista,nom_fase=nom_fase, nom_proyecto= nom_proyecto )
def agregar_tipo_fase(self,*args, **kw): nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") tipos_items = Tipo_Item.get_tipos_items() return dict(pagina='agregar_tipo_fase',nom_proyecto=nom_proyecto, values=kw,tipos_items = tipos_items, nom_fase=nom_fase)
def tipo_item(self, start=0, end=5, indice=None, texto=""): """ Menu para Tipos de Item """ nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual") paginado = 5 if start <> 0: end = int(start.split("=")[1]) # obtiene el fin de pagina start = int(start.split("&")[0]) # obtiene el inicio de pagina # print start,end pagina_actual = ((start % end) / paginado) + 1 if ((start % end) % paginado) <> 0: pagina_actual = pagina_actual + 1 tipos_campos = Tipo_Campos.get_tipo_campos() if indice <> None and texto <> "": tipos_items = Tipo_Item.get_tipos_items_por_filtro(indice, texto) total = len(tipos_items) else: tipos_items = Tipo_Item.get_tipos_items_por_pagina(start, end) total = len(Tipo_Item.get_tipos_items()) lista = ["nombre", "descripcion"] return dict( pagina="tipo_item", tipos_items=tipos_items, tipos_campos=tipos_campos, nom_proyecto=nom_proyecto, nom_fase=nom_fase, inicio=start, fin=end, paginado=paginado, pagina_actual=pagina_actual, total=total, param="/tipo_item/tipo_item", lista=lista, )
def agregar_fase(self, *args, **kw): """ Agrega una fase al proyecto actual. """ nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") tipos_fases = Tipo_Fase.get_tipo_fases() tipos_items = Tipo_Item.get_tipos_items() return dict(pagina="agregar_fase",values=kw, tipos_fases=tipos_fases, tipos_items=tipos_items,nom_proyecto=nom_proyecto ,nom_fase=nom_fase)
def listar_tipo_item(self): """Lista tipos de items """ nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual") tipos_items = Tipo_Item.get_tipo_item() tipos_campos = Tipo_Campos.get_tipo_campos() return dict( pagina="listar_tipo_item", tipos_items=tipos_items, tipos_campos=tipos_campos, nom_proyecto=nom_proyecto, nom_fase=nom_fase, )
def eliminar_tipo_item(self, id_tipo_item, *args, **kw): nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual") if id_tipo_item is not None: id_tipo_item = int(id_tipo_item) tipo_item = Tipo_Item.get_tipo_item_by_id(id_tipo_item) values = dict( id_tipo_item=tipo_item.id_tipo_item, nombre_tipo_item=tipo_item.nombre_tipo_item, codigo_tipo_item=tipo_item.codigo_tipo_item, descripcion=tipo_item.descripcion, ) return dict(pagina="eliminar_tipo_item", values=values, nom_proyecto=nom_proyecto, nom_fase=nom_fase)
def post_fase(self, nombre_fase, id_tipo_fase, tipos_items, descripcion, asmSelect0): """ Permite agregar una nueva fase al proyecto. """ proyecto=int(Variables.get_valor_by_nombre("proyecto_actual")) nombres=Fase.get_nombres_by_id(proyecto) if not isinstance(nombres, list): nombres = [nombres] if nombre_fase not in nombres: if id_tipo_fase is not None: id_tipo_fase = int(id_tipo_fase) if tipos_items is not None: if not isinstance(tipos_items, list): tipos_items = [tipos_items] tipos_items = [DBSession.query(Tipo_Item).get(tipo_item) for tipo_item in tipos_items] fase = Fase (nombre_fase=nombre_fase, id_tipo_fase=id_tipo_fase, estado="nuevo", linea_base="abierta", descripcion=descripcion,tipos_items=tipos_items, proyecto=0,orden=0) DBSession.add(fase) DBSession.flush() flash("Fase agregada!") redirect('/fase/fase') else: nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") tipos_fases = Tipo_Fase.get_tipo_fases() tipos_items = Tipo_Item.get_tipos_items() values = dict(nombre_fase=nombre_fase, descripcion=descripcion, ) flash("Nombre de Fase es repetido!") return dict(pagina="agregar_fase",values=values, tipos_fases=tipos_fases, tipos_items=tipos_items,nom_proyecto=nom_proyecto ,nom_fase=nom_fase)
def post_item(self, nombre_item, complejidad, adjunto, id_tipo_item, asmSelect0,padres=None): items= Item.get_nombres_items() if nombre_item not in items: if id_tipo_item is not None: id_tipo_item = int(id_tipo_item) if complejidad is not None: complejidad=int(complejidad) if adjunto is not None: if not isinstance(adjunto, list): adjunto = [adjunto] if padres is not None: if not isinstance(padres, list): padres = [padres] padres = [DBSession.query(Item).get(padre) for padre in padres] #---------------------------------------- tipo_item =Tipo_Item.get_tipo_item_by_id(id_tipo_item) pre_codigo=tipo_item.codigo_tipo_item proy_act=int (Variables.get_valor_by_nombre("proyecto_actual")) fas_act=int (Variables.get_valor_by_nombre("fase_actual")) fase=Fase.get_fase_by_id(fas_act) codigo_item=Item.crear_codigo(id_tipo_item, pre_codigo,proy_act,fas_act) item = Item (nombre_item=nombre_item, codigo_item=codigo_item, id_tipo_item=id_tipo_item, complejidad=complejidad, estado = "nuevo", fase=fas_act,proyecto=proy_act,orden=fase.orden, creado_por=Variables.get_valor_by_nombre("usuario_actual"), fecha_creacion = time.ctime(), version =1 , estado_oculto="Activo",lb_parcial=0,lb_general=0 ) DBSession.add(item) DBSession.flush() #---------------------------------------- for padre in padres: if padre.nombre_item == "master": padres.remove(padre) mayor =int(Item.get_ultimo_id()) relacion = Relaciones (id_item_hijo=mayor,padres=padres) #---------------------------------------- id_item2=Item.get_ultimo_id() tipos_campos=Tipo_Campos.get_campos_by_tipo_item(id_tipo_item) for tipo in tipos_campos: camp =Campos(id_item=id_item2, nombre_campo=tipo.nombre_campo, tipo_campo= tipo.valor_campo) DBSession.add(camp) DBSession.flush() #---------------------------------------- if adjunto is not None: for adj in adjunto: if len(str(adj))==0: break if len(adj.filename)==0: break data = adj.file.read() encode=base64.b64encode(data) var=binascii.a2b_base64(encode) adj = Adjunto (id_item=mayor, archivo=var, nombre_archivo=adj.filename, version =item.version , estado_oculto=item.estado_oculto) DBSession.add(adj) DBSession.flush() flash("Item Agregado!") redirect('/item/item') else: nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") id_fase=int(Variables.get_valor_by_nombre("fase_actual")) padres=Item.get_item_activados() #cambiar esta funcion y solo traer lo que no forman ciclos fase = Fase.get_fase_by_id(id_fase) tipos_items=fase.tipos_items values = dict(nombre_item=nombre_item, id_tipo_item=id_tipo_item, complejidad=complejidad, ) flash("Nombre de Item ya existente!") return dict(pagina="agregar_item",values=values, tipos_items=tipos_items,nom_proyecto=nom_proyecto, nom_fase=nom_fase,padres=padres)