from django.contrib import admin from unfold.admin import ModelAdmin, TabularInline from apps.tickets.models import Ticket, TicketMessage class TicketMessageInline(TabularInline): model = TicketMessage extra = 1 fields = ('sender', 'is_official_response', 'department_label', 'content', 'attachment', 'created_at') readonly_fields = ('created_at',) @admin.register(Ticket) class TicketAdmin(ModelAdmin): list_display = ('tracking_code', 'subject', 'category', 'priority', 'status', 'user', 'institution', 'satisfaction_rating', 'created_at') list_display_links = ('tracking_code', 'subject', 'user', 'institution') list_filter = ('status', 'priority', 'category', 'created_at') search_fields = ('tracking_code', 'subject', 'user__email', 'user__fullname', 'institution__name') readonly_fields = ('tracking_code', 'created_at', 'updated_at', 'closed_at') inlines = [TicketMessageInline] @admin.register(TicketMessage) class TicketMessageAdmin(ModelAdmin): list_display = ('ticket', 'sender', 'is_official_response', 'department_label', 'created_at') list_display_links = ('ticket', 'sender') list_filter = ('is_official_response', 'created_at') search_fields = ('ticket__tracking_code', 'content', 'sender__email', 'sender__fullname') readonly_fields = ('created_at',)