Files
shoppy/shop/admin.py
T
2026-07-23 11:37:37 +02:00

143 lines
3.3 KiB
Python

from django.contrib import admin
from unfold.admin import ModelAdmin
from shop.models import (
Brand,
Cart,
CartItem,
CustomerAddress,
Order,
OrderLine,
Product,
ProductAttribute,
ProductAttributeValue,
ProductBatch,
ProductCategory,
ProductPrice,
ProductImage,
ProductVariant,
Provider,
ShippingMethod,
ShopSettings,
Tag,
Tax,
)
class ProductPriceInline(admin.TabularInline):
model = ProductPrice
fk_name = 'variant'
fields = ('price', 'tax', 'current')
extra = 1
# Register your models here.
@admin.register(Product)
class ProductAdmin(ModelAdmin):
search_fields = ('name',)
list_display = ('id', 'name', 'stock')
@admin.register(ProductPrice)
class ProductPriceAdmin(ModelAdmin):
search_fields = ('product',)
autocomplete_fields = ('product',)
list_display = ('id', 'product', 'price', 'date', 'tax')
@admin.register(Tax)
class TaxAdmin(ModelAdmin):
list_display = ('code', 'value')
@admin.register(OrderLine)
class OrderLineAdmin(ModelAdmin):
autocomplete_fields = ('product', 'variant')
list_display = ('id', 'product', 'variant', 'price', 'quantity')
@admin.register(Order)
class OrderAdmin(ModelAdmin):
list_display = ('id',)
@admin.register(Provider)
class ProviderAdmin(ModelAdmin):
list_display = ('vat_id', 'name')
@admin.register(Tag)
class TagAdmin(ModelAdmin):
list_display = ('id', 'name')
@admin.register(Brand)
class BrandAdmin(ModelAdmin):
list_display = ('id', 'name')
@admin.register(ProductBatch)
class ProductBatchAdmin(ModelAdmin):
list_display = ('id', 'product', 'quantity', 'provider')
@admin.register(Cart)
class CartAdmin(ModelAdmin):
list_display = ('uuid', 'user', 'creation_date')
@admin.register(CartItem)
class CartItemAdmin(ModelAdmin):
list_display = ('id', 'cart', 'product', 'variant', 'quantity')
@admin.register(ShippingMethod)
class ShippingMethodAdmin(ModelAdmin):
list_display = ('id', 'name', 'description')
@admin.register(CustomerAddress)
class CustomerAddressAdmin(ModelAdmin):
list_display = ('id', 'user', 'vat_id', 'address', 'address_state', 'address_zip')
def get_queryset(self, request):
qs = super().get_queryset(request)
return qs.filter(hidden=False)
@admin.register(ProductCategory)
class ProductCategoryAdmin(ModelAdmin):
list_display = ('id', 'name', 'parent', 'promoted', 'hidden', 'show_in_navbar')
@admin.register(ShopSettings)
class ShopSettingsAdmin(ModelAdmin):
list_display = ('id', 'merchant_code', 'currency_code', 'terminal')
@admin.register(ProductImage)
class ProductImageAdmin(ModelAdmin):
list_display = ('id', 'original')
@admin.register(ProductAttribute)
class ProductAttributeAdmin(ModelAdmin):
search_fields = ('name',)
list_display = ('id', 'name')
@admin.register(ProductAttributeValue)
class ProductAttributeValueAdmin(ModelAdmin):
autocomplete_fields = ('attribute',)
search_fields = ('value',)
list_display = ('id', 'attribute', 'value')
@admin.register(ProductVariant)
class ProductVariantAdmin(ModelAdmin):
autocomplete_fields = ('product',)
filter_horizontal = ('attribute_values',)
search_fields = ('sku', 'product__name')
list_display = ('id', 'product', 'sku', 'stock')
inlines = (ProductPriceInline,)