From 1101ba5afaf2d20d9fe5ee1f791231ad02c7883d Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Tue, 9 Jun 2020 17:02:45 +0200 Subject: [PATCH] add Mailbox.nb_email_log and aliases --- app/models.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/app/models.py b/app/models.py index 7cebed23..9acfbc22 100644 --- a/app/models.py +++ b/app/models.py @@ -1340,6 +1340,8 @@ class Mailbox(db.Model, ModelMixin): __table_args__ = (db.UniqueConstraint("user_id", "email", name="uq_mailbox_user"),) + user = db.relationship(User, foreign_keys=[user_id]) + def nb_alias(self): return ( AliasMailbox.filter_by(mailbox_id=self.id).count() @@ -1369,6 +1371,24 @@ class Mailbox(db.Model, ModelMixin): cls.query.filter(cls.id == obj_id).delete() db.session.commit() + def nb_email_log(self): + return ( + db.session.query(EmailLog) + .join(Contact, EmailLog.contact_id == Contact.id) + .join(Alias, Alias.id == Contact.alias_id) + .filter(Alias.mailbox_id == self.id) + .count() + ) + + @property + def aliases(self) -> [Alias]: + ret = Alias.filter_by(mailbox_id=self.id).all() + + for am in AliasMailbox.filter_by(mailbox_id=self.id): + ret.append(am.alias) + + return ret + def __repr__(self): return f"" @@ -1463,6 +1483,8 @@ class AliasMailbox(db.Model, ModelMixin): db.ForeignKey(Mailbox.id, ondelete="cascade"), nullable=False ) + alias = db.relationship(Alias) + class DirectoryMailbox(db.Model, ModelMixin): __table_args__ = (