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
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