示例#1
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,
        )
示例#2
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
        )
示例#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 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)
示例#5
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)