from django.contrib import admin from .models import Inquiry, LiveChat, ChatMessage, Notification class ChatMessageInline(admin.TabularInline): model = ChatMessage extra = 1 @admin.register(Inquiry) class InquiryAdmin(admin.ModelAdmin): list_display = ('name', 'email', 'subject', 'created_at') @admin.register(LiveChat) class LiveChatAdmin(admin.ModelAdmin): list_display = ('user', 'active', 'created_at', 'last_message') inlines = [ChatMessageInline] # Use the class name, not a string @admin.register(ChatMessage) class ChatMessageAdmin(admin.ModelAdmin): list_display = ('chat', 'sender', 'message', 'timestamp') @admin.register(Notification) class NotificationAdmin(admin.ModelAdmin): list_display = ('message', 'created_at', 'read') actions = ['mark_as_read'] def get_queryset(self, request): qs = super().get_queryset(request) return qs.filter(read=False) def mark_as_read(self, request, queryset): queryset.update(read=True) mark_as_read.short_description = 'Mark selected notifications as read'