コード例 #1
0
ファイル: lineabase.py プロジェクト: jorgeramirez/LPM
    def _do_get_provider_count_and_objs(self, id_fase=None, id_lb=None,
                                        **kw):
        """
        Recupera las lineas bases de una fase, o aquellas para las 
        que tenemos algún permiso.
        """
        if id_lb:
            lb = LB.por_id(id_lb)
            return 1, [lb]
        
        
        count, lista = super(LineaBaseTableFiller, self).\
                            _do_get_provider_count_and_objs(**kw)
        filtrados = []                    
        if id_fase:
            id_fase = int(id_fase)
            ap = AlgunPermiso(tipo='Fase', id_fase=id_fase).is_met(request.environ)
            if ap:
                lbs = Fase.por_id(id_fase).lineas_bases()
                return len(lbs), lbs
        
        for lb in lista:

            if AlgunPermiso(tipo=u'Fase').is_met(request.environ):
                filtrados.append(lb)
        
        return len(filtrados), filtrados
コード例 #2
0
 def examinar(self, *args, **kw):
     """ 
     Muestra los elementos que forman parte de la LB
     """
     id_lb = int(args[0])
     lb = LB.por_id(id_lb)
     titulo = u"Ítems de Línea Base: %s" % lb.codigo
     iplbs = item_lb_table_filler.get_value(lb=lb, **kw)
     tmpl_context.widget = item_lb_table
     atras = "../../"
     return dict(lista_elementos=iplbs, 
                 page=titulo,
                 titulo=titulo, 
                 modelo="ItemsPorLB",
                 atras=atras
                 )
コード例 #3
0
 def get_all(self, *args, **kw):
     """ 
     Retorna todos los registros
     Retorna una página HTML si no se especifica JSON
     """
     id_lb = UrlParser.parse_id(request.url, "lbs")
     lb = LB.por_id(id_lb)
     titulo = self.title % lb.codigo
     tmpl_context.widget = self.table
     historial = self.table_filler.get_value(lb=lb, **kw)
     return dict(lista_elementos=historial, 
                 page=titulo,
                 titulo=titulo,
                 modelo=self.model.__name__, 
                 columnas=self.columnas,
                 opciones=self.opciones,
                 comboboxes=self.comboboxes,
                 url_action=self.tmp_action,
                 atras="../../"
                 )
コード例 #4
0
 def post_buscar(self, *args, **kw):
     """
     Controlador que recibe los parámetros de búsqueda para 
     devolver el resultado esperado.
     """
     id_lb = UrlParser.parse_id(request.url, "lbs")
     lb = LB.por_id(id_lb)
     titulo = self.title % lb.codigo
     tmpl_context.widget = self.table
     buscar_table_filler = HistorialLBTableFiller(DBSession)
     buscar_table_filler.filtros = kw
     historial = buscar_table_filler.get_value(lb=lb, **kw)
     return dict(lista_elementos=historial, 
                 page=titulo,
                 titulo=titulo, 
                 modelo=self.model.__name__,
                 columnas=self.columnas,
                 comboboxes=self.comboboxes,
                 url_action='../',
                 opciones=self.opciones,
                 atras='../'
                 )
コード例 #5
0
ファイル: lineabase.py プロジェクト: jorgeramirez/LPM
 def abrir(self, *args, **kw):
     """
     Abre una LB
     """
     lb = LB.por_id(int(args[0]))
     user = Usuario.by_user_name(request.credentials["repoze.what.userid"])
     op = u"Desbloqueo"
     for iplb in lb.items:
         p_item = iplb.propiedad_item
         if p_item.estado == u"Bloqueado":
             p_item.estado = u"Aprobado"
         elif p_item.estado == u"Revisión-Bloq":
             p_item.estado = u"Revisión-Desbloq"
         HistorialItems.registrar(user, p_item, op)
         
     HistorialLB.registrar(user, lb, 0)# u"Apertura"
     id_fase = UrlParser.parse_id(request.url, "fases")
     url = '../'
     fase = Fase.por_id(id_fase)
     lb.estado = u"Abierta"
     fase.cambiar_estado()
     flash("Se ha abierto la LB")
     redirect(url)
コード例 #6
0
ファイル: lineabase.py プロジェクト: jorgeramirez/LPM
    def post_cerrar(self, *args, **kw):
        """
        Cierra una LB. En caso de no poder cerrar, despliega la página
        de cerrar.
        """
        id = int(args[0])
        lb = LB.por_id(id)
        
        habilitados = []
        inhabilitados = []
        for ilb in lb.items:
            p_item = ilb.propiedad_item
            item = Item.por_id(p_item.id_item_actual)
            if (item.id_propiedad_item == p_item.id_propiedad_item and
                p_item.estado == u"Aprobado"):#no cambio o se aprobo
                habilitados.append(p_item)
            else:
                inhabilitados.append(p_item)
                
        user = Usuario.by_user_name(request.credentials["repoze.what.userid"])
        if (inhabilitados == []):
            lb.estado = u"Cerrada"

            #registrar en el historial
            for p_item in habilitados:
                p_item.estado = u"Bloqueado"
                HistorialItems.registrar(user, p_item, u"Bloqueo")
            HistorialLB.registrar(user, lb, 1)# u"Cierre"
            id_fase = UrlParser.parse_id(request.url, "fases")
            fase = Fase.por_id(id_fase)
            fase.cambiar_estado()

            flash("Linea base cerrada correctamente")
            redirect('../')
        
        #Romper la LB.
        lb.estado = u"Rota"
        HistorialLB.registrar(user, lb, 2)# u"Ruptura"
        
        page = u"Generar LB parcial a partir de : {codigo}".format(codigo=lb.codigo)
        tmpl_context.tabla_items_habilitados = ItemGenerarTable(DBSession)
        tmpl_context.tabla_items = ItemInhabilitadosTable(DBSession)
        inhabilitados = ItemInhabilitadosTableFiller(DBSession).get_value(items=inhabilitados)
        
        lista = []
        for i in habilitados:
            lista.append(Item.por_id(i.id_item_actual))
        habilitados = item_generar_table_filler.get_value(items=lista, **kw)
        
        atras = "../"
        
        existen_habilitados = False
        if habilitados:
            existen_habilitados = True
        
        return dict(page=page, 
                    id=id, 
                    atras=atras,
                    habilitados=habilitados,
                    inhabilitados=inhabilitados,
                    existen_habilitados=existen_habilitados
                    )