Beispiel #1
0
    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
Beispiel #2
0
    def __call__(self, environ, start_response):
        """Invoke the Controller"""
        # TGController.__call__ dispatches to the Controller method
        # the request is routed to. This routing information is
        # available in environ['pylons.routes_dict']

        request.identity = request.environ.get('repoze.who.identity')
        # para acceder mas rapido a este componente
        request.credentials = request.environ.get('repoze.what.credentials')
        request.puede_gestion_conf = False
        request.puede_desarrollo = False

        if request.credentials:
            username = request.credentials["repoze.what.userid"]
            usuario = model.Usuario.by_user_name(username)
            request.puede_proyecto = False
            request.puede_rol = False
            request.puede_fase = False
            request.puede_ti = False
            request.puede_busqueda = False

            if AlgunPermiso(tipo="Rol").is_met(request.environ):
                request.puede_rol = True

            perms = request.credentials["permissions"]
            if perms.count("crear proyecto") or \
               perms.count("modificar proyecto") or \
               perms.count("eliminar proyecto"):
                request.puede_proyecto = True

            if perms.count("modificar fase"):
                request.puede_fase = True

            if perms.count("crear tipo item") or \
               perms.count("redefinir tipo item"):
                request.puede_ti = True

            if AlgunPermiso(tipo="Usuario").is_met(request.environ):
                request.puede_busqueda = True

            if AlgunPermiso(tipo="Tipo").is_met(request.environ):
                request.puede_desarrollo = True

            if has_any_permission(u"crear lb", u"abrir-cerrar lb",
                                  u"consultar lb").is_met(request.environ):
                request.puede_gestion_conf = True

        tmpl_context.identity = request.identity
        #        session['atras'] = session['actual']
        #        session['actual'] = session['adelante']

        session.save()
        return TGController.__call__(self, environ, start_response)
    def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw):
        """
        Se muestra la lista de usuarios que no tienen algun rol de 
        proyecto para el proyecto en cuestion.
        """
        count, lista = super(NoMiembrosProyectoTableFiller,
                             self)._do_get_provider_count_and_objs(**kw)

        filtrados = []
        app = AlgunPermiso(tipo="Proyecto", id_proyecto=id_proyecto)
        for u in lista:
            app.id_usuario = u.id_usuario
            if not app.is_met(request.environ):
                filtrados.append(u)
        return len(filtrados), filtrados
 def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw):
     """
     Se muestra la lista de usuarios que no tienen algun rol de 
     proyecto para el proyecto en cuestion.
     """
     count, lista = super(NoMiembrosProyectoTableFiller,
                      self)._do_get_provider_count_and_objs(**kw)
     
     filtrados = []
     app = AlgunPermiso(tipo="Proyecto", id_proyecto=id_proyecto)
     for u in lista:
         app.id_usuario = u.id_usuario
         if not app.is_met(request.environ):
             filtrados.append(u)
     return len(filtrados), filtrados
Beispiel #5
0
 def _do_get_provider_count_and_objs(self, id_fase=None, **kw):
     """
     Se muestran a los usuarios que no tienen por lo menos un rol de
     tipo fase para la fase en cuestión.
     """
     count, lista = super(NoMiembrosFaseTableFiller,
                      self)._do_get_provider_count_and_objs(**kw)
     
     filtrados = []
     fase = Fase.por_id(id_fase)
     apf = AlgunPermiso(tipo="Fase", id_fase=fase.id_fase)
     for u in lista:
         apf.id_usuario = u.id_usuario
         if not apf.is_met(request.environ):
             filtrados.append(u)
     return len(filtrados), filtrados
Beispiel #6
0
    def _do_get_provider_count_and_objs(self, id_version=None, **kw):
        """
        Recupera las relaciones de la versión del ítem indicado.
        """
        count, lista = super(RelacionTableFiller, self).\
                            _do_get_provider_count_and_objs(**kw)

        tipo = "a-s"
        if (UrlParser.parse_nombre(request.url, "relaciones_ph")):
            tipo = "p-h"

        filtrados = []
        if id_version:
            p_item = PropiedadItem.por_id(id_version)
            item = Item.por_id(p_item.id_item_actual)
            #ver este permiso
            ap = AlgunPermiso(tipo='Fase',
                              id_fase=item.id_fase).is_met(request.environ)
            if ap:

                for rpi in p_item.relaciones:
                    if (rpi.relacion in lista) and \
                        rpi.relacion.tipo == Relacion.tipo_relaciones[tipo]:
                        filtrados.append(rpi.relacion)

        return len(filtrados), filtrados
Beispiel #7
0
    def _do_get_provider_count_and_objs(self, id_fase=None, **kw):
        """
        Se muestran a los usuarios que no tienen por lo menos un rol de
        tipo fase para la fase en cuestión.
        """
        count, lista = super(NoMiembrosFaseTableFiller,
                             self)._do_get_provider_count_and_objs(**kw)

        filtrados = []
        fase = Fase.por_id(id_fase)
        apf = AlgunPermiso(tipo="Fase", id_fase=fase.id_fase)
        for u in lista:
            apf.id_usuario = u.id_usuario
            if not apf.is_met(request.environ):
                filtrados.append(u)
        return len(filtrados), filtrados
 def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw):
     """
     Se muestran los usuarios que no tienen por lo menos un rol de tipo
     Tipo Item para el tipo de item en cuestión.
     """
     count, lista = super(NoMiembrosTipoTableFiller,
                      self)._do_get_provider_count_and_objs(**kw)
     
     filtrados = []
     tipo = TipoItem.por_id(id_tipo_item)
     apti = AlgunPermiso(tipo="Tipo", id_tipo_item=tipo.id_tipo_item)
     for u in lista:
         apti.id_usuario = u.id_usuario
         if not apti.is_met(request.environ):
             filtrados.append(u)
     return len(filtrados), filtrados
Beispiel #9
0
    def _do_get_provider_count_and_objs(self,
                                        id_proyecto=None,
                                        id_fase=None,
                                        **kw):
        """
        Retorna las fases del proyecto en cuestión
        """
        if id_fase:
            fase = Fase.por_id(id_fase)
            return 1, [fase]

        count, lista = super(FaseTableFiller, self).\
                            _do_get_provider_count_and_objs(**kw)
        filtrados = []
        if id_proyecto:
            id_proyecto = int(id_proyecto)
            #ap = AlgunPermiso(tipo='Fase', id_proyecto=id_proyecto).is_met(request.environ)

            for f in lista:
                if f.id_proyecto == id_proyecto:
                    if AlgunPermiso(tipo='Fase',
                                    id_fase=f.id_fase).is_met(request.environ):
                        filtrados.append(f)

        return len(filtrados), filtrados
Beispiel #10
0
    def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw):
        """
        Se muestra la lista de atributos del tipo de ítem 
        si se tiene un permiso necesario.
        """
        if AlgunPermiso(tipo="Tipo",
                        id_tipo_item=id_tipo_item).is_met(request.environ):
            count, lista = super(AtributosPorTipoItemTableFiller,
                                 self)._do_get_provider_count_and_objs(**kw)

            id_tipo = UrlParser.parse_id(request.url, "tipositems")
            ti = TipoItem.por_id(id_tipo)
            pks = []
            actual = ti
            while actual:
                for attr in actual.atributos:
                    pks.append(attr.id_atributos_por_tipo_item)
                actual = TipoItem.por_id(actual.id_padre)

            filtrados = []
            for attr in lista:
                if attr.id_atributos_por_tipo_item in pks:
                    filtrados.append(attr)
            return len(filtrados), filtrados

            #query = DBSession.query(AtributosPorTipoItem) \
            #                 .filter(AtributosPorTipoItem \
            #                         .id_atributos_por_tipo_item.in_(pks))
            #return query.count(), query.all()

        return 0, []
Beispiel #11
0
    def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw):
        """
        Se muestran los usuarios que no tienen por lo menos un rol de tipo
        Tipo Item para el tipo de item en cuestión.
        """
        count, lista = super(NoMiembrosTipoTableFiller,
                             self)._do_get_provider_count_and_objs(**kw)

        filtrados = []
        tipo = TipoItem.por_id(id_tipo_item)
        apti = AlgunPermiso(tipo="Tipo", id_tipo_item=tipo.id_tipo_item)
        for u in lista:
            apti.id_usuario = u.id_usuario
            if not apti.is_met(request.environ):
                filtrados.append(u)
        return len(filtrados), filtrados
Beispiel #12
0
    def _do_get_provider_count_and_objs(self,
                                        id_fase=None,
                                        id_item=None,
                                        **kw):
        """
        Recupera los ítems para los cuales tenemos algún permiso.
        Si el usuario se encuentra en una fase, retorna solo
        los ítems que pertenecen a dicha fase.
        """
        if id_item:
            item = Item.por_id(id_item)
            return 1, [item]

        count, lista = super(ItemTableFiller, self).\
                            _do_get_provider_count_and_objs(**kw)
        filtrados = []
        '''                   
        if id_fase:
            id_fase = int(id_fase)
        '''
        for it in lista:
            if (it.id_fase == id_fase and \
                AlgunPermiso(tipo= "Tipo", id_tipo_item=it.id_tipo_item).is_met(request.environ)):
                filtrados.append(it)

        return len(filtrados), filtrados
        '''
Beispiel #13
0
    def _do_get_provider_count_and_objs(self, id_fase=None, **kw):
        """
        Se muestra la lista de roles para este proyecto.
        """
        filtrados = []
        if AlgunPermiso(tipo="Fase", id_fase=id_fase).is_met(request.environ):
            count, lista = super(RolesFaseTableFiller,
                                 self)._do_get_provider_count_and_objs(**kw)

            for rol in lista:
                if rol.tipo == u"Fase" and rol.id_fase == id_fase:
                    filtrados.append(rol)

        return len(filtrados), filtrados
Beispiel #14
0
 def _do_get_provider_count_and_objs(self, **kw):
     """
     Se muestra la lista de rol si se tiene un permiso 
     necesario. Caso contrario le muestra sus roles.
     """
     if AlgunPermiso(tipo="Sistema").is_met(request.environ):
         count, lista = super(RolTableFiller,
                              self)._do_get_provider_count_and_objs(**kw)
         filtrados = []
         for rol in lista:
             if rol.tipo == u"Sistema":
                 filtrados.append(rol)
         return len(filtrados), filtrados
     return 0, []
Beispiel #15
0
 def _do_get_provider_count_and_objs(self, **kw):
     """
     Retorna la Lista de los proyectos en los cuales el usuario
     es miembro
     """
         
     count, lista = super(ProyectosDesarrolloTableFiller, self).\
                         _do_get_provider_count_and_objs(**kw)
     filtrados = []                    
     for p in lista:
         if (AlgunPermiso(tipo= "Tipo", id_proyecto=p.id_proyecto).is_met(request.environ) and\
             p.estado == u"Iniciado"):
             filtrados.append(p)
         
     return len(filtrados), filtrados         
Beispiel #16
0
    def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw):
        """
        Se muestra la lista de roles para este tipo de ítem.
        """
        filtrados = []
        if AlgunPermiso(tipo="Tipo",
                        id_tipo_item=id_tipo_item).is_met(request.environ):
            count, lista = super(RolesTipoTableFiller,
                                 self)._do_get_provider_count_and_objs(**kw)

            for rol in lista:
                if rol.tipo.find(
                        "Tipo") >= 0 and rol.id_tipo_item == id_tipo_item:
                    filtrados.append(rol)

        return len(filtrados), filtrados
Beispiel #17
0
 def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw):
     """
     Retorna la Lista de los proyectos en los cuales el usuario
     es miembro
     """
     if id_proyecto:
         proy  = Proyecto.por_id(id_proyecto)
         return 1, [proy]
         
     count, lista = super(ProyectosFaseTableFiller, self).\
                         _do_get_provider_count_and_objs(**kw)
     filtrados = []                    
     for p in lista:
         if AlgunPermiso(tipo="Fase", 
                         id_proyecto=p.id_proyecto).is_met(request.environ):
             filtrados.append(p)
         
     return len(filtrados), filtrados         
Beispiel #18
0
    def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw):
        """
        Retorna las fases del proyecto en cuestión
        """

        count, lista = super(FaseDesarrolloTableFiller, self).\
                            _do_get_provider_count_and_objs(**kw)
        filtrados = []                    
        if id_proyecto:
            id_proyecto = int(id_proyecto)
            
            #se listan las fases en la que se es miembro
            for f in lista:
                if (f.id_proyecto == id_proyecto and \
                    AlgunPermiso(tipo= "Tipo", id_fase=f.id_fase).is_met(request.environ)):
                    filtrados.append(f)
                    
        return len(filtrados), filtrados
Beispiel #19
0
    def _do_get_provider_count_and_objs(self, id_version=None, **kw):
        """
        Recupera los  atributos de la versión del ítem indicado.
        """
        count, lista = super(AtributoItemTableFiller, self).\
                            _do_get_provider_count_and_objs(**kw)
        filtrados = []
        if id_version:
            p_item = PropiedadItem.por_id(id_version)
            item = Item.por_id(p_item.id_item_actual)
            ap = AlgunPermiso(tipo='Fase',
                              id_fase=item.id_fase).is_met(request.environ)
            if ap:
                for attr_por_item in p_item.atributos:
                    if attr_por_item in lista:
                        filtrados.append(attr_por_item)

        return len(filtrados), filtrados
Beispiel #20
0
 def _do_get_provider_count_and_objs(self, id_fase=None, id_tipo=None, **kw):
     """
     Se muestra la lista de tipos de item para la fase en cuestión
     """
     if id_tipo:
         ti = TipoItem.por_id(id_tipo)
         return 1, [ti]
         
     count, lista = super(TipoItemTableFiller, self).\
                         _do_get_provider_count_and_objs(**kw)
     filtrados = []                    
     
     if id_fase:
         id_fase = int(id_fase)
         for t in lista:
             if t.id_fase == id_fase:
                 if AlgunPermiso(tipo='Tipo', 
                    id_tipo_item=t.id_tipo_item).is_met(request.environ):
                     filtrados.append(t)
             
     return len(filtrados), filtrados