This commit is contained in:
Iliyan Angelov
2025-09-14 23:24:25 +03:00
commit c67067a2a4
71311 changed files with 6800714 additions and 0 deletions

92
emails/admin.py Normal file
View File

@@ -0,0 +1,92 @@
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',)