You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

admin.py 2.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. from django.contrib import admin
  2. from django.db.models import get_model
  3. Order = get_model('order', 'Order')
  4. OrderNote = get_model('order', 'OrderNote')
  5. CommunicationEvent = get_model('order', 'CommunicationEvent')
  6. BillingAddress = get_model('order', 'BillingAddress')
  7. ShippingAddress = get_model('order', 'ShippingAddress')
  8. Line = get_model('order', 'Line')
  9. LinePrice = get_model('order', 'LinePrice')
  10. ShippingEvent = get_model('order', 'ShippingEvent')
  11. ShippingEventType = get_model('order', 'ShippingEventType')
  12. PaymentEvent = get_model('order', 'PaymentEvent')
  13. PaymentEventType = get_model('order', 'PaymentEventType')
  14. PaymentEventQuantity = get_model('order', 'PaymentEventQuantity')
  15. LineAttribute = get_model('order', 'LineAttribute')
  16. OrderDiscount = get_model('order', 'OrderDiscount')
  17. class LineInline(admin.TabularInline):
  18. model = Line
  19. extra = 0
  20. class OrderAdmin(admin.ModelAdmin):
  21. raw_id_fields = ['user', 'billing_address', 'shipping_address', ]
  22. list_display = ('number', 'total_incl_tax', 'site', 'user',
  23. 'billing_address', 'date_placed')
  24. readonly_fields = ('number', 'total_incl_tax', 'total_excl_tax',
  25. 'shipping_incl_tax', 'shipping_excl_tax')
  26. inlines = [LineInline]
  27. class LineAdmin(admin.ModelAdmin):
  28. list_display = ('order', 'product', 'quantity')
  29. class LinePriceAdmin(admin.ModelAdmin):
  30. list_display = ('order', 'line', 'price_incl_tax', 'quantity')
  31. class ShippingEventTypeAdmin(admin.ModelAdmin):
  32. list_display = ('name', )
  33. exclude = ('code',)
  34. class PaymentEventQuantityInline(admin.TabularInline):
  35. model = PaymentEventQuantity
  36. extra = 0
  37. class PaymentEventAdmin(admin.ModelAdmin):
  38. list_display = ('order', 'event_type', 'amount', 'num_affected_lines',
  39. 'date_created')
  40. inlines = [PaymentEventQuantityInline]
  41. class PaymentEventTypeAdmin(admin.ModelAdmin):
  42. exclude = ('code',)
  43. class OrderNoteAdmin(admin.ModelAdmin):
  44. exclude = ('user',)
  45. def save_model(self, request, obj, form, change):
  46. if not change:
  47. obj.user = request.user
  48. obj.save()
  49. class OrderDiscountAdmin(admin.ModelAdmin):
  50. readonly_fields = ('order', 'category', 'offer_id', 'offer_name',
  51. 'voucher_id', 'voucher_code', 'amount')
  52. list_display = ('order', 'category', 'offer', 'voucher',
  53. 'voucher_code', 'amount')
  54. admin.site.register(Order, OrderAdmin)
  55. admin.site.register(OrderNote, OrderNoteAdmin)
  56. admin.site.register(ShippingAddress)
  57. admin.site.register(Line, LineAdmin)
  58. admin.site.register(LinePrice, LinePriceAdmin)
  59. admin.site.register(ShippingEvent)
  60. admin.site.register(ShippingEventType, ShippingEventTypeAdmin)
  61. admin.site.register(PaymentEvent, PaymentEventAdmin)
  62. admin.site.register(PaymentEventType, PaymentEventTypeAdmin)
  63. admin.site.register(LineAttribute)
  64. admin.site.register(OrderDiscount, OrderDiscountAdmin)
  65. admin.site.register(CommunicationEvent)