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,)