Beispiel #1
0
    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))
Beispiel #2
0
 def new(self, *args, **kw):
     """Muestra el formulario de Nuevo Item."""
     tmpl_context.widget = self.new_form
     params = kw
     complejidad = [1,2,3,4,5,6,7,8,9,10]
     try:
         fase, navegacion = self.getNavegacionFromIdFase(params['id_fase'])
         id_tipoItem = params['tipo_items']            
     except:
         flash(('Direccion no valida.'), 'error')
         raise redirect("/index")
     if not(Secure().FiltrarByFase(fase.id_fase, 'creacion_item')):
         flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES.'), 'error')
         raise redirect("/index")
                  
     if str(id_tipoItem) == '-1':
         return dict(value=kw, model=self.model.__name__, campos=[],id_fase=params['id_fase'],tipo_items=id_tipoItem, comp = complejidad,i ="",o="", c = 1, d ="", navegacion=navegacion)
     else:
         fm = TipoItemManager()
         tipo = fm.getById(id_tipoItem)
         c = tipo.campos
         campos=[]
         for i in c:
             x = listaCampos(); x.nombre = i.nombre; x.tipo_dato=i.tipo_dato; x.error=""; x.valor=""
             campos.append(x)
         return dict(value=kw, model=self.model.__name__,campos = campos,id_fase=params['id_fase'],tipo_items=id_tipoItem, comp = complejidad,i ="",o="", c = 1, d ="", navegacion=navegacion)
Beispiel #3
0
 def _do_get_provider_count_and_objs(self, buscado="", **kw):
     pm = CampoManager()
     tm = TipoItemManager()
     ti = tm.getByNombreFase(self.tipo, self.fase)
     if ti==None:
         return 0, []
     Campo = pm.getByTipoItem(ti.id_tipo_item)
     return len(Campo), Campo
Beispiel #4
0
    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))
Beispiel #5
0
 def post(self, **kw):
     rm = TipoItemManager()
     params = kw
     creo = rm.addSinCampos(params['nombre'], int(session['id_fase']), params['descripcion'], params['prefijo'])
     if not(creo):
         flash(('Error: Ya existe un tipo de item con el nombre <<' + params['nombre'] + '>> en esta fase.'), 'Error')
         return dict(nombre = params['nombre'], descripcion=params['descripcion'], prefijo = params['prefijo'], error = True)
     else:      
         id = rm.getByNombreFase(params['nombre'], int(session['id_fase'])).id_tipo_item
         raise redirect('/tipoItem/' + str(id) + '/campos')
Beispiel #6
0
 def post_delete(self, *args, **kw):
     pm = TipoItemManager()
     cm = CampoManager()
     if pm.comprobarUso(args):
         cm.deleteByTipoItem(args)
         pm.deleteById(args)
         raise redirect("./")
     else:
         flash(("Error de Eliminacion: Existen items de este tipo."), "error")
         raise redirect("./")
Beispiel #7
0
 def post(self, **kw):
     rm = TipoItemManager()
     params = kw
     creo = rm.addSinCampos(params["nombre"], int(session["id_fase"]), params["descripcion"], params["prefijo"])
     if not (creo):
         flash(
             ("Error: Ya existe un tipo de item con el nombre <<" + params["nombre"] + ">> en esta fase."), "Error"
         )
         return dict(
             nombre=params["nombre"], descripcion=params["descripcion"], prefijo=params["prefijo"], error=True
         )
     else:
         id = rm.getByNombreFase(params["nombre"], int(session["id_fase"])).id_tipo_item
         raise redirect("/tipoItem/" + str(id) + "/campos")
Beispiel #8
0
 def new(self, *args, **kw):
     """Display a page to show a new record."""
     tmpl_context.widget = self.new_form
     params = kw
     
     id_tipoItem = params['tipo_items']
     if str(id_tipoItem) == '-1':
         
         return dict(value=kw, model=self.model.__name__, campos=[],id_fase=params['id_fase'],tipo_items=id_tipoItem)
     else:
         fm = TipoItemManager()
         tipo = fm.getById(id_tipoItem)
         campos = tipo.campos
         return dict(value=kw, model=self.model.__name__,campos = campos,id_fase=params['id_fase'],tipo_items=id_tipoItem)
Beispiel #9
0
 def new(self, *args, **kw):
     """Display a page to show a new record."""
     tmpl_context.widget = self.new_form
     params = kw
     complejidad = [1,2,3,4,5,6,7,8,9,10]
     id_tipoItem = params['tipo_items']
     if str(id_tipoItem) == '-1':            
         return dict(value=kw, model=self.model.__name__, campos=[],id_fase=params['id_fase'],tipo_items=id_tipoItem, comp = complejidad,i ="",o="", c = 1, d ="")
     else:
         fm = TipoItemManager()
         tipo = fm.getById(id_tipoItem)
         c = tipo.campos
         campos=[]
         for i in c:
             x = listaCampos(); x.nombre = i.nombre; x.tipo_dato=i.tipo_dato; x.error=""; x.valor=""
             campos.append(x)
         return dict(value=kw, model=self.model.__name__,campos = campos,id_fase=params['id_fase'],tipo_items=id_tipoItem, comp = complejidad,i ="",o="", c = 1, d ="")
Beispiel #10
0
    def post(self, **kw):
        tm = TipoItemManager()
        cm= CampoManager()
        params = kw
        
#        fase = session['fase']
#        tipo = session['tipoItem']
        fase    =   self.tipoIt.id_fase
        tipo      =   self.tipoIt.nombre


        #devuelve query
        ti = tm.getByNombreFase(tipo,fase)
        creo = cm.addParams(params['nombre'], params['tipo_dato'], ti.id_tipo_item)
        if not(creo):
            flash(('Ya existe un campo con el nombre "' + params['nombre']+ '" en este tipo de item.'), 'error')
            raise redirect('/tipoItem/' + str(self.id_tipo_item)  + '/campos/new')
        else:        
            raise redirect('/tipoItem/' + str(self.id_tipo_item)  + '/campos')
Beispiel #11
0
    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'])
Beispiel #12
0
 def post(self, **kw):
     '''Crea un tipo de item'''
     if not('id_fase' in kw):
         flash(('Direccion No valida'), 'error')
         raise redirect("/index")             
     if not(Secure().FiltrarByFase(int(kw['id_fase']), 'crear_ti')):
         flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error')
         raise redirect("/index")        
     rm = TipoItemManager()
     params = kw
     if kw['submit']=="cancelar":
         raise redirect('/tipoItem/', id_fase=kw['id_fase'])
         
     creo = rm.addSinCampos(params['nombre'], int(kw['id_fase']), params['descripcion'], params['prefijo'])
     if not(creo):
         fase, navegacion = self.getNavegacionFromIdFase(kw['id_fase'])
         flash(('Error: Ya existe un tipo de item con el nombre <<' + params['nombre'] + '>> en esta fase.'), 'Error')
         return dict(nombre = params['nombre'], descripcion=params['descripcion'], prefijo = params['prefijo'], error = True, navegacion=navegacion)
     else:      
         id = rm.getByNombreFase(params['nombre'], int(kw['id_fase'])).id_tipo_item
         raise redirect('/tipoItem/' + str(id) + '/campos')
Beispiel #13
0
 def put(self, *args, **kw):
     '''actualiza un tipo de item'''
     if not('id_fase' in kw):
         flash(('Direccion No valida'), 'error')
         raise redirect("/index")             
     if not(Secure().FiltrarByFase(int(kw['id_fase']), 'modificar_ti')):
         flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error')
         raise redirect("/index")
     rm = TipoItemManager()
     params = kw
     if kw['submit']=="cancelar":
         raise redirect ('/tipoItem', id_fase=kw['id_fase'])
     existe = rm.verificaExistenciaPut(params['id_fase'], params['nombre'])
     if existe:
         flash(('Error: Ya existe un tipo de item con el nombre "' + params['nombre'] + '" en esta fase.'), 'Error')
         raise redirect('/tipoItem/' + params['id_tipo_item'] + '/edit', nombre = params['nombre'], descripcion=params['descripcion'], prefijo=params['prefijo'])        
     p = rm.getById(params['id_tipo_item'])
     prefijo_viejo = p.prefijo
     p.nombre = params['nombre']
     p.descripcion=params['descripcion']
     p.prefijo = params['prefijo']
     rm.update(p)
     id = rm.getByNombreFase(params['nombre'], int(params['id_fase'])).id_tipo_item
     ItemManager().actualizarPrefijosItem(id, prefijo_viejo, params['prefijo'])
     if kw['submit']=="editar":
         raise redirect('/tipoItem', id_fase=params['id_fase'])
     raise redirect('/tipoItem/' + str(id) + '/campos')
Beispiel #14
0
 def post_delete(self, *args, **kw):
     '''Elimina un tipo de item del sistema. Verifica y valida la eliminacion'''
     if not('id_tipo_item' in kw):
         flash(('Direccion No valida'), 'error')
         raise redirect("/index")
     try:
         pm = TipoItemManager()
         ti=pm.getById(int(kw['id_tipo_item']))
     except:
         flash(('Direccion No valida'), 'error')
         raise redirect("/index")
          
     if not(Secure().FiltrarByFase(ti.id_fase, 'modificar_ti')):
         flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error')
         raise redirect("/index")        
     cm = CampoManager()
     ti=pm.getById(int(kw['id_tipo_item']))
     id_fase=ti.id_fase
     if pm.comprobarUso(int(kw['id_tipo_item'])):
         cm.deleteByTipoItem(int(kw['id_tipo_item']))
         pm.deleteById(int(kw['id_tipo_item']))
         raise redirect('/tipoItem', id_fase=id_fase)
     else:
         flash(("Error de Eliminacion: Existen items de este tipo."),'error')
         raise redirect('/tipoItem', id_fase=ti.id_fase)
Beispiel #15
0
 def put(self, *args, **kw):
     rm = TipoItemManager()
     params = kw
     if kw["submit"] == "cancelar":
         raise redirect("/tipoItem")
     existe = rm.verificaExistenciaPut(params["id_fase"], params["nombre"])
     if existe:
         flash(('Error: Ya existe un tipo de item con el nombre "' + params["nombre"] + '" en esta fase.'), "Error")
         raise redirect(
             "/tipoItem/" + params["id_tipo_item"] + "/edit",
             nombre=params["nombre"],
             descripcion=params["descripcion"],
             prefijo=params["prefijo"],
         )
     p = rm.getById(params["id_tipo_item"])
     prefijo_viejo = p.prefijo
     p.nombre = params["nombre"]
     p.descripcion = params["descripcion"]
     p.prefijo = params["prefijo"]
     rm.update(p)
     id = rm.getByNombreFase(params["nombre"], int(params["id_fase"])).id_tipo_item
     ItemManager().actualizarPrefijosItem(id, prefijo_viejo, params["prefijo"])
     print kw
     if kw["submit"] == "editar":
         print "Editar"
         raise redirect("/tipoItem")
     raise redirect("/tipoItem/" + str(id) + "/campos")
Beispiel #16
0
    def new(self, *args, **kw):
        """Display a page to show a new record."""
        tmpl_context.widget = self.new_form
        params = kw

        id_tipoItem = params['tipo_items']
        if str(id_tipoItem) == '-1':

            return dict(value=kw,
                        model=self.model.__name__,
                        campos=[],
                        id_fase=params['id_fase'],
                        tipo_items=id_tipoItem)
        else:
            fm = TipoItemManager()
            tipo = fm.getById(id_tipoItem)
            campos = tipo.campos
            return dict(value=kw,
                        model=self.model.__name__,
                        campos=campos,
                        id_fase=params['id_fase'],
                        tipo_items=id_tipoItem)
Beispiel #17
0
    def post(self,*args, **kw):
        '''New'''
        p = Item()
        pm = ItemManager()
        params = kw
        complejidad = [1,2,3,4,5,6,7,8,9,10]

        if params['tipo_items'] != '-1':
            ti = TipoItemManager()
            tipo= ti.getById(params['tipo_items'])
            campos = tipo.campos
            error, lista = self.verificarCampos(campos, **kw)
            if error:
                return dict(value=kw, model=self.model.__name__,campos = lista,id_fase=params['id_fase'],tipo_items=kw['tipo_items'], comp = complejidad,i =kw['identificador'],o=kw['observacion'], c = int(params['complejidad']), d =kw['descripcion'])
            if pm.existeIdentificador(params['identificador'],int(params['id_fase'])):
                flash(('Error: Ya existe un item con el nombre <<' + params['identificador'] + '>> en esta fase.'), 'Error')
                return dict(value=kw, model=self.model.__name__,campos = lista,id_fase=params['id_fase'],tipo_items=kw['tipo_items'], comp = complejidad,i ="",o=kw['observacion'], c = int(params['complejidad']), d =kw['descripcion'])
            

        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'])
Beispiel #18
0
 def put(self, *args, **kw):
     rm = TipoItemManager()
     params = kw
     existe = rm.verificaExistencia(params['fase'], params['nombre'])
     if existe:
         flash(('Error: Ya existe un tipo de item con el nombre "' + params['nombre'] + '" en esta fase.'), 'Error')
         dir = '/tipoItem/' + args[0] + '/edit'
         raise redirect(dir)
     p = rm.getById(args)
     p.nombre = params['nombre']
     p.id_fase = params['fase']
     rm.actualizar(params['nombre'], params['fase'], args[0])
     raise redirect('/campo')
Beispiel #19
0
    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'])
Beispiel #20
0
 def _do_get_provider_count_and_objs(self, buscado="", **kw):
     pm = TipoItemManager()
     usuarios = pm.buscar(self.buscado)
     return len(usuarios), usuarios   
Beispiel #21
0
 def _do_get_provider_count_and_objs(self, buscado="", **kw):
     pm = TipoItemManager()
     TipoItemes = pm.getByFase(int(session['id_fase']))
     return len(TipoItemes), TipoItemes
Beispiel #22
0
 def s_importar(self, *args, **kw):
     importados = kw['selected_tipos']
     for i in importados:
         TipoItemManager().importar(int(i), int(session['id_fase']))
     raise redirect ('/tipoItem')
Beispiel #23
0
 def importar(self, *args, **kw):
     tipos = TipoItemManager().getNotThisFase(session['id_fase'])
     return dict(tipos=tipos)
Beispiel #24
0
 def post_delete(self, *args, **kw):
     pm = TipoItemManager()
     cm = CampoManager()
     cm.deleteByTipoItem(args)
     pm.deleteById(args)
     raise redirect('./')
Beispiel #25
0
    def put(self, *args, **kw):
        '''Metodo que actualiza los campos en una edicion de item'''     
        params = kw
        pm=ItemManager()
        try:
            item_viejo, navegacion = self.getNavegacionFromIdItem(int(kw['id_item']))
        except:
            flash(('Direccion no valida.'), 'error')
            raise redirect("/index")
        if not(Secure().FiltrarByFase(item_viejo.id_fase, 'modificacion_item')):
            flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES.'), 'error')
            raise redirect("/index")
        
        complejidad = [1,2,3,4,5,6,7,8,9,10]    
        if params['submit']=="cancelar":
            raise redirect ('/item/items', id_fase=item_viejo.id_fase)    
        if item_viejo.id_tipo_item:
            ti = TipoItemManager()

            tipo= ti.getById(item_viejo.id_tipo_item)
            campos = tipo.campos
            error, lista = self.verificarCampos(campos, **kw)
            if error:
                nuevo = self.getNuevo(item_viejo,**kw)
                return dict(id_item=item_viejo.id_item, item=nuevo, campos = lista, id_fase= item_viejo.id_fase, comp=complejidad, navegacion=navegacion)
        item_nuevo = Item()
        
        '''Copiar Campos Genericos'''
        identificador = params['identificador']
        item_nuevo.identificador = identificador
        item_nuevo.observacion = params['observacion']
        item_nuevo.complejidad = params['complejidad']
        item_nuevo.descripcion = params['descripcion']
        item_nuevo.id_linea_base = item_viejo.id_linea_base
        item_viejo.id_linea_base = None
        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
        
        '''cambiar estado'''
        if item_viejo.estado=='inicial':
            item_nuevo.estado = 'inicial'
        else:
            item_nuevo.estado = 'revision'
            
        version = item_nuevo.version
        pm.add(item_nuevo)
        pm.update(item_viejo)
        
        '''Copiar los campos especificos'''
        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(kw['id_item']))
        '''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
        
        '''Copiar Relaciones'''
        transaction.begin()
        item_viejo = pm.getById(int(kw['id_item']))
        item = pm.getByIdentificadorFaseVersion(identificador,id_fase,version) #Item_nuevo
        id_item_nuevo = item.id_item #Id del item nuevo
        rm = RelacionManager()
        relaciones = rm.getByItem(item_viejo.id_item)
        for relacion in relaciones:
            transaction.begin()
            if relacion.id_item1 == item_viejo.id_item:
                item1 = item
                item2 = pm.getById(relacion.id_item2)
            else:
                item1 = pm.getById(relacion.id_item1)
                item2 = item
                
            if item1.actual == 'true' and item2.actual == 'true': #comprobar que sean relaciones validas
                if item1.id_fase == item2.id_fase : #son items de la misma fase
                        rm.add(item1,item2,'padre-hijo') 
                else:
                    rm.add(item1,item2,'antecesor-sucesor')
            transaction.commit()   
            
        '''Marcar para revision Items Relacionados'''
        lbm = LineaBaseManager()
        relaciones = rm.getByItem(id_item_nuevo)
        for relacion in relaciones:
            transaction.begin()
            if relacion.id_item1 == id_item_nuevo:
                item_revision = pm.getById(relacion.id_item2)
            else:
                item_revision = pm.getById(relacion.id_item1)
            item_revision.estado = 'revision'
            if item_revision.id_linea_base != None:
                linea_base = lbm.getById(item_revision.id_linea_base)
                linea_base.estado = 'no valido'
                lbm.update(linea_base)
            transaction.commit() 
            
        transaction.commit()  
        raise redirect('/item/items', id_fase=id_fase)
Beispiel #26
0
    def post(self,*args, **kw):
        '''Metodo que crea un nuevo item'''
        p = Item()
        pm = ItemManager()
        params = kw
        complejidad = [1,2,3,4,5,6,7,8,9,10]
        try:
            fase, navegacion = self.getNavegacionFromIdFase(params['id_fase'])
        except:
            flash(('Direccion no valida.'), 'error')
            raise redirect("/index")
        if not(Secure().FiltrarByFase(fase.id_fase, 'creacion_item')):
            flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES.'), 'error')
            raise redirect("/index")
        if params['submit'] == 'cancelar':
            raise redirect('/item/items',id_fase=fase.id_fase)        
        lista=[]
        if params['tipo_items'] != '-1':
            ti = TipoItemManager()
            tipo= ti.getById(params['tipo_items'])
            campos = tipo.campos
            error, lista = self.verificarCampos(campos, **kw)
            if error:
                return dict(value=kw, model=self.model.__name__,campos = lista,id_fase=params['id_fase'],tipo_items=kw['tipo_items'], comp = complejidad,i =kw['identificador'],o=kw['observacion'], c = int(params['complejidad']), d =kw['descripcion'], navegacion=navegacion)
        if pm.existeIdentificador(params['identificador'],int(params['id_fase'])):
            flash(('Error: Ya existe un item con el nombre <<' + params['identificador'] + '>> en esta fase.'), 'Error')
            return dict(value=kw, model=self.model.__name__,campos = lista,id_fase=params['id_fase'],tipo_items=kw['tipo_items'], comp = complejidad,i ="",o=kw['observacion'], c = int(params['complejidad']), d =kw['descripcion'], navegacion=navegacion)
        

        p.identificador = params['identificador']
        p.observacion = params['observacion']
        p.estado = 'inicial'
        p.complejidad = params['complejidad']
        p.descripcion = params['descripcion']
        p.id_fase = int(kw['id_fase'])
        p.codigo = pm.generar_codigo(int(kw['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=id_item, contador = 1)            
        raise redirect('/item/items',id_fase=params['id_fase'])
Beispiel #27
0
 def put(self, *args, **kw):
     '''update'''     
     params = kw
     pm=ItemManager()
     item_viejo = pm.getById(int(kw['id_item']))
     complejidad = [1,2,3,4,5,6,7,8,9,10]        
     if item_viejo.id_tipo_item != '-1':
         ti = TipoItemManager()
         tipo= ti.getById(item_viejo.id_tipo_item)
         campos = tipo.campos
         error, lista = self.verificarCampos(campos, **kw)
         print "despues del error"
         if error:
             print "Error en los campos"
             nuevo = self.getNuevo(item_viejo,**kw)
             return dict(id_item=item_viejo.id_item, item=nuevo, campos = lista, id_fase= item_viejo.id_fase, comp=complejidad)
     print "Sin error en la actualizacion del item"
     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(kw['id_item']))
     '''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))
     print "antes del raise - put item"
     raise redirect('/item/items?id_fase='+ str(id_fase))
Beispiel #28
0
 def _do_get_provider_count_and_objs(self, buscado="", **kw):
     pm = TipoItemManager()
     TipoItemes = pm.buscar(int(session["id_fase"]), self.buscado)
     return len(TipoItemes), TipoItemes