示例#1
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")
示例#2
0
    def post_tipo_item(self, nombre_tipo_item, codigo_tipo_item, descripcion, campo, valor):
        tipo_item = Tipo_Item(
            nombre_tipo_item=nombre_tipo_item, codigo_tipo_item=codigo_tipo_item, descripcion=descripcion
        )

        DBSession.add(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
        id_tipo = Tipo_Item.get_ultimo_id()
        for c in campo:
            if len(c) > 0:
                camp = Tipo_Campos(id_tipo_item=id_tipo, nombre_campo=c, valor_campo=valor[indice])
                DBSession.add(camp)
            indice += 1

        flash("Tipo Item Agregado!")
        redirect("/tipo_item/tipo_item")
示例#3
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")
示例#4
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,
        )
示例#5
0
    def editar_tipo_fase(self,id_tipo_fase,*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_fase is not None:
            id_tipo_fase=int(id_tipo_fase)

        tipo_fase = Tipo_Fase.get_tipo_fase_by_id(id_tipo_fase)
        tipos_items = Tipo_Item.get_tipos_items()
        tipos = tipo_fase.tipos_items
        tipos_items2 = []

        for tip in tipos:
            tipos_items2.append(tip.id_tipo_item)

        if request.method != 'PUT':  

            values = dict(id_tipo_fase=tipo_fase.id_tipo_fase, 
							nombre_tipo_fase=tipo_fase.nombre_tipo_fase, 
							descripcion=tipo_fase.descripcion,
							)
        
        return dict(pagina="editar_tipo_fase",values=values,
                        tipos_items=tipos_items, nom_proyecto=nom_proyecto,
                         tipos_items2=tipos_items2,nom_fase=nom_fase)
示例#6
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
        )
示例#7
0
    def editar_fase(self,id_fase,*args, **kw):
        """
        Permite editar una fase. Es posible la modificación del nombre de la fase y de su descripción.
        """
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

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

        tipos_fases = Tipo_Fase.get_tipo_fases()
        fase = Fase.get_fase_by_id(id_fase)
        tipos_items = Tipo_Item.get_tipos_items()
        id_tipo_fase=int(fase.id_tipo_fase)

        lista=[]
        lista.append(id_tipo_fase)
        tipos = fase.tipos_items

        tipos_items2 = []
        for tip in tipos:
            tipos_items2.append(tip.id_tipo_item)

        if request.method != 'PUT':  
            values = dict(id_fase=fase.id_fase, 
                            nombre_fase=fase.nombre_fase, 
                            descripcion=fase.descripcion,
                            )

        return dict(pagina="editar_fase",values=values,tipos_fases=tipos_fases,
                        tipos_items=tipos_items,tipos_items2=tipos_items2,
                        lista=lista,nom_fase=nom_fase,
                        nom_proyecto= nom_proyecto )
示例#8
0
    def agregar_tipo_fase(self,*args, **kw):
        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_tipos_items()

        return dict(pagina='agregar_tipo_fase',nom_proyecto=nom_proyecto,       
                            values=kw,tipos_items = tipos_items,
                            nom_fase=nom_fase)
示例#9
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,
        )
示例#10
0
    def agregar_fase(self, *args, **kw):
        """
        Agrega una fase al proyecto actual.
        """
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

        tipos_fases = Tipo_Fase.get_tipo_fases()
        tipos_items = Tipo_Item.get_tipos_items()

        return dict(pagina="agregar_fase",values=kw, tipos_fases=tipos_fases,
                        tipos_items=tipos_items,nom_proyecto=nom_proyecto
                        ,nom_fase=nom_fase)
示例#11
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,
        )
示例#12
0
    def eliminar_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)

        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="eliminar_tipo_item", values=values, nom_proyecto=nom_proyecto, nom_fase=nom_fase)
示例#13
0
    def post_fase(self, nombre_fase, id_tipo_fase, tipos_items, descripcion,
                    asmSelect0):
        """
        Permite agregar una nueva fase al proyecto.
        """
        proyecto=int(Variables.get_valor_by_nombre("proyecto_actual"))
        nombres=Fase.get_nombres_by_id(proyecto)

        if not isinstance(nombres, list):
            nombres = [nombres]

        if nombre_fase not in nombres:

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

            if tipos_items is not None:
                if not isinstance(tipos_items, list):
                    tipos_items = [tipos_items]
            tipos_items = [DBSession.query(Tipo_Item).get(tipo_item) for tipo_item 
                                                    in tipos_items]

            fase = Fase (nombre_fase=nombre_fase, id_tipo_fase=id_tipo_fase, 
                        estado="nuevo", linea_base="abierta", 
                        descripcion=descripcion,tipos_items=tipos_items,
                        proyecto=0,orden=0)
      
            DBSession.add(fase)
            DBSession.flush()
            flash("Fase agregada!")  
            redirect('/fase/fase')

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

            tipos_fases = Tipo_Fase.get_tipo_fases()
            tipos_items = Tipo_Item.get_tipos_items()

            values = dict(nombre_fase=nombre_fase, 
                            descripcion=descripcion,
                            )
            flash("Nombre de Fase es repetido!")
            return dict(pagina="agregar_fase",values=values, tipos_fases=tipos_fases,
                            tipos_items=tipos_items,nom_proyecto=nom_proyecto
                            ,nom_fase=nom_fase)
示例#14
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)