Files
hossein-por-shop/backend/ticket/admin.py
T

53 lines
1.6 KiB
Python

from django.contrib import admin
from .models import *
from unfold.admin import ModelAdmin, TabularInline
from import_export.admin import ImportExportModelAdmin
from unfold.contrib.import_export.forms import ExportForm, ImportForm, SelectableFieldsExportForm
from unfold.contrib.forms.widgets import ArrayWidget, WysiwygWidget
from django.contrib.postgres.fields import ArrayField
class MessageInline(TabularInline):
model = Message
extra = 1
@admin.register(Ticket)
class TicketAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
search_fields = ['subject',]
list_filter = ['status']
compressed_fields = True
warn_unsaved_form = True
formfield_overrides = {
ArrayField: {
"widget": ArrayWidget,
}
}
list_display = ['subject', 'customer', 'admin', 'status', 'admin', 'status', 'created_at']
inlines = [MessageInline]
radio_fields = {'status': admin.VERTICAL}
@admin.register(Message)
class MessageAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
list_display = ['ticket', 'sender', 'content_display','created_at']
search_fields = ['content', ]
compressed_fields = True
warn_unsaved_form = True
formfield_overrides = {
models.TextField: {
"widget": WysiwygWidget,
},
ArrayField: {
"widget": ArrayWidget,
}
}
def content_display(self, obj):
return obj.content[0:35] + '...'
content_display.short_description = 'محتوای پیام'