from django.contrib import admin from .models import * from unfold.admin import TabularInline, StackedInline 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 from utils.admin import ModelAdmin class OrderItemModelInline(StackedInline): model = OrderItemModel extra = 0 max_num = 0 def has_delete_permission(self, request, obj=None): return False def get_readonly_fields(self, request, obj=None): return [field.name for field in self.model._meta.fields] @admin.register(OrderModel) class OrderAdmin(ModelAdmin, ImportExportModelAdmin): import_form_class = ImportForm export_form_class = ExportForm list_filter = ['is_paid', 'status'] list_display = ['user', 'is_paid', 'status', 'discount_code', 'address'] readonly_fields = ('created_at',) compressed_fields = True warn_unsaved_form = True formfield_overrides = { ArrayField: { "widget": ArrayWidget, } } inlines = [OrderItemModelInline]