from django.contrib import admin from .models import AnnouncementJob,NotificationJob,NotificationPolicy,SMSTemplate @admin.register(NotificationJob) class NotificationJobAdmin(admin.ModelAdmin): list_display=("channel","event_type","status","attempts","provider_status_code","delivery_status","delivery_retry_source","provider_message_id","created_at"); list_filter=("channel","status","delivery_status","delivery_is_final"); readonly_fields=("provider_message_id","provider_status_code","delivery_status_code","delivery_description","delivery_checked_at","delivery_is_final","delivery_retry_source","dedupe_key","created_at","sent_at") @admin.register(AnnouncementJob) class AnnouncementJobAdmin(admin.ModelAdmin): list_display = ("source", "ticket", "message", "requested_by", "status", "attempts", "next_attempt_at", "sent_at") list_filter = ("source", "status") search_fields = ("ticket__ticket_number", "message__ticket__ticket_number", "message__ticket__customer__mobile") readonly_fields = ("source", "ticket", "message", "requested_by", "status", "attempts", "next_attempt_at", "idempotency_key", "last_error", "created_at", "sent_at") def has_add_permission(self, request): return False @admin.register(SMSTemplate) class SMSTemplateAdmin(admin.ModelAdmin): list_display=("event_type","unit","title","is_active","updated_at") list_filter=("unit","is_active","event_type") readonly_fields=("allowed_tags",) @admin.register(NotificationPolicy) class NotificationPolicyAdmin(admin.ModelAdmin): list_display=("key","quiet_period_seconds","is_active","updated_at") def has_add_permission(self,request): return NotificationPolicy.objects.count()