From 7b2e4da87f3656a7ba650fd3e2d338f041a780d8 Mon Sep 17 00:00:00 2001 From: Son NK Date: Sun, 26 Apr 2020 13:04:27 +0200 Subject: [PATCH] Support alias filter --- app/api/serializer.py | 6 ++-- app/dashboard/templates/dashboard/index.html | 30 ++++++++++++++++---- app/dashboard/views/index.py | 12 ++++++-- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/app/api/serializer.py b/app/api/serializer.py index c2422ba0..47ba265c 100644 --- a/app/api/serializer.py +++ b/app/api/serializer.py @@ -113,7 +113,7 @@ def get_alias_infos_with_pagination(user, page_id=0, query=None) -> [AliasInfo]: def get_alias_infos_with_pagination_v2( - user, page_id=0, query=None, sort=None + user, page_id=0, query=None, sort=None, alias_filter=None ) -> [AliasInfo]: ret = [] latest_activity = func.max( @@ -139,8 +139,10 @@ def get_alias_infos_with_pagination_v2( or_(Alias.email.ilike(f"%{query}%"), Alias.note.ilike(f"%{query}%")) ) - if sort == "enabled": + if alias_filter == "enabled": q = q.filter(Alias.enabled) + elif alias_filter == "disabled": + q = q.filter(Alias.enabled == False) if sort == "old2new": q = q.order_by(Alias.created_at) diff --git a/app/dashboard/templates/dashboard/index.html b/app/dashboard/templates/dashboard/index.html index 424e2103..42adb0ec 100644 --- a/app/dashboard/templates/dashboard/index.html +++ b/app/dashboard/templates/dashboard/index.html @@ -21,7 +21,8 @@ {% block default_content %}
-
+ +
@@ -60,12 +61,13 @@
-
+ +
+ + + + {% if query or sort or filter %} + Reset + {% endif %}
diff --git a/app/dashboard/views/index.py b/app/dashboard/views/index.py index 3368f379..b595bc18 100644 --- a/app/dashboard/views/index.py +++ b/app/dashboard/views/index.py @@ -20,6 +20,7 @@ from app.models import ( def index(): query = request.args.get("query") or "" sort = request.args.get("sort") or "" + alias_filter = request.args.get("filter") or "" page = 0 if request.args.get("page"): @@ -59,6 +60,7 @@ def index(): highlight_alias_id=alias.id, query=query, sort=sort, + filter=alias_filter, ) ) else: @@ -75,6 +77,7 @@ def index(): highlight_alias_id=alias.id, query=query, sort=sort, + filter=alias_filter, ) ) @@ -93,7 +96,9 @@ def index(): LOG.error("alias %s has been added before to DeletedAlias", email) db.session.rollback() - return redirect(url_for("dashboard.index", query=query, sort=sort)) + return redirect( + url_for("dashboard.index", query=query, sort=sort, filter=alias_filter) + ) client_users = ( ClientUser.filter_by(user_id=current_user.id) @@ -118,7 +123,9 @@ def index(): return render_template( "dashboard/index.html", client_users=client_users, - alias_infos=get_alias_infos_with_pagination_v2(current_user, page, query, sort), + alias_infos=get_alias_infos_with_pagination_v2( + current_user, page, query, sort, alias_filter + ), highlight_alias_id=highlight_alias_id, query=query, AliasGeneratorEnum=AliasGeneratorEnum, @@ -126,4 +133,5 @@ def index(): show_intro=show_intro, page=page, sort=sort, + filter=alias_filter, )