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:20] + '...' content_display.short_description = 'محتوای پیام'