Esempio n. 1
0
    def put_fase(self, id_fase, nombre_fase, id_tipo_fase, tipos_items,
                    descripcion, asmSelect0,  **kw):

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

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

        fase =Fase.get_fase_by_id(id_fase)
        nombres=Fase.get_nombres_by_id(fase.proyecto)
        nombres.remove(fase.nombre_fase)
        
        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]

        if nombre_fase not in nombres:
            fase.nombre_fase = nombre_fase
            fase.id_tipo_fase=id_tipo_fase
            fase.estado = fase.estado
            fase.linea_base = fase.linea_base
            fase.descripcion = descripcion
            fase.tipos_items=tipos_items

            DBSession.flush()
            flash("Fase modificada!")
            redirect('/fase/fase')
    
        else:
            nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
            nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

            id_tipo_fase=fase.id_tipo_fase
            tipos_fases = Tipo_Fase.get_tipo_fases()
            tipos = fase.tipos_items

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

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

            values = dict(id_fase=id_fase, 
                            nombre_fase=nombre_fase, 
                            descripcion=descripcion,
                            )
            flash("El nombre de fase solicitado ya existe!")

            return dict(pagina="editar_fase",values=values,
                                tipos_fases=tipos_fases,tipos_items=tipos_items,
                                tipos_items2=tipos_items2,lista=lista, 
                                id_tipo_fase=id_tipo_fase,nom_fase=nom_fase,
                                nom_proyecto= nom_proyecto )
Esempio n. 2
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)