+
+ @classmethod
+ def get_from_user(cls, user):
+ lookups = ["{}@{}".format(user.username, domain) for domain in BASE_DOMAINS]
+ return cls.objects.filter(source__in=lookups)
+
+ @classmethod
+ def get_to_user(cls, user):
+ lookups = ["{}@{}".format(user.username, domain) for domain in BASE_DOMAINS]
+ return cls.objects.filter(destination__in=lookups)
+
+
+class AliasUsage(models.Model):
+ alias = models.ForeignKey(Alias, models.CASCADE, _('alias'))
+ date = models.DateField(_('date'), auto_now_add=True)
+ count = models.PositiveSmallIntegerField(_('count'))
+
+ class Meta:
+ unique_together = (('alias', 'date'),)
+ verbose_name = _('alias usage')
+ verbose_name_plural = _('alias usage')
+
+
+class SharedMailbox(models.Model):
+ name = models.CharField(_('name'), max_length=255, blank=True)
+ users = models.ManyToManyField('auth.User')
+
+ class Meta:
+ verbose_name = _('shared mailbox')
+ verbose_name_plural = _('shared mailboxes')
+ ordering = ('name',)
+
+ def __str__(self):
+ return self.name