Example #1
0
    def put(self, id_tipo_item, nombre_tipo_item, codigo_tipo_item, descripcion, campo, valor, **kw):

        if id_tipo_item is not None:
            id_tipo_item = int(id_tipo_item)

        tipo_item = Tipo_Item.get_tipo_item_by_id(id_tipo_item)
        campos2 = Tipo_Campos.get_campos_by_tipo_item(tipo_item.id_tipo_item)

        for cam in campos2:
            Tipo_Campos.borrar_by_id(cam.id_tipo_campos)
            DBSession.flush()

        tipo_item.nombre_tipo_item = nombre_tipo_item
        tipo_item.descripcion = descripcion
        tipo_item.codigo_tipo_item = codigo_tipo_item

        if campo is not None:
            if not isinstance(campo, list):
                campo = [campo]

        if valor is not None:
            if not isinstance(valor, list):
                valor = [valor]

        indice = 0

        for c in campo:
            if len(c) > 0:
                camp = Tipo_Campos(id_tipo_item=id_tipo_item, nombre_campo=c, valor_campo=valor[indice])
                DBSession.add(camp)
            indice += 1

        DBSession.flush()
        flash("Tipo de Item modificada!")
        redirect("/tipo_item/tipo_item")
Example #2
0
    def post_delete(self, id_tipo_item, nombre_tipo_item, codigo_tipo_item, descripcion, **kw):

        if id_tipo_item is not None:
            id_tipo_item = int(id_tipo_item)

        campos2 = Tipo_Campos.get_campos_by_tipo_item(id_tipo_item)

        for cam in campos2:
            Tipo_Campos.borrar_by_id(cam.id_tipo_campos)
            DBSession.flush()

        Tipo_Item.borrar_by_id(id_tipo_item)
        DBSession.flush()
        flash("Tipo de Item eliminado!")
        redirect("/tipo_item/tipo_item")
Example #3
0
    def clonar_tipo_item(self, id_tipo_item, *args, **kw):
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        if id_tipo_item is not None:
            id_tipo_item = int(id_tipo_item)

        tipo_item = Tipo_Item.get_tipo_item_by_id(id_tipo_item)
        valores_permitidos = ["alfanumerico", "numerico", "fecha"]
        campos = Tipo_Campos.get_campos_by_tipo_item(tipo_item.id_tipo_item)

        if request.method != "PUT":
            values = dict(
                id_tipo_item=tipo_item.id_tipo_item,
                nombre_tipo_item=tipo_item.nombre_tipo_item,
                codigo_tipo_item=tipo_item.codigo_tipo_item,
                descripcion=tipo_item.descripcion,
            )

        return dict(
            pagina="clonar_tipo_item",
            values=values,
            campos=campos,
            nom_proyecto=nom_proyecto,
            nom_fase=nom_fase,
            valores_permitidos=valores_permitidos,
        )
Example #4
0
    def ver_campos(self, id_tipo_item):
        """Lista  
        """
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        if id_tipo_item is not None:
            id_tipo_item = int(id_tipo_item)

        tipo_item = Tipo_Item.get_tipo_item_by_id(id_tipo_item)

        values = dict(
            id_tipo_item=tipo_item.id_tipo_item,
            nombre_tipo_item=tipo_item.nombre_tipo_item,
            descripcion=tipo_item.descripcion,
        )

        camp = Tipo_Campos.get_campos_by_tipo_item(tipo_item.id_tipo_item)
        campos = []
        for c in camp:
            campos.append(c)

        return dict(
            pagina="listar_mis_campos", campos=campos, nom_proyecto=nom_proyecto, nom_fase=nom_fase, values=values
        )
Example #5
0
 def get_nombres_campos_by_tipo(self, id_tipo):
     """
     Obtiene la lista de todos los tipos de item
     registrados en el sistema
     """
     lista=Tipo_Campos.get_nombres_by_tipo_item(id_tipo)
     return lista
Example #6
0
    def listar_tipo_item(self):
        """Lista tipos de items 
        """
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        tipos_items = Tipo_Item.get_tipo_item()
        tipos_campos = Tipo_Campos.get_tipo_campos()

        return dict(
            pagina="listar_tipo_item",
            tipos_items=tipos_items,
            tipos_campos=tipos_campos,
            nom_proyecto=nom_proyecto,
            nom_fase=nom_fase,
        )
Example #7
0
    def tipo_item(self, start=0, end=5, indice=None, texto=""):
        """
           Menu para Tipos de Item
        """
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        paginado = 5
        if start <> 0:
            end = int(start.split("=")[1])  # obtiene el fin de pagina
            start = int(start.split("&")[0])  # obtiene el inicio de pagina
        # print start,end

        pagina_actual = ((start % end) / paginado) + 1
        if ((start % end) % paginado) <> 0:
            pagina_actual = pagina_actual + 1

        tipos_campos = Tipo_Campos.get_tipo_campos()

        if indice <> None and texto <> "":
            tipos_items = Tipo_Item.get_tipos_items_por_filtro(indice, texto)
            total = len(tipos_items)
        else:
            tipos_items = Tipo_Item.get_tipos_items_por_pagina(start, end)
            total = len(Tipo_Item.get_tipos_items())

        lista = ["nombre", "descripcion"]

        return dict(
            pagina="tipo_item",
            tipos_items=tipos_items,
            tipos_campos=tipos_campos,
            nom_proyecto=nom_proyecto,
            nom_fase=nom_fase,
            inicio=start,
            fin=end,
            paginado=paginado,
            pagina_actual=pagina_actual,
            total=total,
            param="/tipo_item/tipo_item",
            lista=lista,
        )
Example #8
0
    def post_item(self, nombre_item, complejidad, adjunto, id_tipo_item,
                    asmSelect0,padres=None):

        items= Item.get_nombres_items()

        if nombre_item not in items:
        
            if id_tipo_item is not None:
                id_tipo_item = int(id_tipo_item)

            if complejidad is not None:
                complejidad=int(complejidad)

            if adjunto is not None:
                if not isinstance(adjunto, list):
                    adjunto = [adjunto]

            if padres is not None:
                if not isinstance(padres, list):
                    padres = [padres]
                padres = [DBSession.query(Item).get(padre) for padre
                                         in padres]

#----------------------------------------

            tipo_item =Tipo_Item.get_tipo_item_by_id(id_tipo_item)
            pre_codigo=tipo_item.codigo_tipo_item

            proy_act=int (Variables.get_valor_by_nombre("proyecto_actual"))
            fas_act=int (Variables.get_valor_by_nombre("fase_actual"))
            fase=Fase.get_fase_by_id(fas_act)

            codigo_item=Item.crear_codigo(id_tipo_item,
                                            pre_codigo,proy_act,fas_act)

            item = Item (nombre_item=nombre_item, codigo_item=codigo_item,
                            id_tipo_item=id_tipo_item, 
	                        complejidad=complejidad, estado = "nuevo", 
                            fase=fas_act,proyecto=proy_act,orden=fase.orden,
	                        creado_por=Variables.get_valor_by_nombre("usuario_actual"),
	                        fecha_creacion = time.ctime(), version =1 ,
                            estado_oculto="Activo",lb_parcial=0,lb_general=0
	                        )

            DBSession.add(item)
            DBSession.flush()

#----------------------------------------

            for padre in padres:
                if padre.nombre_item == "master":
                    padres.remove(padre)
           
            mayor =int(Item.get_ultimo_id())
        
            relacion = Relaciones (id_item_hijo=mayor,padres=padres)

#----------------------------------------
            id_item2=Item.get_ultimo_id()        
            tipos_campos=Tipo_Campos.get_campos_by_tipo_item(id_tipo_item)

            for tipo in tipos_campos:
                camp =Campos(id_item=id_item2,
                             nombre_campo=tipo.nombre_campo,
                             tipo_campo= tipo.valor_campo)
                DBSession.add(camp)
            DBSession.flush()


#----------------------------------------

            if adjunto is not None:
                for adj in adjunto:
                    if len(str(adj))==0:
                        break
                    if len(adj.filename)==0:
                        break

                    data = adj.file.read()
                    encode=base64.b64encode(data)
                    var=binascii.a2b_base64(encode)
                    adj = Adjunto (id_item=mayor, archivo=var,
                                nombre_archivo=adj.filename, version =item.version ,
                                    estado_oculto=item.estado_oculto)

                    DBSession.add(adj)
                    DBSession.flush() 

            flash("Item Agregado!")  
            redirect('/item/item')

        else:

            nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")
            nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")

            id_fase=int(Variables.get_valor_by_nombre("fase_actual"))
            padres=Item.get_item_activados()                                        #cambiar esta funcion y solo traer lo que no forman ciclos
            fase = Fase.get_fase_by_id(id_fase)	
            tipos_items=fase.tipos_items

            values = dict(nombre_item=nombre_item,
						id_tipo_item=id_tipo_item, 
						complejidad=complejidad,
						)

            flash("Nombre de Item ya existente!")
            return dict(pagina="agregar_item",values=values,
                        tipos_items=tipos_items,nom_proyecto=nom_proyecto,
                        nom_fase=nom_fase,padres=padres)