diff --git a/docs/changelog.rst b/docs/changelog.rst index 411c535..93f1b8c 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,9 @@ Changelog ========= +* :feature:`-` add admin list filtering and ordering for mail addresses and + mailboxes + * :release:`0.4.0 <2015-01-11>` * :feature:`-` add mysqltasks and pgsqltasks * :feature:`-` add :py:mod:`userdbs` app to allow management of user databases diff --git a/gnuviechadmin/managemails/admin.py b/gnuviechadmin/managemails/admin.py index d1ddbdb..f059fd4 100644 --- a/gnuviechadmin/managemails/admin.py +++ b/gnuviechadmin/managemails/admin.py @@ -112,7 +112,7 @@ class MailboxAdmin(ActivationChangeMixin, admin.ModelAdmin): actions = ['activate', 'deactivate'] list_display = ('username', 'osuser', 'active') - list_filter = ('active',) + list_filter = ('active', 'osuser') fieldsets = ( (None, { 'fields': ('osuser', 'username', 'password', 'active')}), @@ -157,8 +157,8 @@ class MailAddressForwardInline(admin.TabularInline): class MailAddressAdmin(ActivationChangeMixin, admin.ModelAdmin): actions = ['activate', 'deactivate'] - list_display = ('__str__', 'active') - list_filter = ('active',) + list_display = ('__str__', 'mailaddressmailbox', 'active') + list_filter = ('active', 'domain') inlines = [MailAddressMailboxInline, MailAddressForwardInline] diff --git a/gnuviechadmin/managemails/models.py b/gnuviechadmin/managemails/models.py index 737dda0..949d260 100644 --- a/gnuviechadmin/managemails/models.py +++ b/gnuviechadmin/managemails/models.py @@ -48,6 +48,7 @@ class Mailbox(ActivateAbleMixin, TimeStampedModel, models.Model): objects = MailboxManager() class Meta: + ordering = ['osuser', 'username'] verbose_name = _('Mailbox') verbose_name_plural = _('Mailboxes') @@ -72,6 +73,7 @@ class MailAddress(ActivateAbleMixin, TimeStampedModel, models.Model): domain = models.ForeignKey(MailDomain) class Meta: + ordering = ['domain', 'localpart'] unique_together = ('localpart', 'domain') verbose_name = _('Mail address') verbose_name_plural = _('Mail addresses') @@ -80,6 +82,7 @@ class MailAddress(ActivateAbleMixin, TimeStampedModel, models.Model): return "{0}@{1}".format(self.localpart, self.domain) +@python_2_unicode_compatible class MailAddressMailbox(TimeStampedModel, models.Model): mailaddress = models.OneToOneField(MailAddress, primary_key=True) mailbox = models.ForeignKey(Mailbox) @@ -87,6 +90,9 @@ class MailAddressMailbox(TimeStampedModel, models.Model): class Meta: unique_together = ('mailaddress', 'mailbox') + def __str__(self): + return self.mailbox.username + class MailAddressForward(TimeStampedModel, models.Model): mailaddress = models.ForeignKey(MailAddress)