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))
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))
def post(self, *args, **kw): '''New''' p = Item() pm = ItemManager() cm = CodigoManager() params = kw p.identificador = params['identificador'] p.observacion = params['observacion'] p.estado = 'inicial' p.complejidad = params['complejidad'] p.descripcion = params['descripcion'] p.id_fase = int(session['id_fase']) p.codigo = pm.generar_codigo(int(session['id_fase']), int(params['tipo_items'])) p.version = 1 p.actual = 'true' if params['tipo_items'] != '-1': ti = TipoItemManager() tipo = ti.getById(params['tipo_items']) p.tipo = tipo pm.add(p) if params['tipo_items'] != '-1': ti = TipoItemManager() tipo = ti.getById(params['tipo_items']) campos = tipo.campos for campo in campos: nombre_campo = campo.nombre valor = params[nombre_campo] pm.addAtributo(params['identificador'], params['id_fase'], 1, campo.id_campo, valor) item = pm.getByIdentificadorFaseVersion(params['identificador'], params['id_fase'], 1) '''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=' + params['id_fase'])