codescraftman / contacts / admin.py
admin.py
Raw
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'