Skip to content

Commit d42f6e0

Browse files
committed
add pagination logic
1 parent 2820bed commit d42f6e0

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{% load admin_list adminlte_list %}
2+
{% load i18n %}
3+
4+
<div class="col-sm-5">
5+
<div class="dataTables_info" id="example2_info" role="status" aria-live="polite">
6+
共 {{ cl.result_count }} 条记录
7+
{% if show_all_url %}&nbsp;&nbsp;<a href="{{ show_all_url }}"
8+
class="showall">{% trans 'Show all' %}</a>{% endif %}
9+
{% if cl.formset and cl.result_count %}<input type="submit" name="_save"
10+
class="btn btn-primary"
11+
value="{% trans 'Save' %}">{% endif %}
12+
</div>
13+
</div>
14+
15+
<div class="col-sm-7">
16+
<div class="dataTables_paginate paging_simple_numbers"
17+
id="example2_paginate">
18+
<ul class="pagination">
19+
{% if pagination_required %}
20+
<li class="paginate_button previous disabled"
21+
id="example2_previous">
22+
<a href="#" aria-controls="example2" data-dt-idx="0"
23+
tabindex="0">{% trans 'Previous' %}</a></li>
24+
{% for i in page_range %}
25+
{% adminlte_paginator_number cl i %}
26+
{% endfor %}
27+
<li class="paginate_button next disabled" id="example2_next">
28+
<a href="#"
29+
aria-controls="example2"
30+
data-dt-idx="7"
31+
tabindex="0">{% trans 'Next' %}</a>
32+
</li>
33+
{% endif %}
34+
</ul>
35+
</div>
36+
</div>

adminlteui/templatetags/adminlte_list.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,39 @@
1+
from django.contrib.admin.views.main import (
2+
ALL_VAR, ORDER_VAR, PAGE_VAR, SEARCH_VAR,
3+
)
4+
from django.utils.safestring import mark_safe
5+
from django.utils.html import format_html
16
from django.template import Library
27
from django.template.loader import get_template
38
import urllib.parse
49

510
register = Library()
611

12+
DOT = '.'
13+
14+
15+
@register.simple_tag
16+
def adminlte_paginator_number(cl, i):
17+
"""
18+
Generate an individual page index link in a paginated list.
19+
"""
20+
if i == DOT:
21+
# <li class="paginate_button active"><a href="#" aria-controls="example2" data-dt-idx="3" tabindex="0">{}</a></li>'
22+
return format_html(
23+
'<li class="paginate_button"><a href="javascript:void(0);" aria-controls="example2" data-dt-idx="3" tabindex="0">… </a></li>')
24+
elif i == cl.page_num:
25+
return format_html(
26+
'<li class="paginate_button active"><a href="javascript:void(0);" aria-controls="example2" data-dt-idx="3" tabindex="0">{}</a></li>',
27+
i + 1)
28+
else:
29+
return format_html(
30+
'<li class="paginate_button "><a href="{}" {} aria-controls="example2" data-dt-idx="3" tabindex="0">{}</a></li>',
31+
cl.get_query_string({PAGE_VAR: i}),
32+
mark_safe(
33+
' class="end"' if i == cl.paginator.num_pages - 1 else ''),
34+
i + 1,
35+
)
36+
737

838
@register.simple_tag
939
def adminlte_admin_list_filter(cl, spec):

0 commit comments

Comments
 (0)