29 lines
1.9 KiB
Python
29 lines
1.9 KiB
Python
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_display",)
|
|
exclude=("allowed_tags",)
|
|
|
|
@admin.display(description='Allowed tags / تگهای مجاز')
|
|
def allowed_tags_display(self, obj):
|
|
return obj.supported_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()<len(NotificationPolicy.Key.values)
|