46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
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(DiscountCode)
|
|
class DiscountCodeAdmin(ModelAdmin, ImportExportModelAdmin):
|
|
import_form_class = ImportForm
|
|
export_form_class = ExportForm
|
|
list_display = ['code', 'expiration_date', 'percent', 'quantity']
|
|
|
|
|
|
@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] |