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

1from django.contrib import admin 

2from django.utils.translation import gettext_lazy as _ 

3 

4from .models import ListAlias, MailingList, VerbatimAddress 

5 

6 

7class VerbatimAddressInline(admin.TabularInline): 

8 """Class to inline show the VerbatimAddress.""" 

9 

10 model = VerbatimAddress 

11 

12 

13class ListAliasInline(admin.TabularInline): 

14 """Class to inline show the ListAlias.""" 

15 

16 model = ListAlias 

17 

18 

19@admin.register(MailingList) 

20class MailingListAdmin(admin.ModelAdmin): 

21 """Class to show the mailing lists in the admin.""" 

22 

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"] 

29 

30 def alias_names(self, obj): 

31 """Return list of aliases of obj.""" 

32 return [x.alias for x in obj.aliases.all()] 

33 

34 alias_names.short_description = _("List aliases")