From d7583f1733368470f606a2abe42511a076173ce0 Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Fri, 21 Aug 2020 20:39:18 +0200 Subject: [PATCH] handle case where alias does not have any activity in get_alias_infos_with_pagination_v3 --- app/api/serializer.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/api/serializer.py b/app/api/serializer.py index 167f5480..2f820c43 100644 --- a/app/api/serializer.py +++ b/app/api/serializer.py @@ -232,13 +232,16 @@ def get_alias_infos_with_pagination_v3( .subquery() ) - q = db.session.query( - Alias, Contact, EmailLog, sub.c.nb_reply, sub.c.nb_blocked, sub.c.nb_forward - ).filter( - Alias.id == sub.c.id, - Alias.id == Contact.alias_id, - Contact.id == EmailLog.contact_id, - EmailLog.created_at == sub.c.latest, + q = ( + db.session.query( + Alias, Contact, EmailLog, sub.c.nb_reply, sub.c.nb_blocked, sub.c.nb_forward + ) + .join(Contact, Alias.id == Contact.alias_id, isouter=True) + .join(EmailLog, Contact.id == EmailLog.contact_id, isouter=True) + .filter(Alias.id == sub.c.id) + .filter( + or_(EmailLog.created_at == sub.c.latest, Alias.created_at == sub.c.latest) + ) ) if query: