add alias search

This commit is contained in:
Son NK 2019-11-23 18:31:51 +01:00
parent a362a0f543
commit 28c8fa0f4d
2 changed files with 19 additions and 2 deletions

View File

@ -29,6 +29,13 @@
</div>
</div>
<div class="row">
<form method="get" class="col-3">
<input type="search" name="query" placeholder="Enter to search for alias" class="form-control"
value="{{ query }}">
</form>
</div>
<div class="row row-cards row-deck mt-4">
<div class="col-12">
<div class="card">

View File

@ -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,