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.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from django.conf.urls import patterns, url
  2. from django.contrib.auth.decorators import login_required
  3. from django.conf import settings
  4. from oscar.core.application import Application
  5. from oscar.apps.checkout.views import IndexView, ShippingAddressView, UserAddressDeleteView, UserAddressCreateView, \
  6. UserAddressUpdateView, ShippingMethodView, PaymentMethodView, \
  7. PaymentDetailsView, ThankYouView
  8. class CheckoutApplication(Application):
  9. name = 'checkout'
  10. index_view = IndexView
  11. shipping_address_view = ShippingAddressView
  12. user_address_create_view = UserAddressCreateView
  13. user_address_update_view = UserAddressUpdateView
  14. user_address_delete_view = UserAddressDeleteView
  15. shipping_method_view = ShippingMethodView
  16. payment_method_view = PaymentMethodView
  17. payment_details_view = PaymentDetailsView
  18. thankyou_view = ThankYouView
  19. def get_urls(self):
  20. urlpatterns = patterns('',
  21. url(r'^$', self.index_view.as_view(), name='index'),
  22. # Shipping/user address views
  23. url(r'shipping-address/$', self.shipping_address_view.as_view(), name='shipping-address'),
  24. url(r'user-address/create/$', self.user_address_create_view.as_view(), name='user-address-create'),
  25. url(r'user-address/edit/(?P<pk>\d+)/$', self.user_address_update_view.as_view(), name='user-address-update'),
  26. url(r'user-address/delete/(?P<pk>\d+)/$', self.user_address_delete_view.as_view(), name='user-address-delete'),
  27. # Shipping method views
  28. url(r'shipping-method/$', self.shipping_method_view.as_view(), name='shipping-method'),
  29. # Payment method views
  30. url(r'payment-method/$', self.payment_method_view.as_view(), name='payment-method'),
  31. url(r'payment-details/$', self.payment_details_view.as_view(), name='payment-details'),
  32. url(r'preview/$', self.payment_details_view.as_view(preview=True), name='preview'),
  33. url(r'thank-you/$', self.thankyou_view.as_view(), name='thank-you'),
  34. )
  35. return self.post_process_urls(urlpatterns)
  36. def get_url_decorator(self, pattern):
  37. if not settings.OSCAR_ALLOW_ANON_CHECKOUT:
  38. return login_required
  39. if pattern.name.startswith('user-address'):
  40. return login_required
  41. return None
  42. application = CheckoutApplication()