93 lines
3.2 KiB
Python
93 lines
3.2 KiB
Python
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',)
|