add Mailbox.nb_email_log and aliases

This commit is contained in:
Son NK 2020-06-09 17:02:45 +02:00
parent 582a971b80
commit 1101ba5afa
1 changed files with 22 additions and 0 deletions

View File

@ -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"<Mailbox {self.email}>"
@ -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__ = (