def buscarListas(_resp, _usuario_logado): usuarios = Usuario.query().fetch() listas = [] for index, usuario in enumerate(usuarios): listas.append({}) listas[index]["usuario"] = usuario.firstname listas[index]["listas_usuario"] = [lista.get().to_dict() for lista in usuario.listas] listas[index]["data_ingresso"] = usuario.data_ingresso _resp.write(json.dumps(listas))
def listar(_resp): json_struct = [] usuarios = Usuario.query() for usu in usuarios: json_struct += [{"nome": usu.nome, "email": usu.email, "google_id": usu.google_id, "id": usu.key.id()}] json_str = json.dumps(json_struct) _resp.write(json_str)
def test_add_user(self): users_service.add_user("iury", "*****@*****.**").put() user = Usuario.query(Usuario.nome=="iury", Usuario.email=="*****@*****.**").get() self.assertIsNotNone(user)
def test_add_user_with_google_id(self): users_service.add_user("iury", "*****@*****.**", google_id="122132").put() user = Usuario.query(Usuario.nome=="iury", Usuario.google_id=="122132").get() self.assertIsNotNone(user)
def index(_write_tmpl, pagina_origem=1, direcao_busca='FRENTE', cursor_urlsafe='None', pagina_destino=1): BUSCA_FRENTE = 'FRENTE' BUSCA_TRAS = 'TRAS' #tranformacao e calculo de parametros pagina_origem = int(pagina_origem) pagina_destino = int(pagina_destino) TAMANHO_DA_PAGINA = 2 nova_direcao_busca = BUSCA_TRAS if (pagina_destino - pagina_origem) < 0 else BUSCA_FRENTE if cursor_urlsafe == 'None': cursor_urlsafe = None cursor = Cursor(urlsafe=cursor_urlsafe) # Funcao para definir se o usuario esta decrementando ou incrimentando a pagina def direcao_pesquisa_mudou(): return direcao_busca != nova_direcao_busca #Calculo do offset de acordo com mudanca de direcao na busca offset = 0 if cursor_urlsafe is not None: offset = abs(pagina_destino - pagina_origem) offset = offset if direcao_pesquisa_mudou() else max(offset - 1, 0) offset *= TAMANHO_DA_PAGINA #Funcao de pesquisa de usuarios def pesquisar_usuarios(query, cursor, offset): if direcao_pesquisa_mudou() and cursor: cursor = cursor.reversed() return query.fetch_page_async(TAMANHO_DA_PAGINA, offset=offset, start_cursor=cursor) #Pesquisa assincrona de usuarios de acordo com direcao da busca if nova_direcao_busca == BUSCA_TRAS: query = Usuario.query().order(-Usuario.nome) usuarios_future = pesquisar_usuarios(query, cursor, offset) else: query = Usuario.query().order(Usuario.nome) usuarios_future = pesquisar_usuarios(query, cursor, offset) #Setup de numeração de páginas pagina_inicial = max(1, pagina_destino - 2) pagina_final = pagina_inicial + 4 pagina_anterior = max(pagina_inicial, pagina_destino - 1) #Construção de parâmetros a serem renderizados pelo template dct = {'adicionar_usuario_google_path': router.to_path(google), 'adicionar_usuario_face_path': router.to_path(face), 'pagina_atual': pagina_destino, 'pagina_inicial': pagina_inicial, 'pagina_final': pagina_final, 'pagina_anterior': pagina_anterior, 'pagina_posterior': pagina_destino + 1} usuarios, cursor, mais_resultados = usuarios_future.get_result() # revertando resultado para manter ordem crescente na visualizacao de busca if nova_direcao_busca == BUSCA_TRAS: usuarios.reverse() cursor_urlsafe = cursor.urlsafe() if cursor else 'None' dct['home_path'] = router.to_path(index, pagina_destino, nova_direcao_busca, cursor_urlsafe) dct['usuarios'] = usuarios _write_tmpl("/templates/usuario_home.html", dct)
def index(_write_tmpl): usuarios = Usuario.query() dct = {'lista_cursos': usuarios.fetch()} _write_tmpl('templates/listar.html', dct)