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 8.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  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.apps.customer.wishlists import views as wishlists_views
  8. from oscar.core.application import Application
  9. class CustomerApplication(Application):
  10. name = 'customer'
  11. summary_view = views.AccountSummaryView
  12. order_history_view = views.OrderHistoryView
  13. order_detail_view = views.OrderDetailView
  14. anon_order_detail_view = views.AnonymousOrderDetailView
  15. order_line_view = views.OrderLineView
  16. address_list_view = views.AddressListView
  17. address_create_view = views.AddressCreateView
  18. address_update_view = views.AddressUpdateView
  19. address_delete_view = views.AddressDeleteView
  20. address_change_status_view = views.AddressChangeStatusView
  21. email_list_view = views.EmailHistoryView
  22. email_detail_view = views.EmailDetailView
  23. login_view = views.AccountAuthView
  24. logout_view = views.LogoutView
  25. register_view = views.AccountRegistrationView
  26. profile_view = views.ProfileView
  27. profile_update_view = views.ProfileUpdateView
  28. profile_delete_view = views.ProfileDeleteView
  29. change_password_view = views.ChangePasswordView
  30. notification_inbox_view = notification_views.InboxView
  31. notification_archive_view = notification_views.ArchiveView
  32. notification_update_view = notification_views.UpdateView
  33. notification_detail_view = notification_views.DetailView
  34. alert_list_view = alert_views.ProductAlertListView
  35. alert_create_view = alert_views.ProductAlertCreateView
  36. alert_confirm_view = alert_views.ProductAlertConfirmView
  37. alert_cancel_view = alert_views.ProductAlertCancelView
  38. wishlists_add_product_view = wishlists_views.WishListAddProduct
  39. wishlists_list_view = wishlists_views.WishListListView
  40. wishlists_detail_view = wishlists_views.WishListDetailView
  41. wishlists_create_view = wishlists_views.WishListCreateView
  42. wishlists_create_with_product_view = wishlists_views.WishListCreateView
  43. wishlists_update_view = wishlists_views.WishListUpdateView
  44. wishlists_delete_view = wishlists_views.WishListDeleteView
  45. wishlists_remove_product_view = wishlists_views.WishListRemoveProduct
  46. wishlists_move_product_to_another_view \
  47. = wishlists_views.WishListMoveProductToAnotherWishList
  48. def get_urls(self):
  49. urls = [
  50. url(r'^$', login_required(self.summary_view.as_view()),
  51. name='summary'),
  52. url(r'^login/$', self.login_view.as_view(), name='login'),
  53. url(r'^logout/$', self.logout_view.as_view(), name='logout'),
  54. url(r'^register/$', self.register_view.as_view(), name='register'),
  55. url(r'^change-password/$',
  56. login_required(self.change_password_view.as_view()),
  57. name='change-password'),
  58. # Profile
  59. url(r'^profile/$',
  60. login_required(self.profile_view.as_view()),
  61. name='profile-view'),
  62. url(r'^profile/edit/$',
  63. login_required(self.profile_update_view.as_view()),
  64. name='profile-update'),
  65. url(r'^profile/delete/$',
  66. login_required(self.profile_delete_view.as_view()),
  67. name='profile-delete'),
  68. # Order history
  69. url(r'^orders/$',
  70. login_required(self.order_history_view.as_view()),
  71. name='order-list'),
  72. url(r'^order-status/(?P<order_number>[\w-]*)/(?P<hash>\w+)/$',
  73. self.anon_order_detail_view.as_view(), name='anon-order'),
  74. url(r'^orders/(?P<order_number>[\w-]*)/$',
  75. login_required(self.order_detail_view.as_view()),
  76. name='order'),
  77. url(r'^orders/(?P<order_number>[\w-]*)/(?P<line_id>\d+)$',
  78. login_required(self.order_line_view.as_view()),
  79. name='order-line'),
  80. # Address book
  81. url(r'^addresses/$',
  82. login_required(self.address_list_view.as_view()),
  83. name='address-list'),
  84. url(r'^addresses/add/$',
  85. login_required(self.address_create_view.as_view()),
  86. name='address-create'),
  87. url(r'^addresses/(?P<pk>\d+)/$',
  88. login_required(self.address_update_view.as_view()),
  89. name='address-detail'),
  90. url(r'^addresses/(?P<pk>\d+)/delete/$',
  91. login_required(self.address_delete_view.as_view()),
  92. name='address-delete'),
  93. url(r'^addresses/(?P<pk>\d+)/'
  94. r'(?P<action>default_for_(billing|shipping))/$',
  95. login_required(self.address_change_status_view.as_view()),
  96. name='address-change-status'),
  97. # Email history
  98. url(r'^emails/$',
  99. login_required(self.email_list_view.as_view()),
  100. name='email-list'),
  101. url(r'^emails/(?P<email_id>\d+)/$',
  102. login_required(self.email_detail_view.as_view()),
  103. name='email-detail'),
  104. # Notifications
  105. url(r'^notifications/$', generic.RedirectView.as_view(
  106. url='/accounts/notifications/inbox/')),
  107. url(r'^notifications/inbox/$',
  108. login_required(self.notification_inbox_view.as_view()),
  109. name='notifications-inbox'),
  110. url(r'^notifications/archive/$',
  111. login_required(self.notification_archive_view.as_view()),
  112. name='notifications-archive'),
  113. url(r'^notifications/update/$',
  114. login_required(self.notification_update_view.as_view()),
  115. name='notifications-update'),
  116. url(r'^notifications/(?P<pk>\d+)/$',
  117. login_required(self.notification_detail_view.as_view()),
  118. name='notifications-detail'),
  119. # Alerts
  120. url(r'^alerts/$',
  121. login_required(self.alert_list_view.as_view()),
  122. name='alerts-list'),
  123. url(r'^alerts/create/(?P<pk>\d+)/$',
  124. self.alert_create_view.as_view(),
  125. name='alert-create'),
  126. url(r'^alerts/confirm/(?P<key>[a-z0-9]+)/$',
  127. self.alert_confirm_view.as_view(),
  128. name='alerts-confirm'),
  129. url(r'^alerts/cancel/key/(?P<key>[a-z0-9]+)/$',
  130. self.alert_cancel_view.as_view(),
  131. name='alerts-cancel-by-key'),
  132. url(r'^alerts/cancel/(?P<pk>[a-z0-9]+)/$',
  133. login_required(self.alert_cancel_view.as_view()),
  134. name='alerts-cancel-by-pk'),
  135. # Wishlists
  136. url(r'wishlists/$',
  137. login_required(self.wishlists_list_view.as_view()),
  138. name='wishlists-list'),
  139. url(r'wishlists/add/(?P<product_pk>\d+)/$',
  140. login_required(self.wishlists_add_product_view.as_view()),
  141. name='wishlists-add-product'),
  142. url(r'wishlists/(?P<key>[a-z0-9]+)/add/(?P<product_pk>\d+)/',
  143. login_required(self.wishlists_add_product_view.as_view()),
  144. name='wishlists-add-product'),
  145. url(r'wishlists/create/$',
  146. login_required(self.wishlists_create_view.as_view()),
  147. name='wishlists-create'),
  148. url(r'wishlists/create/with-product/(?P<product_pk>\d+)/$',
  149. login_required(self.wishlists_create_view.as_view()),
  150. name='wishlists-create-with-product'),
  151. url(r'wishlists/(?P<key>[a-z0-9]+)/$',
  152. self.wishlists_detail_view.as_view(), name='wishlists-detail'),
  153. url(r'wishlists/(?P<key>[a-z0-9]+)/update/$',
  154. login_required(self.wishlists_update_view.as_view()),
  155. name='wishlists-update'),
  156. url(r'wishlists/(?P<key>[a-z0-9]+)/delete/$',
  157. login_required(self.wishlists_delete_view.as_view()),
  158. name='wishlists-delete'),
  159. url(r'wishlists/(?P<key>[a-z0-9]+)/lines/(?P<line_pk>\d+)/delete/',
  160. login_required(self.wishlists_remove_product_view.as_view()),
  161. name='wishlists-remove-product'),
  162. url(r'wishlists/(?P<key>[a-z0-9]+)/products/(?P<product_pk>\d+)/'
  163. r'delete/',
  164. login_required(self.wishlists_remove_product_view.as_view()),
  165. name='wishlists-remove-product'),
  166. url(r'wishlists/(?P<key>[a-z0-9]+)/lines/(?P<line_pk>\d+)/move-to/'
  167. r'(?P<to_key>[a-z0-9]+)/$',
  168. login_required(self.wishlists_move_product_to_another_view
  169. .as_view()),
  170. name='wishlists-move-product-to-another')]
  171. return self.post_process_urls(patterns('', *urls))
  172. application = CustomerApplication()