From fc167b8b419f02170df5595ec6ca853bb3ec36cb Mon Sep 17 00:00:00 2001 From: Son NK Date: Mon, 10 Feb 2020 23:20:25 +0700 Subject: [PATCH] Display alias mailbox on alias page --- app/api/views/alias.py | 2 +- app/dashboard/templates/dashboard/index.html | 6 ++++++ app/dashboard/views/index.py | 14 +++++++++----- app/models.py | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/api/views/alias.py b/app/api/views/alias.py index 3effd83f..83e9a5d4 100644 --- a/app/api/views/alias.py +++ b/app/api/views/alias.py @@ -34,7 +34,7 @@ def get_aliases(): except (ValueError, TypeError): return jsonify(error="page_id must be provided in request query"), 400 - aliases: [AliasInfo] = get_alias_info(user.id, page_id=page_id) + aliases: [AliasInfo] = get_alias_info(user, page_id=page_id) return ( jsonify( diff --git a/app/dashboard/templates/dashboard/index.html b/app/dashboard/templates/dashboard/index.html index 2a266561..8a185921 100644 --- a/app/dashboard/templates/dashboard/index.html +++ b/app/dashboard/templates/dashboard/index.html @@ -134,6 +134,12 @@
+ {% if alias_info.mailbox != None %} +
+ Owned by {{ alias_info.mailbox.email }} mailbox +
+ {% endif %} +

Created {{ gen_email.created_at | dt }} {% if alias_info.highlight %} diff --git a/app/dashboard/views/index.py b/app/dashboard/views/index.py index 71cdfe4a..f8a1b076 100644 --- a/app/dashboard/views/index.py +++ b/app/dashboard/views/index.py @@ -16,12 +16,14 @@ from app.models import ( ForwardEmailLog, DeletedAlias, AliasGeneratorEnum, + Mailbox, ) class AliasInfo: id: int gen_email: GenEmail + mailbox: Mailbox nb_forward: int nb_blocked: int nb_reply: int @@ -154,7 +156,7 @@ def index(): return render_template( "dashboard/index.html", client_users=client_users, - aliases=get_alias_info(current_user.id, query, highlight_gen_email_id), + aliases=get_alias_info(current_user, query, highlight_gen_email_id), highlight_gen_email_id=highlight_gen_email_id, query=query, AliasGeneratorEnum=AliasGeneratorEnum, @@ -162,7 +164,7 @@ def index(): def get_alias_info( - user_id, query=None, highlight_gen_email_id=None, page_id=None + user, query=None, highlight_gen_email_id=None, page_id=None ) -> [AliasInfo]: if query: query = query.strip().lower() @@ -170,12 +172,13 @@ def get_alias_info( aliases = {} # dict of alias and AliasInfo q = ( - db.session.query(GenEmail, ForwardEmail, ForwardEmailLog) + db.session.query(GenEmail, ForwardEmail, ForwardEmailLog, Mailbox) .join(ForwardEmail, GenEmail.id == ForwardEmail.gen_email_id, isouter=True) .join( ForwardEmailLog, ForwardEmail.id == ForwardEmailLog.forward_id, isouter=True ) - .filter(GenEmail.user_id == user_id) + .join(Mailbox, GenEmail.mailbox_id == Mailbox.id, isouter=True) + .filter(GenEmail.user_id == user.id) .order_by(GenEmail.created_at.desc()) ) @@ -188,7 +191,7 @@ def get_alias_info( if page_id is not None: q = q.limit(PAGE_LIMIT).offset(page_id * PAGE_LIMIT) - for ge, fe, fel in q: + for ge, fe, fel, mb in q: if ge.email not in aliases: aliases[ge.email] = AliasInfo( id=ge.id, @@ -197,6 +200,7 @@ def get_alias_info( nb_forward=0, nb_reply=0, highlight=ge.id == highlight_gen_email_id, + mailbox=mb, ) alias_info = aliases[ge.email] diff --git a/app/models.py b/app/models.py index e96a8abc..3faeb450 100644 --- a/app/models.py +++ b/app/models.py @@ -484,7 +484,7 @@ class GenEmail(db.Model, ModelMixin): ) user = db.relationship(User) - mailbox = db.relationship('Mailbox') + mailbox = db.relationship("Mailbox") @classmethod def create_new(cls, user_id, prefix, note=None):