def put_fase(self, id_fase, nombre_fase, id_tipo_fase, tipos_items, descripcion, asmSelect0, **kw): if id_fase is not None: id_fase=int(id_fase) if id_tipo_fase is not None: id_tipo_fase=int(id_tipo_fase) fase =Fase.get_fase_by_id(id_fase) nombres=Fase.get_nombres_by_id(fase.proyecto) nombres.remove(fase.nombre_fase) 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] if nombre_fase not in nombres: fase.nombre_fase = nombre_fase fase.id_tipo_fase=id_tipo_fase fase.estado = fase.estado fase.linea_base = fase.linea_base fase.descripcion = descripcion fase.tipos_items=tipos_items DBSession.flush() flash("Fase modificada!") redirect('/fase/fase') else: nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") id_tipo_fase=fase.id_tipo_fase tipos_fases = Tipo_Fase.get_tipo_fases() tipos = fase.tipos_items lista=[] lista.append(id_tipo_fase) tipos = fase.tipos_items tipos_items2 = [] for tip in tipos: tipos_items2.append(tip.id_tipo_item) values = dict(id_fase=id_fase, nombre_fase=nombre_fase, descripcion=descripcion, ) flash("El nombre de fase solicitado ya existe!") return dict(pagina="editar_fase",values=values, tipos_fases=tipos_fases,tipos_items=tipos_items, tipos_items2=tipos_items2,lista=lista, id_tipo_fase=id_tipo_fase,nom_fase=nom_fase, nom_proyecto= nom_proyecto )
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)