You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.8 KiB
59 lines
1.8 KiB
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')
|
|
}),
|
|
)
|