update shop admin panel

sync_v2
Razmig Sarkissian 5 months ago
parent f56b6a3a9f
commit b346fdcfe0
  1. 20
      shop/admin.py

@ -13,6 +13,7 @@ from .models import (
@admin.register(Product) @admin.register(Product)
class ProductAdmin(admin.ModelAdmin): class ProductAdmin(admin.ModelAdmin):
list_display = ("title", "ordering_value", "price", "cut") list_display = ("title", "ordering_value", "price", "cut")
search_fields = ["title", "description"] # Enable search for autocomplete
@admin.register(Color) @admin.register(Color)
class ColorAdmin(admin.ModelAdmin): class ColorAdmin(admin.ModelAdmin):
@ -41,8 +42,22 @@ class SizeAdmin(admin.ModelAdmin):
class OrderItemInline(admin.TabularInline): class OrderItemInline(admin.TabularInline):
model = OrderItem model = OrderItem
extra = 0 extra = 1 # Show one extra row for adding new items
readonly_fields = ('product', 'quantity', 'color', 'size', 'price') 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) @admin.register(ShippingAddress)
class ShippingAddressAdmin(admin.ModelAdmin): class ShippingAddressAdmin(admin.ModelAdmin):
@ -61,6 +76,7 @@ class OrderAdmin(admin.ModelAdmin):
readonly_fields = ('shipping_address_details',) readonly_fields = ('shipping_address_details',)
actions = ['change_order_status'] actions = ['change_order_status']
autocomplete_fields = ['user'] # Add this line for user search functionality 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): def get_email(self, obj):
if obj.guest_user: if obj.guest_user:

Loading…
Cancel
Save