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
« 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
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']
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']
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'
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']
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'
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']