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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from django.conf.urls import patterns, url
  2. from django.contrib.auth.decorators import login_required
  3. from django.views import generic
  4. from oscar.apps.customer import views
  5. from oscar.apps.customer.notifications import views as notification_views
  6. from oscar.apps.customer.alerts import views as alert_views
  7. from oscar.core.application import Application
  8. class CustomerApplication(Application):
  9. name = 'customer'
  10. summary_view = views.AccountSummaryView
  11. order_history_view = views.OrderHistoryView
  12. order_detail_view = views.OrderDetailView
  13. anon_order_detail_view = views.AnonymousOrderDetailView
  14. order_line_view = views.OrderLineView
  15. address_list_view = views.AddressListView
  16. address_create_view = views.AddressCreateView
  17. address_update_view = views.AddressUpdateView
  18. address_delete_view = views.AddressDeleteView
  19. email_list_view = views.EmailHistoryView
  20. email_detail_view = views.EmailDetailView
  21. login_view = views.AccountAuthView
  22. logout_view = views.LogoutView
  23. register_view = views.AccountRegistrationView
  24. profile_update_view = views.ProfileUpdateView
  25. change_password_view = views.ChangePasswordView
  26. notification_inbox_view = notification_views.InboxView
  27. notification_archive_view = notification_views.ArchiveView
  28. notification_update_view = notification_views.UpdateView
  29. alert_create_view = alert_views.ProductAlertCreateView
  30. alert_confirm_view = alert_views.ProductAlertConfirmView
  31. alert_cancel_view = alert_views.ProductAlertCancelView
  32. def get_urls(self):
  33. urlpatterns = patterns('',
  34. url(r'^$', login_required(self.summary_view.as_view()),
  35. name='summary'),
  36. url(r'^login/$', self.login_view.as_view(), name='login'),
  37. url(r'^logout/$', self.logout_view.as_view(), name='logout'),
  38. url(r'^register/$', self.register_view.as_view(), name='register'),
  39. url(r'^change-password/$', self.change_password_view.as_view(),
  40. name='change-password'),
  41. # Profile
  42. url(r'^profile/$',
  43. login_required(self.profile_update_view.as_view()),
  44. name='profile-update'),
  45. # Order history
  46. url(r'^orders/$',
  47. login_required(self.order_history_view.as_view()),
  48. name='order-list'),
  49. url(r'^order-status/(?P<order_number>[\w-]*)/(?P<hash>\w+)/$',
  50. self.anon_order_detail_view.as_view(), name='anon-order'),
  51. url(r'^orders/(?P<order_number>[\w-]*)/$',
  52. login_required(self.order_detail_view.as_view()),
  53. name='order'),
  54. url(r'^orders/(?P<order_number>[\w-]*)/(?P<line_id>\d+)$',
  55. login_required(self.order_line_view.as_view()),
  56. name='order-line'),
  57. # Address book
  58. url(r'^addresses/$',
  59. login_required(self.address_list_view.as_view()),
  60. name='address-list'),
  61. url(r'^addresses/add/$',
  62. login_required(self.address_create_view.as_view()),
  63. name='address-create'),
  64. url(r'^addresses/(?P<pk>\d+)/$',
  65. login_required(self.address_update_view.as_view()),
  66. name='address-detail'),
  67. url(r'^addresses/(?P<pk>\d+)/delete/$',
  68. login_required(self.address_delete_view.as_view()),
  69. name='address-delete'),
  70. # Email history
  71. url(r'^emails/$',
  72. login_required(self.email_list_view.as_view()),
  73. name='email-list'),
  74. url(r'^emails/(?P<email_id>\d+)/$',
  75. login_required(self.email_detail_view.as_view()),
  76. name='email-detail'),
  77. # Notifications
  78. url(r'^notifications/$', generic.RedirectView.as_view(
  79. url='/accounts/notifications/inbox/')),
  80. url(r'^notifications/inbox/$',
  81. login_required(self.notification_inbox_view.as_view()),
  82. name='notifications-inbox'),
  83. url(r'^notifications/archive/$',
  84. login_required(self.notification_archive_view.as_view()),
  85. name='notifications-archive'),
  86. url(r'^notifications/update/$',
  87. login_required(self.notification_update_view.as_view()),
  88. name='notifications-update'),
  89. # Alerts
  90. url(r'^alerts/create/(?P<pk>\d+)/$', self.alert_create_view.as_view(),
  91. name='alert-create'),
  92. url(r'^alerts/confirm/(?P<key>[a-z0-9]+)/$',
  93. self.alert_confirm_view.as_view(),
  94. name='alerts-confirm'),
  95. url(r'^alerts/cancel/(?P<key>[a-z0-9]+)/$',
  96. self.alert_cancel_view.as_view(),
  97. name='alerts-cancel'),
  98. )
  99. return self.post_process_urls(urlpatterns)
  100. application = CustomerApplication()