from django.contrib import admin from .models import ( Conversation, ConversationParticipant, Message, MessageContent, MessageReadStatus, MessageAttachment ) class ConversationParticipantInline(admin.TabularInline): model = ConversationParticipant extra = 0 @admin.register(Conversation) class ConversationAdmin(admin.ModelAdmin): list_display = ('id', 'last_message_at', 'created_at', 'is_active') list_filter = ('created_at', 'is_active') inlines = [ConversationParticipantInline] class MessageContentInline(admin.StackedInline): model = MessageContent extra = 0 class MessageAttachmentInline(admin.TabularInline): model = MessageAttachment extra = 0 @admin.register(Message) class MessageAdmin(admin.ModelAdmin): list_display = ('sender', 'conversation', 'created_at', 'is_active') list_filter = ('created_at', 'is_active') search_fields = ('sender__email',) inlines = [MessageContentInline, MessageAttachmentInline] @admin.register(MessageReadStatus) class MessageReadStatusAdmin(admin.ModelAdmin): list_display = ('message', 'user', 'read_at') list_filter = ('read_at',)