Commit 8f163eb6 authored by guanghongwei's avatar guanghongwei

统一分页

parent de358099
...@@ -8,7 +8,7 @@ from jasset.models import Asset, BisGroup ...@@ -8,7 +8,7 @@ from jasset.models import Asset, BisGroup
from jperm.models import Perm, SudoPerm, CmdGroup from jperm.models import Perm, SudoPerm, CmdGroup
from django.core.paginator import Paginator, EmptyPage, InvalidPage from django.core.paginator import Paginator, EmptyPage, InvalidPage
from django.db.models import Q from django.db.models import Q
from jumpserver.views import LDAP_ENABLE, ldap_conn, CONF, page_list_return from jumpserver.views import LDAP_ENABLE, ldap_conn, CONF, page_list_return, pages
from jumpserver.api import user_perm_asset_api from jumpserver.api import user_perm_asset_api
...@@ -67,18 +67,7 @@ def perm_list(request): ...@@ -67,18 +67,7 @@ def perm_list(request):
contact_list = Perm.objects.filter(name__icontains=keyword) contact_list = Perm.objects.filter(name__icontains=keyword)
else: else:
contact_list = Perm.objects.all() contact_list = Perm.objects.all()
p = paginator = Paginator(contact_list, 10) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(contact_list, request)
try:
current_page = int(request.GET.get('page', '1'))
except ValueError:
current_page = 1
page_range = page_list_return(len(p.page_range), current_page)
try:
contacts = paginator.page(current_page)
except (EmptyPage, InvalidPage):
contacts = paginator.page(paginator.num_pages)
return render_to_response('jperm/perm_list.html', locals(), context_instance=RequestContext(request)) return render_to_response('jperm/perm_list.html', locals(), context_instance=RequestContext(request))
...@@ -299,21 +288,9 @@ def sudo_add(request): ...@@ -299,21 +288,9 @@ def sudo_add(request):
def sudo_list(request): def sudo_list(request):
header_title, path1, path2 = u'Sudo授权', u'权限管理', u'Sudo权限详情' header_title, path1, path2 = u'Sudo授权', u'权限管理', u'Sudo权限详情'
sudo_perms = contact_list = SudoPerm.objects.all() contact_list = SudoPerm.objects.all()
p1 = paginator1 = Paginator(contact_list, 10)
user_groups = UserGroup.objects.filter(id__gt=2)
asset_groups = BisGroup.objects.all()
cmd_groups = CmdGroup.objects.all()
try:
page1 = int(request.GET.get('page', '1'))
except ValueError:
page1 = 1
try: contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(contact_list, request)
contacts1 = paginator1.page(page1)
except (EmptyPage, InvalidPage):
contacts1 = paginator1.page(paginator1.num_pages)
return render_to_response('jperm/sudo_list.html', locals(), context_instance=RequestContext(request)) return render_to_response('jperm/sudo_list.html', locals(), context_instance=RequestContext(request))
......
...@@ -90,37 +90,7 @@ ...@@ -90,37 +90,7 @@
Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries
</div> </div>
</div> </div>
<div class="col-sm-6"> {% include 'paginator.html' %}
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if contacts.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% for page in page_range %}
{% ifequal current_page page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if contacts.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts.next_page_number }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
</ul>
</div>
</div>
</div> </div>
</div> </div>
......
...@@ -73,27 +73,27 @@ ...@@ -73,27 +73,27 @@
</tr> </tr>
</thead> </thead>
<tbody id="perm_list"> <tbody id="perm_list">
{% for sudo_perm in contacts1.object_list %} {% for sudo_perm in contacts.object_list %}
<tr class="gradeX"> <tr class="gradeX">
<td class="text-center"> {{ sudo_perm.name }} </td> <td class="text-center"> {{ sudo_perm.name }} </td>
<td class="text-center"> {{ sudo_perm.user_runas }} </td> <td class="text-center"> {{ sudo_perm.user_runas }} </td>
<td class="text-center"> <td class="text-center">
{{ sudo_perm.user_group.all | group_str2 }} {{ sudo_perm.user_group.all | group_str2 }}
</td> </td>
<td class="text-center"> <td class="text-center">
{{ sudo_perm.asset_group.all | group_str2 }} {{ sudo_perm.asset_group.all | group_str2 }}
</td> </td>
<td class="text-center"> <td class="text-center">
{{ sudo_perm.cmd_group.all | group_str2 }} {{ sudo_perm.cmd_group.all | group_str2 }}
</td> </td>
<td class="text-center"> <td class="text-center">
<a title="[ {{ sudo_perm.name }} 授权详情 ]" href="../sudo_detail/?id={{ sudo_perm.id }}" class="btn btn-xs btn-primary">详情</a> <a title="[ {{ sudo_perm.name }} 授权详情 ]" href="../sudo_detail/?id={{ sudo_perm.id }}" class="btn btn-xs btn-primary">详情</a>
<a href="../sudo_edit/?id={{ sudo_perm.id }}" class="btn btn-xs btn-info">编辑</a> <a href="../sudo_edit/?id={{ sudo_perm.id }}" class="btn btn-xs btn-info">编辑</a>
<a href="../sudo_del/?id={{ sudo_perm.id }}" class="btn btn-xs btn-danger">删除</a> <a href="../sudo_del/?id={{ sudo_perm.id }}" class="btn btn-xs btn-danger">删除</a>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
...@@ -103,106 +103,11 @@ ...@@ -103,106 +103,11 @@
Showing {{ contacts1.start_index }} to {{ contacts1.end_index }} of {{ p1.count }} entries Showing {{ contacts1.start_index }} to {{ contacts1.end_index }} of {{ p1.count }} entries
</div> </div>
</div> </div>
<div class="col-sm-6"> {% include 'paginator.html' %}
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if contacts1.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts1.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% for page in p1.page_range %}
{% ifequal offset1 page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if contacts1.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts1.next_page_number }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
</ul>
</div>
</div> </div>
</div> </div>
</div> </div>
<div id="tab-2" class="tab-pane">
<table class="table table-striped table-bordered table-hover " id="editable" >
<thead>
<tr>
<th class="text-center">用户</th>
<th class="text-center">角色</th>
<th class="text-center">属组</th>
<th class="text-center">主机数量</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody id="perm_list">
{% for user in contacts2.object_list %}
<tr class="gradeX">
<td class="text-center"> {{ user.name }} </td>
<td class="text-center"> {{ user.id | get_role }} </td>
<td class="text-center"> {{ user.username }} </td>
<td class="text-center"> {{ user.id }} </td>
<td class="text-center">
<a title="[ {{ user.name }} ] 授权详情" href="../perm_asset_detail/?id={{ user.id }}" class="iframe btn btn-xs btn-primary">详情</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="row">
<div class="col-sm-6">
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite">
Showing {{ contacts2.start_index }} to {{ contacts2.end_index }} of {{ p2.count }} entries
</div>
</div>
<div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if contacts2.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts2.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% for page in p2.page_range %}
{% ifequal offset1 page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if contacts2.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts2.next_page_number }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
</ul>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
......
...@@ -80,37 +80,7 @@ ...@@ -80,37 +80,7 @@
Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries
</div> </div>
</div> </div>
<div class="col-sm-6"> {% include 'paginator.html' %}
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if contacts.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% for page in page_range %}
{% ifequal current_page page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if contacts.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts.next_page_number }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
</ul>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -76,7 +76,14 @@ ...@@ -76,7 +76,14 @@
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{% include 'paginator.html' %} <div class="row">
<div class="col-sm-6">
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite">
Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries
</div>
</div>
{% include 'paginator.html' %}
</div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -80,7 +80,14 @@ ...@@ -80,7 +80,14 @@
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{% include 'paginator.html' %} <div class="row">
<div class="col-sm-6">
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite">
Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries
</div>
</div>
{% include 'paginator.html' %}
</div>
</div> </div>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment