Added filtering by username

This commit is contained in:
constantine2nd 2018-03-12 17:21:51 +01:00
parent d678d4f780
commit 5a8cb471a5
4 changed files with 28 additions and 2 deletions

View File

@ -4,10 +4,10 @@
{% if active_role_name_all %}All Roles{% else %}{{ active_role_name }}{% endif %} <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="?email={{ active_email }}&amp;role_name=All">All Roles</a></li>
<li><a href="?email={{ active_email }}&amp;email={{ active_username }}&amp;role_name=All">All Roles</a></li>
<li role="separator" class="divider"></li>
{% for role_name in role_names %}
<li><a href="?email={{ active_email }}&amp;role_name={{ role_name }}">{{ role_name }}</a></li>
<li><a href="?email={{ active_email }}&amp;email={{ active_username }}&amp;role_name={{ role_name }}">{{ role_name }}</a></li>
{% endfor %}
</ul>
</div>

View File

@ -0,0 +1,11 @@
<div id="filter-email" class="filter">
<div class="btn-group">
<form action="" method="get">
<input type="hidden" name="role_name" value="{{ active_role_name }}" />
<div class="input-group">
<input type="text" class="form-control" size="30" name="username" placeholder="Enter username ..." value="{% if not active_username_all %}{{ active_username }}{% endif %}" />
<span class="input-group-btn"><button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button></span>
</div>
</form>
</div>
</div>

View File

@ -11,6 +11,7 @@
<div class="hidden-xs">
{% include "users/includes/filter_role.html" %}
{% include "users/includes/filter_email.html" %}
{% include "users/includes/filter_username.html" %}
</div>
<div class="hidden-sm hidden-md hidden-lg">
<div class="row">
@ -19,6 +20,9 @@
</div>
<div class="col-xs-12">
{% include "users/includes/filter_email.html" %}
</div>
<div class="col-xs-12">
{% include "users/includes/filter_username.html" %}
</div>
</div>
</div>

View File

@ -35,6 +35,15 @@ class FilterEmail(BaseFilter):
return filtered
class FilterUsername(BaseFilter):
"""Filter users by username """
filter_type = 'username'
def _apply(self, data, filter_value):
filtered = [x for x in data if x['username'].find(filter_value) != -1]
return filtered
class IndexView(LoginRequiredMixin, TemplateView):
"""Index view for users"""
template_name = "users/index.html"
@ -65,6 +74,8 @@ class IndexView(LoginRequiredMixin, TemplateView):
.apply(users['users'])
users = FilterEmail(context, self.request.GET)\
.apply(users)
users = FilterUsername(context, self.request.GET)\
.apply(users)
return users, role_names
def get_context_data(self, **kwargs):