Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

admin.py 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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', 'billing_address', 'date_placed')
  23. readonly_fields = ('number', 'total_incl_tax', 'total_excl_tax', 'shipping_incl_tax', 'shipping_excl_tax')
  24. inlines = [LineInline]
  25. class LineAdmin(admin.ModelAdmin):
  26. list_display = ('order', 'product', 'quantity')
  27. class LinePriceAdmin(admin.ModelAdmin):
  28. list_display = ('order', 'line', 'price_incl_tax', 'quantity')
  29. class ShippingEventTypeAdmin(admin.ModelAdmin):
  30. list_display = ('name', 'is_required', 'sequence_number')
  31. exclude = ('code',)
  32. class PaymentEventQuantityInline(admin.TabularInline):
  33. model = PaymentEventQuantity
  34. extra = 0
  35. class PaymentEventAdmin(admin.ModelAdmin):
  36. list_display = 'order', 'event_type', 'amount', 'num_affected_lines', 'date'
  37. inlines = [PaymentEventQuantityInline]
  38. class PaymentEventTypeAdmin(admin.ModelAdmin):
  39. exclude = ('code',)
  40. class OrderNoteAdmin(admin.ModelAdmin):
  41. exclude = ('user',)
  42. def save_model(self, request, obj, form, change):
  43. if not change:
  44. obj.user = request.user
  45. obj.save()
  46. class OrderDiscountAdmin(admin.ModelAdmin):
  47. readonly_fields = ('order' ,'offer_id', 'voucher_id', 'voucher_code', 'amount')
  48. list_display = ('order', 'offer', 'voucher', 'voucher_code', 'amount')
  49. admin.site.register(Order, OrderAdmin)
  50. admin.site.register(OrderNote, OrderNoteAdmin)
  51. admin.site.register(ShippingAddress)
  52. admin.site.register(Line, LineAdmin)
  53. admin.site.register(LinePrice, LinePriceAdmin)
  54. admin.site.register(ShippingEvent)
  55. admin.site.register(ShippingEventType, ShippingEventTypeAdmin)
  56. admin.site.register(PaymentEvent, PaymentEventAdmin)
  57. admin.site.register(PaymentEventType, PaymentEventTypeAdmin)
  58. admin.site.register(LineAttribute)
  59. admin.site.register(OrderDiscount, OrderDiscountAdmin)
  60. admin.site.register(CommunicationEvent)