Пример #1
0
    def getItens(self,):
        qtd = 20
        if self.context.getQtdMembers():
            qtd = self.context.getQtdMembers()

        dados_users = FuncDetails.get_AllFuncUsernameList(sorted_by=por_admicao, reverse=True)[:qtd]
        return dados_users
Пример #2
0
    def list_files(self, subject, keywords, structures, theme, portal_type, fields=None, list_files=[], path=None):
        p_membership = getToolByName(self.context, 'portal_membership')
        current_user = p_membership.getAuthenticatedMember()
        current_username = current_user.getUserName()
        if 'list_files[]' in self.request.keys() or 'list_files' in self.request.keys():
            values = self.request.get('list_files[]', self.request.get('list_files'))
            if values:
                try:
                    if isinstance(values, str):
                        values = eval(values)
                except (SyntaxError, NameError):
                    values = [values]
                
                if 'Pessoas' in portal_type:
                    #Retorna a lista de usernames para a template trabalhar
                    return values
                else:
                    try:
                        objs = [uuidToObject(uuid) for uuid in values]
                    except (SyntaxError, NameError):
                        objs = [uuidToObject(values)]
                    
                    return self.geraDicForFields(objs, fields)
            else:
                return []
        else:
            #TODO: Solucao temporaria, fazer funcionar o decorator

            #Adciono o usuario logado a chave do redis, pois cada usuario pode ter privilégios diferentes de ver o conteudo
            key = hashlib.md5('%s:%s:%s:%s:%s:%s:%s:%s' %(subject,keywords,structures,theme,portal_type,fields,path,current_username)).hexdigest()
            key = 'Biblioteca:list_files::%s' % key
            cached_data = get_redis_cache(key)
            if 'Pessoas' in portal_type:
                return FuncDetails.get_AllFuncUsernameList(self.Convert_utf8(subject))
            elif not cached_data:
                itens = self.busca_catalog(subject, keywords, structures, theme, portal_type, path, current_user)
                itens_dict = self.geraDicForFields(itens, fields)
                set_redis_cache(key,'Biblioteca:list_files:keys',itens_dict,600)
                return itens_dict
            else:
                return cached_data