Commit 1f3c0d00 authored by ibuler's avatar ibuler

Change update batch, add _list_base.html

parent 3c3fda80
{% extends 'base.html' %}
{% load common_tags %}
{% block content %}
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5> {{ path2 }} </h5>
<div class="ibox-tools">
<a class="collapise-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-wrench"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="">
{# left button add #}
{% block content_left_head %} {% endblock %}
<form id="search_form" method="get" action="" class="pull-right mail-search">
<div class="input-group">
<input type="text" class="form-control input-sm" name="keyword" placeholder="Search" value="{{ keyword }}">
<div class="input-group-btn">
<button id='search_btn' type="submit" class="btn btn-sm btn-primary">
搜索
</button>
</div>
</div>
</form>
</div>
<table class="table table-striped table-bordered table-hover " id="editable" >
<thead>
<tr>
{% block table_head %} {% endblock %}
</tr>
</thead>
<tbody>
{% block table_body %} {% endblock %}
</tbody>
</table>
<div class="row">
<div class="col-sm-4">
{# Update batch #}
{% block content_bottom_left %} {% endblock %}
</div>
{% include '_pagination.html' %}
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% load common_tags %} {% load common_tags %}
{% if is_paginated %} {% if is_paginated %}
<div class="row"> <div class="col-sm-4">
<div class="col-sm-6"> <div class="dataTables_info text-center" id="editable_info" role="status" aria-live="polite">
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite"> Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ paginator.count }} entries
Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ paginator.count }} entries </div>
</div> </div>
</div> <div class="col-sm-4">
<div class="col-sm-6"> <div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate"> <ul class="pagination" style="margin-top: 0; float: right">
<ul class="pagination" style="margin-top: 0; float: right"> {% if page_obj.has_previous %}
{% if page_obj.has_previous %} <li class="paginate_button previous" aria-controls="editable" tabindex="0" id="previous">
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="previous"> <a data-page="next" href="?page={{ page_obj.previous_page_number}}"></a>
<a data-page="next" href="?page={{ page_obj.previous_page_number}}"></a> </li>
</li> {% endif %}
{% endif %}
{% for page in paginator.num_pages|pagination_range:page_obj.number %} {% for page in paginator.num_pages|pagination_range:page_obj.number %}
{% if page == page_obj.number %} {% if page == page_obj.number %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"> <li class="paginate_button active" aria-controls="editable" tabindex="0">
{% else %} {% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"> <li class="paginate_button" aria-controls="editable" tabindex="0">
{% endif %} {% endif %}
<a class="page" href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a> <a class="page" href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a>
</li> </li>
{% endfor %} {% endfor %}
{% if page_obj.has_next %} {% if page_obj.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="next"> <li class="paginate_button next" aria-controls="editable" tabindex="0" id="next">
<a data-page="next" href="?page={{ page_obj.next_page_number }}"></a> <a data-page="next" href="?page={{ page_obj.next_page_number }}"></a>
</li> </li>
{% endif %} {% endif %}
</ul> </ul>
</div> </div>
</div> </div>
</div> {% endif %}
{% endif %}
<script> <script>
function sleep(n) { //n表示的毫秒数 function sleep(n) { //n表示的毫秒数
var start = new Date().getTime(); var start = new Date().getTime();
......
...@@ -40,7 +40,7 @@ class UserUpdateForm(ModelForm): ...@@ -40,7 +40,7 @@ class UserUpdateForm(ModelForm):
} }
widgets = { widgets = {
'groups': forms.SelectMultiple(attrs={'class': 'chosen-select', 'data-placeholder': '请选择用户组'}), 'groups': forms.SelectMultiple(attrs={'class': 'select2', 'data-placeholder': '请选择用户组'}),
} }
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
{% load bootstrap %} {% load bootstrap %}
{% block custom_head_css_js %} {% block custom_head_css_js %}
<link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet"> <link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet">
<link href="{% static "css/plugins/datepicker/datepicker3.css" %}" rel="stylesheet">
<script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script> <script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script>
<link href="{% static "css/plugins/datepicker/datepicker3.css" %}" rel="stylesheet">
{% endblock %} {% endblock %}
{% block content %} {% block content %}
......
{% extends '_list_base.html' %}
{% load common_tags %}
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5> 查看用户 </h5>
<div class="ibox-tools">
<a class="collapise-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-wrench"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="">
<a href="{% url 'users:user-add' %}" class="btn btn-sm btn-primary "> 添加用户 </a>
<a id="del_btn" class="btn btn-sm btn-danger "> 删除所选 </a>
<form id="search_form" method="get" action="" class="pull-right mail-search">
<div class="input-group">
<input type="text" class="form-control input-sm" name="keyword" placeholder="用户名或姓名" value="{{ keyword }}">
<div class="input-group-btn">
<button id='search_btn' type="submit" class="btn btn-sm btn-primary">
搜索
</button>
</div>
</div>
</form>
</div>
<table class="table table-striped table-bordered table-hover " id="editable" >
<thead>
<tr>
<th class="text-center">
<input type="checkbox" id="check_all" onclick="checkAll('check_all', 'checked')">
</th>
<th class="text-center"><a href="{% url 'users:user-list' %}?sort=name">姓名</a></th>
<th class="text-center"><a href="{% url 'users:user-list' %}?sort=username">用户名</a></th>
<th class="text-center">角色</th>
<th class="text-center">用户组</th>
<th class="text-center">资产数量</th>
<th class="text-center"><a href="{% url 'users:user-list' %}?sort=date_expired">有效</a></th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for user in user_list %}
<tr class="gradeX">
<td class="text-center">
<input type="checkbox" name="checked" value="{{ user.id }}">
</td>
<td class="text-center">
<a href="{% url 'users:user-detail' pk=user.id %}">
{{ user.name }}
</a>
</td>
<td class="text-center">{{ user.username }}</td>
<td class="text-center">{{ user.role.name }}</td>
<td class="text-center" title="{% for user_group in user.group.all %} {{ user_group.name }} {% endfor %}"> {{ user.groups.all|join_queryset_attr:"name" }} </td>
<th class="text-center">{{ user.name }}</th>
<td class="text-center">
{% if user.is_expired %}
<i class="fa fa-times text-danger"></i>
{% else %}
<i class="fa fa-check text-navy"></i>
{% endif %}
</td>
<td class="text-center">
<a href="{% url 'users:user-edit' pk=user.id %}" class="btn btn-xs btn-info">编辑</a>
<a href="{% url 'users:user-delete' pk=user.id %}" class="btn btn-xs btn-danger del {% if user.username == 'admin' %} disabled {% endif %}">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="row">
<div class="col-sm-6">
</div>
{% include '_pagination.html' %}
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% extends 'base.html' %} {% extends '_list_base.html' %}
{% load common_tags %} {% load common_tags %}
{% block content %} {% block content_left_head %}
<div class="wrapper wrapper-content animated fadeInRight"> <a href="{% url 'users:user-add' %}" class="btn btn-sm btn-primary "> 添加用户 </a>
<div class="row"> {# <a id="del_btn" class="btn btn-sm btn-danger "> 删除所选 </a>#}
<div class="col-sm-12"> {% endblock %}
<div class="ibox float-e-margins">
<div class="ibox-title"> {% block table_head %}
<h5> 查看用户 </h5> <th class="text-center">
<div class="ibox-tools"> <input type="checkbox" id="check_all" onclick="checkAll('check_all', 'checked')">
<a class="collapise-link"> </th>
<i class="fa fa-chevron-up"></i> <th class="text-center"><a href="{% url 'users:user-list' %}?sort=name">姓名</a></th>
</a> <th class="text-center"><a href="{% url 'users:user-list' %}?sort=username">用户名</a></th>
<a class="dropdown-toggle" data-toggle="dropdown" href="#"> <th class="text-center">角色</th>
<i class="fa fa-wrench"></i> <th class="text-center">用户组</th>
</a> <th class="text-center">资产数量</th>
<a class="close-link"> <th class="text-center"><a href="{% url 'users:user-list' %}?sort=date_expired">有效</a></th>
<i class="fa fa-times"></i> <th class="text-center"></th>
</a> {% endblock %}
</div>
</div> {% block table_body %}
{% for user in user_list %}
<tr class="gradeX">
<td class="text-center">
<input type="checkbox" name="checked" value="{{ user.id }}">
</td>
<td class="text-center">
<a href="{% url 'users:user-detail' pk=user.id %}">
{{ user.name }}
</a>
</td>
<td class="text-center">{{ user.username }}</td>
<td class="text-center">{{ user.role.name }}</td>
<td class="text-center" title="{% for user_group in user.group.all %} {{ user_group.name }} {% endfor %}"> {{ user.groups.all|join_queryset_attr:"name" }} </td>
<th class="text-center">{{ user.name }}</th>
<td class="text-center">
{% if user.is_expired %}
<i class="fa fa-times text-danger"></i>
{% else %}
<i class="fa fa-check text-navy"></i>
{% endif %}
</td>
<td class="text-center">
<a href="{% url 'users:user-edit' pk=user.id %}" class="btn btn-xs btn-info">编辑</a>
<a href="{% url 'users:user-delete' pk=user.id %}" class="btn btn-xs btn-danger del {% if user.username == 'admin' %} disabled {% endif %}">删除</a>
</td>
</tr>
{% endfor %}
{% endblock %}
<div class="ibox-content"> {% block content_bottom_left %}
<div class=""> <form id="" method="get" action="" class=" mail-search">
<a href="{% url 'users:user-add' %}" class="btn btn-sm btn-primary "> 添加用户 </a> <div class="input-group">
<a id="del_btn" class="btn btn-sm btn-danger "> 删除所选 </a> <select class="form-control m-b" style="width: auto">
<form id="search_form" method="get" action="" class="pull-right mail-search"> <option>批量删除</option>
<div class="input-group"> <option>批量更新</option>
<input type="text" class="form-control input-sm" name="keyword" placeholder="用户名或姓名" value="{{ keyword }}"> <option>批量禁用</option>
<div class="input-group-btn"> <option>批量导出</option>
<button id='search_btn' type="submit" class="btn btn-sm btn-primary"> </select>
搜索
</button>
</div>
</div>
</form>
</div>
<table class="table table-striped table-bordered table-hover " id="editable" > <div class="input-group-btn pull-left" style="padding-left: 5px;">
<thead> <button id='search_btn' type="submit" style="height: 32px;" class="btn btn-sm btn-primary">
<tr> 确认
<th class="text-center"> </button>
<input type="checkbox" id="check_all" onclick="checkAll('check_all', 'checked')">
</th>
<th class="text-center"><a href="{% url 'users:user-list' %}?sort=name">姓名</a></th>
<th class="text-center"><a href="{% url 'users:user-list' %}?sort=username">用户名</a></th>
<th class="text-center">角色</th>
<th class="text-center">用户组</th>
<th class="text-center">资产数量</th>
<th class="text-center"><a href="{% url 'users:user-list' %}?sort=date_expired">有效</a></th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for user in user_list %}
<tr class="gradeX">
<td class="text-center">
<input type="checkbox" name="checked" value="{{ user.id }}">
</td>
<td class="text-center">
<a href="{% url 'users:user-detail' pk=user.id %}">
{{ user.name }}
</a>
</td>
<td class="text-center">{{ user.username }}</td>
<td class="text-center">{{ user.role.name }}</td>
<td class="text-center" title="{% for user_group in user.group.all %} {{ user_group.name }} {% endfor %}"> {{ user.groups.all|join_queryset_attr:"name" }} </td>
<th class="text-center">{{ user.name }}</th>
<td class="text-center">
{% if user.is_expired %}
<i class="fa fa-times text-danger"></i>
{% else %}
<i class="fa fa-check text-navy"></i>
{% endif %}
</td>
<td class="text-center">
<a href="{% url 'users:user-edit' pk=user.id %}" class="btn btn-xs btn-info">编辑</a>
<a href="{% url 'users:user-delete' pk=user.id %}" class="btn btn-xs btn-danger del {% if user.username == 'admin' %} disabled {% endif %}">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% include '_pagination.html' %}
</div>
</div> </div>
</div>
</div>
</div>
</div>
</form>
{% endblock %} {% endblock %}
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
{% load static %} {% load static %}
{% load bootstrap %} {% load bootstrap %}
{% block custom_head_css_js %} {% block custom_head_css_js %}
<link href="{% static "css/plugins/chosen/chosen.css" %}" rel="stylesheet"> <link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet">
<script src="{% static "js/plugins/chosen/chosen.jquery.min.js" %}"></script> <script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
...@@ -32,8 +32,8 @@ ...@@ -32,8 +32,8 @@
<div class="form-group"> <div class="form-group">
<label for="users" class="col-sm-2 control-label">用户</label> <label for="users" class="col-sm-2 control-label">用户</label>
<div class="col-sm-8"> <div class="col-sm-9">
<select name="users" id="users" data-placeholder="选择用户" class="chosen-select form-control m-b" multiple tabindex="2"> <select name="users" id="users" data-placeholder="选择用户" class="select2 form-control m-b" multiple tabindex="2">
{% for user in users %} {% for user in users %}
<option value="{{ user.id }}">{{ user.name }}</option> <option value="{{ user.id }}">{{ user.name }}</option>
{% endfor %} {% endfor %}
...@@ -59,16 +59,7 @@ ...@@ -59,16 +59,7 @@
{% block custom_foot_js %} {% block custom_foot_js %}
<script> <script>
$(document).ready(function () { $(document).ready(function () {
var config = { $('.select2').select2();
'.chosen-select' : {},
'.chosen-select-deselect' : {allow_single_deselect:true},
'.chosen-select-no-single' : {disable_search_threshold:10},
'.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
'.chosen-select-width' : {width:"95%"}
};
for (var selector in config) {
$(selector).chosen(config[selector]);
}
}) })
</script> </script>
{% endblock %} {% endblock %}
\ No newline at end of file
{% extends 'base.html' %} {% extends '_list_base.html' %}
{% load common_tags %} {% load common_tags %}
{% block content %} {% block content_left_head %}
<div class="wrapper wrapper-content animated fadeInRight"> <a href="{% url 'users:usergroup-add' %}" class="btn btn-sm btn-primary "> 添加用户组 </a>
<div class="row"> {% endblock %}
<div class="col-sm-12">
<div class="ibox float-e-margins"> {% block table_head %}
<div class="ibox-title"> <th class="text-center">
<h5> 查看用户组 </h5> <input type="checkbox" id="check_all" onclick="checkAll('check_all', 'checked')">
<div class="ibox-tools"> </th>
<a class="collapise-link"> <th class="text-center"><a href="{% url 'users:usergroup-list' %}?sort=name">名称</a></th>
<i class="fa fa-chevron-up"></i> <th class="text-center">用户数量</th>
</a> <th class="text-center">资产数量</th>
<a class="dropdown-toggle" data-toggle="dropdown" href="#"> <th class="text-center">描述</th>
<i class="fa fa-wrench"></i> <th class="text-center"></th>
</a> {% endblock %}
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content"> {% block table_body %}
<div class=""> {% for usergroup in usergroup_list %}
<a href="{% url 'users:usergroup-add' %}" class="btn btn-sm btn-primary "> 添加用户组 </a> <tr class="gradeX">
<a id="del_btn" class="btn btn-sm btn-danger "> 删除所选 </a> <td class="text-center">
<form id="search_form" method="get" action="" class="pull-right mail-search"> <input type="checkbox" name="checked" value="{{ usergroup.id }}">
<div class="input-group"> </td>
<input type="text" class="form-control input-sm" name="keyword" placeholder="名称" value="{{ keyword }}"> <td class="text-center">
<div class="input-group-btn"> <a href="{% url 'users:usergroup-detail' pk=usergroup.id %}">
<button id='search_btn' type="submit" class="btn btn-sm btn-primary"> {{ usergroup.name }}
搜索 </a>
</button> </td>
</div> <td class="text-center">{{ usergroup.user_set.all|length }}</td>
</div> <td class="text-center">数量</td>
</form> <th class="text-center">{{ usergroup.comment|truncatewords:8 }}</th>
</div> <td class="text-center">
<a href="{% url 'users:usergroup-edit' pk=usergroup.id %}" class="btn btn-xs btn-info">编辑</a>
<a href="{% url 'users:usergroup-delete' pk=usergroup.id %}" class="btn btn-xs btn-danger del">删除</a>
</td>
</tr>
{% endfor %}
{% endblock %}
<table class="table table-striped table-bordered table-hover " id="editable" > {% block content_bottom_left %}
<thead> <form id="" method="get" action="" class=" mail-search">
<tr> <div class="input-group">
<th class="text-center"> <select class="form-control m-b" style="width: auto">
<input type="checkbox" id="check_all" onclick="checkAll('check_all', 'checked')"> <option>批量删除</option>
</th> <option>批量更新</option>
<th class="text-center"><a href="{% url 'users:usergroup-list' %}?sort=name">名称</a></th> <option>批量禁用</option>
<th class="text-center">用户数量</th> <option>批量导出</option>
<th class="text-center">资产数量</th> </select>
<th class="text-center">描述</th>
<th class="text-center"></th> <div class="input-group-btn pull-left" style="padding-left: 5px;">
</tr> <button id='search_btn' type="submit" style="height: 32px;" class="btn btn-sm btn-primary">
</thead> 确认
<tbody> </button>
{% for usergroup in usergroup_list %}
<tr class="gradeX">
<td class="text-center">
<input type="checkbox" name="checked" value="{{ usergroup.id }}">
</td>
<td class="text-center">
<a href="{% url 'users:usergroup-detail' pk=usergroup.id %}">
{{ usergroup.name }}
</a>
</td>
<td class="text-center">{{ usergroup.user_set.all|length }}</td>
<td class="text-center">数量</td>
<th class="text-center">{{ usergroup.comment|truncatewords:8 }}</th>
<td class="text-center">
<a href="{% url 'users:usergroup-edit' pk=usergroup.id %}" class="btn btn-xs btn-info">编辑</a>
<a href="{% url 'users:usergroup-delete' pk=usergroup.id %}" class="btn btn-xs btn-danger del">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% include '_pagination.html' %}
</div>
</div> </div>
</div> </div>
</div> </form>
</div>
{% endblock %} {% endblock %}
...@@ -107,7 +107,7 @@ class UserDetailView(DetailView): ...@@ -107,7 +107,7 @@ class UserDetailView(DetailView):
class UserGroupListView(ListView): class UserGroupListView(ListView):
model = UserGroup model = UserGroup
paginate_by = 20 paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
context_object_name = 'usergroup_list' context_object_name = 'usergroup_list'
template_name = 'users/usergroup_list.html' template_name = 'users/usergroup_list.html'
ordering = '-date_added' ordering = '-date_added'
......
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