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.

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from django.conf.urls import url
  2. from oscar.core.application import Application
  3. from oscar.core.loading import get_class
  4. class OrdersDashboardApplication(Application):
  5. name = None
  6. default_permissions = ['is_staff', ]
  7. permissions_map = {
  8. 'order-list': (['is_staff'], ['partner.dashboard_access']),
  9. 'order-stats': (['is_staff'], ['partner.dashboard_access']),
  10. 'order-detail': (['is_staff'], ['partner.dashboard_access']),
  11. 'order-detail-note': (['is_staff'], ['partner.dashboard_access']),
  12. 'order-line-detail': (['is_staff'], ['partner.dashboard_access']),
  13. 'order-shipping-address': (['is_staff'], ['partner.dashboard_access']),
  14. }
  15. order_list_view = get_class('dashboard.orders.views', 'OrderListView')
  16. order_detail_view = get_class('dashboard.orders.views', 'OrderDetailView')
  17. shipping_address_view = get_class('dashboard.orders.views',
  18. 'ShippingAddressUpdateView')
  19. line_detail_view = get_class('dashboard.orders.views', 'LineDetailView')
  20. order_stats_view = get_class('dashboard.orders.views', 'OrderStatsView')
  21. def get_urls(self):
  22. urls = [
  23. url(r'^$', self.order_list_view.as_view(), name='order-list'),
  24. url(r'^statistics/$', self.order_stats_view.as_view(),
  25. name='order-stats'),
  26. url(r'^(?P<number>[-\w]+)/$',
  27. self.order_detail_view.as_view(), name='order-detail'),
  28. url(r'^(?P<number>[-\w]+)/notes/(?P<note_id>\d+)/$',
  29. self.order_detail_view.as_view(), name='order-detail-note'),
  30. url(r'^(?P<number>[-\w]+)/lines/(?P<line_id>\d+)/$',
  31. self.line_detail_view.as_view(), name='order-line-detail'),
  32. url(r'^(?P<number>[-\w]+)/shipping-address/$',
  33. self.shipping_address_view.as_view(),
  34. name='order-shipping-address'),
  35. ]
  36. return self.post_process_urls(urls)
  37. application = OrdersDashboardApplication()