from django.contrib import admin from .models import GroupDispatch,SLAConfig,Ticket,TicketAccessGrant,TicketCategory,TicketEvent,TicketReadState,TicketTag @admin.register(Ticket) class TicketAdmin(admin.ModelAdmin): list_display=("ticket_number","subject","owning_unit","delivery_type","status","priority","owner","last_activity_at") list_filter=("owning_unit","assigned_unit","delivery_type","status","priority","category","tags") search_fields=("ticket_number","subject","customer__mobile","customer__customer_profile__organization_name") filter_horizontal=("tags",) class DispatchTicketInline(admin.TabularInline): model = Ticket extra = 0 fields = ("ticket_number", "customer", "status", "last_activity_at") readonly_fields = fields can_delete = False def has_add_permission(self, request, obj=None): return False @admin.register(GroupDispatch) class GroupDispatchAdmin(admin.ModelAdmin): list_display = ("subject", "unit", "contact_group", "status", "recipient_count", "dispatched_at") list_filter = ("unit", "status", "contact_group") search_fields = ("subject", "created_by__username") readonly_fields = ("recipient_count", "dispatched_at") inlines = (DispatchTicketInline,) @admin.register(TicketCategory) class TicketCategoryAdmin(admin.ModelAdmin): list_display=("title","unit","sort_order","show_in_customer_form","is_active") list_filter=("unit","show_in_customer_form","is_active") search_fields=("title","description","search_keywords","unit__name","unit__search_keywords") list_editable=("is_active","show_in_customer_form","sort_order") admin.site.register([SLAConfig,TicketAccessGrant,TicketEvent,TicketReadState,TicketTag])