|
|
|
|
@ -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: |
|
|
|
|
|