Files
FullMoonBakehouse-archive-2025/api/apps/commerce/admin.py
2025-11-09 00:26:00 -06:00

88 lines
2.2 KiB
Python

from django.contrib import admin
from . import models
@admin.register(models.ProductCategory)
class ProductCategoryAdmin(admin.ModelAdmin):
list_display = ("name", "slug", "display_order", "is_active")
list_filter = ("is_active",)
search_fields = ("name", "slug")
ordering = ("display_order", "name")
prepopulated_fields = {"slug": ("name",)}
@admin.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
list_display = (
"name",
"category",
"price",
"inventory_quantity",
"max_per_order",
"is_active",
"is_featured",
)
list_filter = ("category", "is_active", "is_featured")
search_fields = ("name", "slug")
prepopulated_fields = {"slug": ("name",)}
autocomplete_fields = ("category",)
@admin.register(models.DeliveryZone)
class DeliveryZoneAdmin(admin.ModelAdmin):
list_display = ("label", "postal_code", "is_active")
list_filter = ("is_active",)
search_fields = ("label", "postal_code")
@admin.register(models.DeliveryOverrideCode)
class DeliveryOverrideCodeAdmin(admin.ModelAdmin):
list_display = ("code", "label", "max_uses", "usage_count", "is_active")
list_filter = ("is_active",)
search_fields = ("code", "label")
class OrderItemInline(admin.TabularInline):
model = models.OrderItem
extra = 0
readonly_fields = (
"product",
"product_name",
"product_slug",
"unit_price",
"quantity",
"line_subtotal",
)
@admin.register(models.Order)
class OrderAdmin(admin.ModelAdmin):
list_display = (
"id",
"customer_name",
"fulfillment_method",
"status",
"scheduled_date",
"total_amount",
"created_at",
)
list_filter = (
"fulfillment_method",
"status",
"scheduled_date",
"delivery_postal_code",
)
search_fields = ("id", "customer_name", "customer_email")
date_hierarchy = "scheduled_date"
inlines = [OrderItemInline]
readonly_fields = (
"subtotal_amount",
"tax_amount",
"delivery_fee_amount",
"discount_amount",
"total_amount",
"created_at",
"updated_at",
)