X-Git-Url: https://git.mdrn.pl/cas.git/blobdiff_plain/53c0f2de2c0447a5b7518e1a0ac2d09461930ae8..40ba7c29763bfe39154f8b6444bf8b3b4ad0c56c:/src/emails/models.py diff --git a/src/emails/models.py b/src/emails/models.py index 988b5a1..e64e423 100644 --- a/src/emails/models.py +++ b/src/emails/models.py @@ -1,5 +1,7 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ +from . import BASE_DOMAINS + class Alias(models.Model): @@ -18,3 +20,24 @@ class Alias(models.Model): def __str__(self): return '{} -> {}'.format(self.source, self.destination) + + @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')