from django.contrib import admin from .models import Notification, NotificationDelivery class NotificationDeliveryInline(admin.TabularInline): model = NotificationDelivery extra = 0 readonly_fields = ["channel", "status", "sent_at", "error_detail", "created_at"] @admin.register(Notification) class NotificationAdmin(admin.ModelAdmin): list_display = ["title", "event_type", "recipient", "is_read", "created_at"] list_filter = ["event_type"] search_fields = ["title", "recipient__email", "idempotency_key"] readonly_fields = ["id", "idempotency_key", "created_at", "read_at"] inlines = [NotificationDeliveryInline] @admin.display(boolean=True) def is_read(self, obj): return obj.is_read @admin.register(NotificationDelivery) class NotificationDeliveryAdmin(admin.ModelAdmin): list_display = ["notification", "channel", "status", "sent_at", "created_at"] list_filter = ["channel", "status"] readonly_fields = ["id", "created_at"]