def setup(self): try: new_attrs = {} new_attrs.update(self.attrs) new_attrs.update(self.do_get_dependencies()) self.obj = self.klass(**new_attrs) DBSession.add(self.obj) DBSession.flush() return self.obj except: DBSession.rollback() raise
def post(self, id_fase, method='', **kw): del kw['sprox_id'] lineabase = LineaBase() lineabase.cod_lb = kw['cod_lb'] lineabase.estado = "cerrado" lineabase.id_fase = id_fase #id_fa = id_fase for i in kw['item']: p = DBSession.query(Item).get(i) lineabase.item.append(p) items = [] tipos = DBSession.query(TipoItem.id_tipoitem).filter(TipoItem.id_fase == id_fase).all() for i in tipos: item = DBSession.query(Item.id_item).filter(Item.id_tipoitem==i).all() items.extend(item) if (len(items) == len(kw['item'])): lineabase.tipo = "total" else: lineabase.tipo = "parcial" DBSession.add(lineabase) lb = DBSession.query(LineaBase.id_lb).filter(LineaBase.id_fase==id_fase).all() if (lb is not None): for j in lb: linea = DBSession.query(LineaBase).get(j) if (linea.id_lb != lineabase.id_lb and linea.tipo == "total"): linea.tipo = "parcial" DBSession.merge(linea) DBSession.flush() for i in kw['item']: p = DBSession.query(Item).get(i) p.id_lb = lineabase.id_lb DBSession.merge(p) identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario ahora = time.localtime() anho = str(ahora.tm_year) mes = str(ahora.tm_mon) dia = str(ahora.tm_mday) hora = str(ahora.tm_hour) min = str(ahora.tm_min) seg = str(ahora.tm_sec) historial = Historial() historial.cod_recurso = lineabase.cod_lb historial.tipo_recurso = "Linea_Base" historial.nombre_recurso = "sinNombre" historial.operacion = "Creacion" historial.fecha_operacion = anho+'-'+mes+'-'+dia historial.hora = hora+':'+min+':'+seg historial.nombre_usuario = user.user_name DBSession.add(historial) flash('Linea Base creada') redirect('/configuracion/linea_base/list/'+str(lineabase.id_fase))
def post(self, id_fase, method='', **kw): """Metodo invocado para persistir los datos del item creado en la BD""" del kw['sprox_id'] funciones = Funciones() item = Item() item.id_tipoitem = kw['tipo_item'] tipoitem = DBSession.query(TipoItem).filter(TipoItem.id_tipoitem==item.id_tipoitem).first() cod_tipoitem = tipoitem.cod_tipoitem item.cod_item = str(cod_tipoitem)+str(funciones.generador_codigo_item(cod_tipoitem)) item.nombre_item = kw['nombre_item'] item.descripcion = kw['descripcion'] item.version = 1#kw['version'] item.estado = "en desarrollo" item.complejidad = kw['complejidad'] id_fa = id_fase item.id_tipoitem = kw['tipo_item'] DBSession.add(item) DBSession.flush() #VERSIONADO_ITEM cod_tipoitem_versionado = DBSession.query(TipoItem.cod_tipoitem).filter(TipoItem.id_tipoitem==item.id_tipoitem).first() versionadoitem = VersionadoItem() versionadoitem.cod_item = item.cod_item versionadoitem.cod_tipoitem= cod_tipoitem_versionado versionadoitem.nombre_item = item.nombre_item versionadoitem.descripcion = item.descripcion versionadoitem.version = item.version versionadoitem.complejidad = item.complejidad DBSession.add(versionadoitem) DBSession.flush() print ("0000000000000000000000000000000000000000000000000000000000000000 VERSIONADO %s") % (versionadoitem.id_versionado) #se crean los detalles del item en base a los detalles del tipo detalles = DBSession.query(DetalleTipoItem.id_detalletipoitem).filter(DetalleTipoItem.id_tipoitem==kw['tipo_item']).all() for i in detalles: detalle = DBSession.query(DetalleTipoItem).get(i) atributo = DetalleItem() atributo.id_item = item.id_item atributo.tipo_dato = DBSession.query(DetalleTipoItem.tipo_dato).filter(DetalleTipoItem.id_detalletipoitem==i).first() atributo.id_detalletipoitem = i atributo.cod_detalleitem = funciones.generador_codigo(detalle.nombre_atributo) atributo.cod_detalletipoitem = DBSession.query(DetalleTipoItem.cod_detalletipoitem).filter(DetalleTipoItem.id_detalletipoitem==i).first() atributo.nombre_atributo = detalle.nombre_atributo atributo.valor = None #atributo.archivo = None DBSession.add(atributo) #DETALLE_VERSIONADO_ITEM detalleversionadoitem = DetalleVersionadoItem() detalleversionadoitem.id_versionado = versionadoitem.id_versionado detalleversionadoitem.cod_item = item.cod_item detalleversionadoitem.cod_detalleitem = atributo.cod_detalleitem detalleversionadoitem.cod_detalletipoitem = atributo.cod_detalletipoitem detalleversionadoitem.nombre_atributo = detalle.nombre_atributo detalleversionadoitem.tipo_dato = atributo.tipo_dato detalleversionadoitem.valor = None #detalleversionadoitem.archivo = atributo.archivo DBSession.add(detalleversionadoitem) identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario ahora = time.localtime() anho = str(ahora.tm_year) mes = str(ahora.tm_mon) dia = str(ahora.tm_mday) hora = str(ahora.tm_hour) min = str(ahora.tm_min) seg = str(ahora.tm_sec) historial = Historial() historial.cod_recurso = item.cod_item historial.tipo_recurso = "Item" historial.nombre_recurso = item.nombre_item historial.operacion = "Creacion" historial.fecha_operacion = anho+'-'+mes+'-'+dia historial.hora = hora+':'+min+':'+seg historial.nombre_usuario = user.user_name DBSession.add(historial) flash('Item creado') redirect('/desarrollo/item/list/'+str(id_fa))
def put(self, id='', **kw): """Metodo invocado para persistir los datos modificados """ del kw['sprox_id'] item = DBSession.query(Item).get(id) id_tipo = DBSession.query(Item.id_tipoitem).filter(Item.id_item==id).one() id_fase = DBSession.query(TipoItem.id_fase).filter(TipoItem.id_tipoitem==id_tipo).all() for i in id_fase: fase = DBSession.query(Fase).get(i) print ("0000000000000000000000000000000000000000000000000000000 version del item en put es: %d") % (item.version) item.nombre_item = kw['nombre_item'] item.descripcion = kw['descripcion'] item.estado = "revision" #item.id_tipoitem = kw['tipo_item'] item.version = item.version + 1 item.complejidad = kw['complejidad'] DBSession.merge(item) """ si el item se encuentra en una linea base, esta debe estar abierta... una vez abierta, debe pasar a estado comprometido """ #relaciones del item modificado list_relaciones = DBSession.query(Relacion.id_relacion).filter(Relacion.id_item1==id).all() print ("wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww linea base del item en put es: %s") % (list_relaciones) for i in list_relaciones: iditem = DBSession.query(Relacion.id_item2).filter(Relacion.id_relacion==i).one() lb = DBSession.query(ItemLineaBase.id_lb).filter(ItemLineaBase.id_item==iditem).one() print ("0000000000000000000000000000000000000000000000000000000 linea base del item en put es: %d") % (lb) linea = DBSession.query(LineaBase).filter(LineaBase.id_lb==lb).all() for j in linea: j.estado = "comprometida" DBSession.merge(j) lb = DBSession.query(ItemLineaBase.id_lb).filter(ItemLineaBase.id_item==id).first() if lb is not None: print ("0000000000000000000000000000000000000000000000000000000 linea base del item en put es: %d") % (lb) linea = DBSession.query(LineaBase).filter(LineaBase.id_lb==lb).all() for i in linea: i.estado = "comprometida" DBSession.merge(i) #Aqui se Agrega el registro del item a la taba de versionado cod_tipoitem_versionado = DBSession.query(Item.id_tipoitem).filter(Item.id_item==id).first() versionadoitem = VersionadoItem() versionadoitem.cod_item = item.cod_item versionadoitem.cod_tipoitem= cod_tipoitem_versionado versionadoitem.nombre_item = item.nombre_item versionadoitem.descripcion = item.descripcion versionadoitem.version = item.version versionadoitem.complejidad = item.complejidad DBSession.add(versionadoitem) DBSession.flush() identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario ahora = time.localtime() anho = str(ahora.tm_year) mes = str(ahora.tm_mon) dia = str(ahora.tm_mday) hora = str(ahora.tm_hour) min = str(ahora.tm_min) seg = str(ahora.tm_sec) historial = Historial() historial.cod_recurso = item.cod_item historial.tipo_recurso = "Item" historial.nombre_recurso = item.nombre_item historial.operacion = "Modificacion" historial.fecha_operacion = anho+'-'+mes+'-'+dia historial.hora = hora+':'+min+':'+seg historial.nombre_usuario = user.user_name DBSession.add(historial) flash('Item modificado') redirect("/desarrollo/item/list/"+str(fase.id_fase))
def post(self, id_fase, method='', **kw): del kw['sprox_id'] lineabase = LineaBase() lineabase.cod_lb = kw['cod_lb'] lineabase.estado = "cerrado" lineabase.id_fase = id_fase #id_fa = id_fase for i in kw['item']: p = DBSession.query(Item).get(i) lineabase.item.append(p) items = [] tipos = DBSession.query( TipoItem.id_tipoitem).filter(TipoItem.id_fase == id_fase).all() for i in tipos: item = DBSession.query( Item.id_item).filter(Item.id_tipoitem == i).all() items.extend(item) if (len(items) == len(kw['item'])): lineabase.tipo = "total" else: lineabase.tipo = "parcial" DBSession.add(lineabase) lb = DBSession.query( LineaBase.id_lb).filter(LineaBase.id_fase == id_fase).all() if (lb is not None): for j in lb: linea = DBSession.query(LineaBase).get(j) if (linea.id_lb != lineabase.id_lb and linea.tipo == "total"): linea.tipo = "parcial" DBSession.merge(linea) DBSession.flush() for i in kw['item']: p = DBSession.query(Item).get(i) p.id_lb = lineabase.id_lb DBSession.merge(p) identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario ahora = time.localtime() anho = str(ahora.tm_year) mes = str(ahora.tm_mon) dia = str(ahora.tm_mday) hora = str(ahora.tm_hour) min = str(ahora.tm_min) seg = str(ahora.tm_sec) historial = Historial() historial.cod_recurso = lineabase.cod_lb historial.tipo_recurso = "Linea_Base" historial.nombre_recurso = "sinNombre" historial.operacion = "Creacion" historial.fecha_operacion = anho + '-' + mes + '-' + dia historial.hora = hora + ':' + min + ':' + seg historial.nombre_usuario = user.user_name DBSession.add(historial) flash('Linea Base creada') redirect('/configuracion/linea_base/list/' + str(lineabase.id_fase))