Skip to content

Commit

Permalink
Do not double count aliasmailboxes with aliases
Browse files Browse the repository at this point in the history
  • Loading branch information
acasajus committed Apr 29, 2024
1 parent 015036b commit f0958d7
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions app/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2649,10 +2649,15 @@ def pgp_enabled(self) -> bool:
return False

def nb_alias(self):
return (
AliasMailbox.filter_by(mailbox_id=self.id).count()
+ Alias.filter_by(mailbox_id=self.id).count()
alias_ids = set(
am.alias_id
for am in AliasMailbox.filter_by(mailbox_id=self.id).values(
AliasMailbox.alias_id
)
)
for alias in Alias.filter_by(mailbox_id=self.id).values(Alias.id):
alias_ids.add(alias.id)
return len(alias_ids)

def is_proton(self) -> bool:
if (
Expand Down Expand Up @@ -2701,12 +2706,15 @@ def delete(cls, obj_id):

@property
def aliases(self) -> [Alias]:
ret = Alias.filter_by(mailbox_id=self.id).all()
ret = dict(
(alias.id, alias) for alias in Alias.filter_by(mailbox_id=self.id).all()
)

for am in AliasMailbox.filter_by(mailbox_id=self.id):
ret.append(am.alias)
if am.alias_id not in ret:
ret[am.alias_id] = am.alias

return ret
return list(ret.values())

@classmethod
def create(cls, **kw):
Expand Down

0 comments on commit f0958d7

Please sign in to comment.