from django.contrib import admin from .models import ( Email, EmailFolder, EmailAttachment, EmailThread, EmailTemplate, EmailSignature, EmailRule, EmailSearch ) @admin.register(EmailFolder) class EmailFolderAdmin(admin.ModelAdmin): list_display = ('name', 'user', 'folder_type', 'is_system', 'created_at') list_filter = ('folder_type', 'is_system', 'created_at') search_fields = ('name', 'user__email') raw_id_fields = ('user', 'parent') @admin.register(Email) class EmailAdmin(admin.ModelAdmin): list_display = ('subject', 'from_email', 'user', 'folder', 'status', 'is_read', 'created_at') list_filter = ('status', 'is_read', 'is_starred', 'is_important', 'folder', 'created_at') search_fields = ('subject', 'from_email', 'body_text', 'user__email') raw_id_fields = ('user', 'folder') readonly_fields = ('uuid', 'message_id', 'created_at', 'updated_at') date_hierarchy = 'created_at' fieldsets = ( ('Basic Information', { 'fields': ('user', 'folder', 'subject', 'from_email') }), ('Recipients', { 'fields': ('to_emails', 'cc_emails', 'bcc_emails', 'reply_to') }), ('Content', { 'fields': ('body_text', 'body_html') }), ('Metadata', { 'fields': ('message_id', 'in_reply_to', 'references', 'priority', 'status') }), ('Flags', { 'fields': ('is_read', 'is_starred', 'is_important', 'is_encrypted') }), ('Timestamps', { 'fields': ('sent_at', 'received_at', 'created_at', 'updated_at') }), ) @admin.register(EmailAttachment) class EmailAttachmentAdmin(admin.ModelAdmin): list_display = ('filename', 'email', 'content_type', 'size', 'created_at') list_filter = ('content_type', 'is_inline', 'created_at') search_fields = ('filename', 'email__subject') raw_id_fields = ('email',) @admin.register(EmailThread) class EmailThreadAdmin(admin.ModelAdmin): list_display = ('subject', 'participants', 'last_activity', 'created_at') list_filter = ('created_at', 'last_activity') search_fields = ('subject', 'participants') filter_horizontal = ('emails',) @admin.register(EmailTemplate) class EmailTemplateAdmin(admin.ModelAdmin): list_display = ('name', 'user', 'is_public', 'created_at') list_filter = ('is_public', 'created_at') search_fields = ('name', 'subject', 'user__email') raw_id_fields = ('user',) @admin.register(EmailSignature) class EmailSignatureAdmin(admin.ModelAdmin): list_display = ('name', 'user', 'is_default', 'created_at') list_filter = ('is_default', 'created_at') search_fields = ('name', 'user__email') raw_id_fields = ('user',) @admin.register(EmailRule) class EmailRuleAdmin(admin.ModelAdmin): list_display = ('name', 'user', 'is_active', 'condition_field', 'action', 'created_at') list_filter = ('is_active', 'condition_field', 'action', 'created_at') search_fields = ('name', 'user__email') raw_id_fields = ('user',) @admin.register(EmailSearch) class EmailSearchAdmin(admin.ModelAdmin): list_display = ('name', 'user', 'created_at') list_filter = ('created_at',) search_fields = ('name', 'user__email') raw_id_fields = ('user',)