add Mailbox.nb_email_log and aliases
This commit is contained in:
parent
582a971b80
commit
1101ba5afa
|
@ -1340,6 +1340,8 @@ class Mailbox(db.Model, ModelMixin):
|
||||||
|
|
||||||
__table_args__ = (db.UniqueConstraint("user_id", "email", name="uq_mailbox_user"),)
|
__table_args__ = (db.UniqueConstraint("user_id", "email", name="uq_mailbox_user"),)
|
||||||
|
|
||||||
|
user = db.relationship(User, foreign_keys=[user_id])
|
||||||
|
|
||||||
def nb_alias(self):
|
def nb_alias(self):
|
||||||
return (
|
return (
|
||||||
AliasMailbox.filter_by(mailbox_id=self.id).count()
|
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()
|
cls.query.filter(cls.id == obj_id).delete()
|
||||||
db.session.commit()
|
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):
|
def __repr__(self):
|
||||||
return f"<Mailbox {self.email}>"
|
return f"<Mailbox {self.email}>"
|
||||||
|
|
||||||
|
@ -1463,6 +1483,8 @@ class AliasMailbox(db.Model, ModelMixin):
|
||||||
db.ForeignKey(Mailbox.id, ondelete="cascade"), nullable=False
|
db.ForeignKey(Mailbox.id, ondelete="cascade"), nullable=False
|
||||||
)
|
)
|
||||||
|
|
||||||
|
alias = db.relationship(Alias)
|
||||||
|
|
||||||
|
|
||||||
class DirectoryMailbox(db.Model, ModelMixin):
|
class DirectoryMailbox(db.Model, ModelMixin):
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
|
|
Loading…
Reference in New Issue