You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.3 KiB
29 lines
1.3 KiB
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',)
|