1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 07:55:36 +00:00

Paginate seafadmin page

This commit is contained in:
xiez
2012-03-20 11:35:56 +08:00
parent 072758f2f6
commit ac7c3e955e
2 changed files with 45 additions and 1 deletions

View File

@@ -22,4 +22,28 @@
{% endfor %}
</table>
<div id="paginator">
{% if current_page != 1 %}
<a href="{{ SITE_ROOT }}seafadmin/?page={{ prev_page }}&per_page={{ per_page }}">上一页</a>
{% endif %}
{% if page_next %}
<a href="{{ SITE_ROOT }}seafadmin/?page={{ next_page }}&per_page={{ per_page }}">下一页</a>
{% endif %}
<span>每页:</span>
{% if per_page == 25 %}
<span> 25 </span>
{% else %}
<a href="{{ SITE_ROOT }}seafadmin/?per_page=25" class="per-page">25</a>
{% endif %}
{% if per_page == 50 %}
<span> 50 </span>
{% else %}
<a href="{{ SITE_ROOT }}seafadmin/?per_page=50" class="per-page">50</a>
{% endif %}
{% if per_page == 100 %}
<span> 100 </span>
{% else %}
<a href="{{ SITE_ROOT }}seafadmin/?per_page=100" class="per-page">100</a>
{% endif %}
</div>
{% endblock %}

View File

@@ -174,7 +174,22 @@ def seafadmin(request):
if not request.user.is_staff:
raise Http404
repos = seafserv_threaded_rpc.get_repo_list("", 1000)
# Make sure page request is an int. If not, deliver first page.
try:
current_page = int(request.GET.get('page', '1'))
per_page= int(request.GET.get('per_page', '25'))
except ValueError:
page = 1
per_page = 25
repos_all = seafserv_threaded_rpc.get_repo_list(per_page * (current_page -1), per_page + 1)
repos = repos_all[:per_page]
if len(repos_all) == per_page + 1:
page_next = True
else:
page_next = False
for repo in repos:
try:
owner_id = seafserv_threaded_rpc.get_repo_owner(repo.props.id)
@@ -186,6 +201,11 @@ def seafadmin(request):
return render_to_response(
'repos.html', {
'repos': repos,
'current_page': current_page,
'prev_page': current_page-1,
'next_page': current_page+1,
'per_page': per_page,
'page_next': page_next,
},
context_instance=RequestContext(request))