from django.contrib import admin from apps.chat.models import RoomMessage, ChatMessage, MessageReadStatus @admin.register(MessageReadStatus) class MessageReadStatusAdmin(admin.ModelAdmin): list_display = ( 'user', 'message', 'is_read', 'read_at', ) @admin.register(RoomMessage) class RoomMessageAdmin(admin.ModelAdmin): list_display = ( 'name', 'room_type', 'course', 'initiator', 'recipient', 'created_at', 'unread_messages_count' ) list_filter = ('room_type', 'created_at', 'updated_at', 'course') search_fields = ('name', 'description', 'course__title', 'initiator__username', 'recipient__username') ordering = ('-created_at',) readonly_fields = ('created_at', 'updated_at') fieldsets = ( (None, { 'fields': ('name', 'description', 'room_type') }), ('Relations', { 'fields': ('course', 'initiator', 'recipient') }), ('Timestamps', { 'fields': ('created_at', 'updated_at') }), ) @admin.register(ChatMessage) class ChatMessageAdmin(admin.ModelAdmin): list_display = ( 'room', 'sender', 'content_type', 'content_size', 'sent_at', 'is_deleted' ) list_filter = ('content_type', 'is_deleted', 'sent_at', 'updated_at') search_fields = ('room__name', 'sender__username', 'content') ordering = ('-sent_at',) readonly_fields = ('sent_at', 'updated_at') fieldsets = ( (None, { 'fields': ('room', 'sender', 'content', 'content_type') }), ('Additional Info', { 'fields': ('content_size',) }), ('Status', { 'fields': ('is_deleted', 'deleted_at') }), ('Timestamps', { 'fields': ('sent_at', 'updated_at') }), )