improve managemails app

- add managemails.apps to give a more meaningful title in the admin site
- add verbose names to MailAddressMailbox fields
- implement managemails.models.Mailbox.get_mailaddresses and a corresponding
  property mailaddresses
This commit is contained in:
Jan Dittberner 2015-01-24 20:58:20 +01:00
parent 47abaa6d62
commit e04132bd24
5 changed files with 71 additions and 3 deletions

View file

@ -63,7 +63,7 @@ class MailboxManager(models.Manager):
@python_2_unicode_compatible
class Mailbox(ActivateAbleMixin, TimeStampedModel, models.Model):
class Mailbox(ActivateAbleMixin, TimeStampedModel):
"""
This is the model class for a mailbox.
@ -96,6 +96,18 @@ class Mailbox(ActivateAbleMixin, TimeStampedModel, models.Model):
delete_file_mailbox.delay(self.osuser.username, self.username).get()
super(Mailbox, self).delete(*args, **kwargs)
def get_mailaddresses(self):
"""
Get a list of mail addresses assigned to this mailbox.
"""
addrs = [
mbadr.mailaddress for mbadr in
self.mailaddressmailbox_set.all()
]
return addrs
mailaddresses = property(get_mailaddresses)
def __str__(self):
return self.username
@ -125,8 +137,9 @@ class MailAddressMailbox(TimeStampedModel, models.Model):
This is the model class to assign a mail address to a mailbox.
"""
mailaddress = models.OneToOneField(MailAddress, primary_key=True)
mailbox = models.ForeignKey(Mailbox)
mailaddress = models.OneToOneField(
MailAddress, verbose_name=_('mailaddress'), primary_key=True)
mailbox = models.ForeignKey(Mailbox, verbose_name=_('mailbox'))
class Meta:
unique_together = ('mailaddress', 'mailbox')