Created
August 21, 2013 18:39
-
-
Save magnunleno/6298437 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {{extend 'layout.html'}} | |
| <h1>Clientes</h1> | |
| <div id='contents'> | |
| <table class="table"> | |
| <tr> | |
| <th>ID</th> | |
| <th>Cliente</th> | |
| <th>E-mail</th> | |
| </tr> | |
| {{ for registro in registros: }} | |
| <tr> | |
| <td>{{ =registro.id }}</td> | |
| <td>{{ =registro.nome }}</td> | |
| <td>{{ =registro.email }}</td> | |
| </tr> | |
| {{ pass }} | |
| </table> | |
| </div> | |
| <div id="paginacao"> | |
| <ul class="pager"> | |
| {{ if pagina != 1: }} | |
| <li class="previous"> | |
| <a href="{{ =URL(args=pagina-1) }}">← Anterior</a> | |
| </li> | |
| {{ pass }} | |
| {{ if pagina != paginas: }} | |
| <li class="next"> | |
| <a href="{{ =URL(args=pagina+1) }}">Próxima →</a> | |
| </li> | |
| {{ pass }} | |
| </ul> | |
| <div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def clientes(): | |
| # Se não for unformado o número da página, deduzimos que é a primeira | |
| paginacao = 5 | |
| if len(request.args) == 0: | |
| pagina = 1 | |
| else: | |
| # Tenta converter o número da página | |
| try: | |
| pagina = int(request.args[0]) | |
| except ValueError: | |
| # Redireciona para a página de erro | |
| redirect(URL('erro', vars={ | |
| 'msg':'Numero da página inválido' | |
| })) | |
| # Se a página informada é 0, redireciona para a página 1 | |
| if pagina <= 0: | |
| redirect(URL(args=1)) | |
| # Total de clientes | |
| total = db(db.cliente).count() | |
| # Calcula o total de páginas | |
| paginas = total/paginacao | |
| if total%paginacao: | |
| paginas+=1 | |
| # Se o número de página extrapolou o possível, redirecione para a | |
| # última página | |
| if pagina > paginas: | |
| redirect(URL(args=[paginas])) | |
| # Calcula os limites da consulta | |
| limites = (paginacao*(pagina-1), (paginacao*pagina)) | |
| registros = db(db.cliente).select( | |
| limitby=limites, | |
| ) | |
| return dict(registros=registros, pagina=pagina, paginas=paginas) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment