From e04132bd24c739699a3b36e0533db2572b1d415a Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sat, 24 Jan 2015 20:58:20 +0100 Subject: [PATCH] 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 --- docs/code/managemails.rst | 7 +++++ gnuviechadmin/managemails/__init__.py | 5 ++++ gnuviechadmin/managemails/apps.py | 17 ++++++++++++ .../migrations/0003_auto_20150124_2029.py | 26 +++++++++++++++++++ gnuviechadmin/managemails/models.py | 19 +++++++++++--- 5 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 gnuviechadmin/managemails/apps.py create mode 100644 gnuviechadmin/managemails/migrations/0003_auto_20150124_2029.py diff --git a/docs/code/managemails.rst b/docs/code/managemails.rst index fef6faf..17c1763 100644 --- a/docs/code/managemails.rst +++ b/docs/code/managemails.rst @@ -11,6 +11,13 @@ :members: +:py:mod:`apps ` +----------------------------------- + +.. automodule:: managemails.apps + :members: + + :py:mod:`models ` ------------------------------------- diff --git a/gnuviechadmin/managemails/__init__.py b/gnuviechadmin/managemails/__init__.py index e69de29..75d9f0a 100644 --- a/gnuviechadmin/managemails/__init__.py +++ b/gnuviechadmin/managemails/__init__.py @@ -0,0 +1,5 @@ +""" +This app takes care of mailboxes and mail addresses. + +""" +default_app_config = 'managemails.apps.ManageMailsAppConfig' diff --git a/gnuviechadmin/managemails/apps.py b/gnuviechadmin/managemails/apps.py new file mode 100644 index 0000000..7a5067b --- /dev/null +++ b/gnuviechadmin/managemails/apps.py @@ -0,0 +1,17 @@ +""" +This module contains the :py:class:`django.apps.AppConfig` instance for the +:py:mod:`managemails` app. + +""" +from __future__ import unicode_literals +from django.apps import AppConfig +from django.utils.translation import ugettext_lazy as _ + + +class ManageMailsAppConfig(AppConfig): + """ + AppConfig for the :py:mod:`managemails` app. + + """ + name = 'managemails' + verbose_name = _('Mailboxes and Mail Addresses') diff --git a/gnuviechadmin/managemails/migrations/0003_auto_20150124_2029.py b/gnuviechadmin/managemails/migrations/0003_auto_20150124_2029.py new file mode 100644 index 0000000..d9c31a0 --- /dev/null +++ b/gnuviechadmin/managemails/migrations/0003_auto_20150124_2029.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('managemails', '0002_auto_20150117_1238'), + ] + + operations = [ + migrations.AlterField( + model_name='mailaddressmailbox', + name='mailaddress', + field=models.OneToOneField(primary_key=True, serialize=False, to='managemails.MailAddress', verbose_name='mailaddress'), + preserve_default=True, + ), + migrations.AlterField( + model_name='mailaddressmailbox', + name='mailbox', + field=models.ForeignKey(verbose_name='mailbox', to='managemails.Mailbox'), + preserve_default=True, + ), + ] diff --git a/gnuviechadmin/managemails/models.py b/gnuviechadmin/managemails/models.py index 0ffddde..6dd7ae3 100644 --- a/gnuviechadmin/managemails/models.py +++ b/gnuviechadmin/managemails/models.py @@ -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')