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.

app.py 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from django.conf.urls import patterns, url
  2. from django.contrib.auth.decorators import login_required
  3. from oscar.apps.customer.views import (AccountSummaryView, OrderHistoryView,
  4. OrderDetailView, OrderLineView, AddressListView, AddressCreateView,
  5. AddressUpdateView, AddressDeleteView, EmailHistoryView, EmailDetailView,
  6. AccountAuthView, AnonymousOrderDetailView, ChangePasswordView,
  7. ProfileUpdateView, AccountRegistrationView, LogoutView)
  8. from oscar.core.application import Application
  9. class CustomerApplication(Application):
  10. name = 'customer'
  11. summary_view = AccountSummaryView
  12. order_history_view = OrderHistoryView
  13. order_detail_view = OrderDetailView
  14. anon_order_detail_view = AnonymousOrderDetailView
  15. order_line_view = OrderLineView
  16. address_list_view = AddressListView
  17. address_create_view = AddressCreateView
  18. address_update_view = AddressUpdateView
  19. address_delete_view = AddressDeleteView
  20. email_list_view = EmailHistoryView
  21. email_detail_view = EmailDetailView
  22. login_view = AccountAuthView
  23. logout_view = LogoutView
  24. register_view = AccountRegistrationView
  25. profile_update_view = ProfileUpdateView
  26. change_password_view = ChangePasswordView
  27. def get_urls(self):
  28. urlpatterns = patterns('',
  29. url(r'^$', login_required(self.summary_view.as_view()),
  30. name='summary'),
  31. url(r'^login/$', self.login_view.as_view(), name='login'),
  32. url(r'^logout/$', self.logout_view.as_view(), name='logout'),
  33. url(r'^register/$', self.register_view.as_view(), name='register'),
  34. url(r'^change-password/$', self.change_password_view.as_view(),
  35. name='change-password'),
  36. # Profile
  37. url(r'^profile/$',
  38. login_required(self.profile_update_view.as_view()),
  39. name='profile-update'),
  40. url(r'^orders/$',
  41. login_required(self.order_history_view.as_view()),
  42. name='order-list'),
  43. url(r'^order-status/(?P<order_number>[\w-]*)/(?P<hash>\w+)/$',
  44. self.anon_order_detail_view.as_view(), name='anon-order'),
  45. url(r'^orders/(?P<order_number>[\w-]*)/$',
  46. login_required(self.order_detail_view.as_view()),
  47. name='order'),
  48. url(r'^orders/(?P<order_number>[\w-]*)/(?P<line_id>\d+)$',
  49. login_required(self.order_line_view.as_view()),
  50. name='order-line'),
  51. url(r'^addresses/$',
  52. login_required(self.address_list_view.as_view()),
  53. name='address-list'),
  54. url(r'^addresses/add/$',
  55. login_required(self.address_create_view.as_view()),
  56. name='address-create'),
  57. url(r'^addresses/(?P<pk>\d+)/$',
  58. login_required(self.address_update_view.as_view()),
  59. name='address-detail'),
  60. url(r'^addresses/(?P<pk>\d+)/delete/$',
  61. login_required(self.address_delete_view.as_view()),
  62. name='address-delete'),
  63. url(r'^emails/$',
  64. login_required(self.email_list_view.as_view()),
  65. name='email-list'),
  66. url(r'^emails/(?P<email_id>\d+)/$',
  67. login_required(self.email_detail_view.as_view()),
  68. name='email-detail'),
  69. )
  70. return self.post_process_urls(urlpatterns)
  71. application = CustomerApplication()