Coverage for website/mailinglists/admin.py: 94.44%
18 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django.contrib import admin
2from django.utils.translation import gettext_lazy as _
4from .models import ListAlias, MailingList, VerbatimAddress
7class VerbatimAddressInline(admin.TabularInline):
8 """Class to inline show the VerbatimAddress."""
10 model = VerbatimAddress
13class ListAliasInline(admin.TabularInline):
14 """Class to inline show the ListAlias."""
16 model = ListAlias
19@admin.register(MailingList)
20class MailingListAdmin(admin.ModelAdmin):
21 """Class to show the mailing lists in the admin."""
23 filter_horizontal = ("members",)
24 inlines = (VerbatimAddressInline, ListAliasInline)
25 list_display = ("name", "alias_names", "moderated", "description")
26 readonly_fields = ("active_gsuite_name",)
27 search_fields = ["name", "aliases__alias", "description"]
28 ordering = ["name"]
30 def alias_names(self, obj):
31 """Return list of aliases of obj."""
32 return [x.alias for x in obj.aliases.all()]
34 alias_names.short_description = _("List aliases")