Coverage for modules\email\admin.py: 100%

36 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-09-06 17:00 +0800

1from django.contrib import admin 

2from .models import EmailAccount, EmailFolder, EmailMessage, EmailAttachment, InternalEmail, InternalEmailRecipient 

3 

4 

5@admin.register(EmailAccount) 

6class EmailAccountAdmin(admin.ModelAdmin): 

7 list_display = ['email_address', 'provider', 'connection_type', 'user', 'is_primary', 'is_verified', 'last_sync_at'] 

8 list_filter = ['provider', 'connection_type', 'is_primary', 'is_verified'] 

9 search_fields = ['email_address', 'display_name', 'user__email'] 

10 readonly_fields = ['last_sync_at', 'created_at', 'updated_at'] 

11 

12 

13@admin.register(EmailFolder) 

14class EmailFolderAdmin(admin.ModelAdmin): 

15 list_display = ['name', 'account', 'folder_type', 'unread_count'] 

16 list_filter = ['folder_type', 'account__provider'] 

17 search_fields = ['name', 'account__email_address'] 

18 

19 

20@admin.register(EmailMessage) 

21class EmailMessageAdmin(admin.ModelAdmin): 

22 list_display = ['subject', 'from_address', 'folder', 'is_read', 'is_starred', 'sent_at'] 

23 list_filter = ['is_read', 'is_starred', 'is_draft', 'is_sent', 'folder__folder_type'] 

24 search_fields = ['subject', 'from_address', 'to_addresses'] 

25 readonly_fields = ['message_id', 'uid', 'created_at', 'updated_at'] 

26 date_hierarchy = 'sent_at' 

27 

28 

29@admin.register(EmailAttachment) 

30class EmailAttachmentAdmin(admin.ModelAdmin): 

31 list_display = ['file_name', 'message', 'content_type', 'size_bytes'] 

32 list_filter = ['content_type'] 

33 search_fields = ['file_name', 'message__subject'] 

34 

35 

36@admin.register(InternalEmail) 

37class InternalEmailAdmin(admin.ModelAdmin): 

38 list_display = ['subject', 'sender', 'sent_at'] 

39 search_fields = ['subject', 'sender__email'] 

40 readonly_fields = ['created_at', 'updated_at'] 

41 date_hierarchy = 'sent_at' 

42 

43 

44@admin.register(InternalEmailRecipient) 

45class InternalEmailRecipientAdmin(admin.ModelAdmin): 

46 list_display = ['email', 'recipient', 'is_read', 'read_at'] 

47 list_filter = ['is_read'] 

48 search_fields = ['email__subject', 'recipient__email']