From 28c8fa0f4d21f7a76f6816ffe239cbb94ab4faff Mon Sep 17 00:00:00 2001 From: Son NK Date: Sat, 23 Nov 2019 18:31:51 +0100 Subject: [PATCH] add alias search --- app/dashboard/templates/dashboard/index.html | 7 +++++++ app/dashboard/views/index.py | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/dashboard/templates/dashboard/index.html b/app/dashboard/templates/dashboard/index.html index ef178405..0bd9b467 100644 --- a/app/dashboard/templates/dashboard/index.html +++ b/app/dashboard/templates/dashboard/index.html @@ -29,6 +29,13 @@ +
+
+ +
+
+
diff --git a/app/dashboard/views/index.py b/app/dashboard/views/index.py index c890c184..7d0acb3c 100644 --- a/app/dashboard/views/index.py +++ b/app/dashboard/views/index.py @@ -33,6 +33,8 @@ def index(): if highlight_gen_email_id: del session[HIGHLIGHT_GEN_EMAIL_ID] + query = request.args.get("query") or "" + # User generates a new email if request.method == "POST": if request.form.get("form-name") == "trigger-email": @@ -113,12 +115,13 @@ def index(): return render_template( "dashboard/index.html", client_users=client_users, - aliases=get_alias_info(current_user.id, highlight_gen_email_id), + aliases=get_alias_info(current_user.id, query, highlight_gen_email_id), highlight_gen_email_id=highlight_gen_email_id, + query=query, ) -def get_alias_info(user_id, highlight_gen_email_id=None) -> [AliasInfo]: +def get_alias_info(user_id, query=None, highlight_gen_email_id=None) -> [AliasInfo]: aliases = {} # dict of alias and AliasInfo q = db.session.query(GenEmail, ForwardEmail, ForwardEmailLog).filter( GenEmail.user_id == user_id, @@ -126,6 +129,9 @@ def get_alias_info(user_id, highlight_gen_email_id=None) -> [AliasInfo]: ForwardEmail.id == ForwardEmailLog.forward_id, ) + if query: + q = q.filter(GenEmail.email.contains(query)) + for ge, fe, fel in q: if ge.email not in aliases: aliases[ge.email] = AliasInfo( @@ -150,6 +156,10 @@ def get_alias_info(user_id, highlight_gen_email_id=None) -> [AliasInfo]: .filter(GenEmail.email.notin_(aliases.keys())) .filter(GenEmail.user_id == user_id) ) + + if query: + q = q.filter(GenEmail.email.contains(query)) + for ge in q: aliases[ge.email] = AliasInfo( gen_email=ge,