1
0
forked from erp-dev/erp
Files
erpnew/notifier/admin.py
2026-04-14 00:03:22 +08:00

53 lines
1.5 KiB
Python

from django.contrib import admin
from notifier.models import Notifier, NotifierRoute
class NotifierRouteInline(admin.TabularInline):
model = NotifierRoute
extra = 0
fields = ["event_key", "mission_category", "is_enabled", "description"]
@admin.register(Notifier)
class NotifierAdmin(admin.ModelAdmin):
inlines = [NotifierRouteInline]
list_display = [
"id",
"merchant",
"name",
"channel",
"template_key",
"is_enabled",
"created_at",
]
list_filter = ["merchant", "channel", "is_enabled", "created_at"]
search_fields = ["name", "template_key", "description"]
readonly_fields = ["created_at", "updated_at"]
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for obj in formset.deleted_objects:
obj.delete()
for instance in instances:
if isinstance(instance, NotifierRoute):
instance.merchant = form.instance.merchant
instance.save()
formset.save_m2m()
@admin.register(NotifierRoute)
class NotifierRouteAdmin(admin.ModelAdmin):
list_display = [
"id",
"merchant",
"notifier",
"event_key",
"mission_category",
"is_enabled",
"created_at",
]
list_filter = ["merchant", "event_key", "mission_category", "is_enabled", "created_at"]
search_fields = ["notifier__name", "description"]
readonly_fields = ["created_at", "updated_at"]