Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
	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))
Beispiel #4
0
	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))
Beispiel #5
0
	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))
Beispiel #6
0
    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))