diff --git a/shop/admin.py b/shop/admin.py index 86a55bf..bce87cf 100644 --- a/shop/admin.py +++ b/shop/admin.py @@ -13,6 +13,7 @@ from .models import ( @admin.register(Product) class ProductAdmin(admin.ModelAdmin): list_display = ("title", "ordering_value", "price", "cut") + search_fields = ["title", "description"] # Enable search for autocomplete @admin.register(Color) class ColorAdmin(admin.ModelAdmin): @@ -41,8 +42,22 @@ class SizeAdmin(admin.ModelAdmin): class OrderItemInline(admin.TabularInline): model = OrderItem - extra = 0 - readonly_fields = ('product', 'quantity', 'color', 'size', 'price') + extra = 1 # Show one extra row for adding new items + autocomplete_fields = ['product'] # Enable product search + fields = ('product', 'quantity', 'color', 'size', 'price') + +@admin.register(OrderItem) +class OrderItemAdmin(admin.ModelAdmin): + list_display = ('order', 'product', 'quantity', 'color', 'size', 'price', 'get_total_price') + list_filter = ('product', 'color', 'size', 'order__status') + search_fields = ('order__id', 'product__title', 'order__user__email', 'order__guest_user__email') + autocomplete_fields = ['order', 'product'] + list_editable = ('quantity', 'price') + + def get_total_price(self, obj): + return obj.get_total_price() + get_total_price.short_description = 'Total Price' + get_total_price.admin_order_field = 'price' # Allows column to be sortable @admin.register(ShippingAddress) class ShippingAddressAdmin(admin.ModelAdmin): @@ -61,6 +76,7 @@ class OrderAdmin(admin.ModelAdmin): readonly_fields = ('shipping_address_details',) actions = ['change_order_status'] autocomplete_fields = ['user'] # Add this line for user search functionality + search_fields = ['id', 'user__email', 'user__username', 'guest_user__email'] # Add this line def get_email(self, obj): if obj.guest_user: