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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.conf.urls.defaults import patterns, url
  2. from django.contrib.admin.views.decorators import staff_member_required
  3. from oscar.core.application import Application
  4. from oscar.apps.dashboard.offers import views
  5. from oscar.apps.dashboard.nav import register, Node
  6. node = Node('Offers')
  7. node.add_child(Node('All offers', 'dashboard:offer-list'))
  8. register(node, 7)
  9. class OffersDashboardApplication(Application):
  10. name = None
  11. list_view = views.OfferListView
  12. metadata_view = views.OfferMetaDataView
  13. condition_view = views.OfferConditionView
  14. benefit_view = views.OfferBenefitView
  15. preview_view = views.OfferPreviewView
  16. delete_view = views.OfferDeleteView
  17. detail_view = views.OfferDetailView
  18. def get_urls(self):
  19. urlpatterns = patterns('',
  20. url(r'^$', self.list_view.as_view(), name='offer-list'),
  21. # Creation
  22. url(r'^metadata/$', self.metadata_view.as_view(), name='offer-metadata'),
  23. url(r'^condition/$', self.condition_view.as_view(), name='offer-condition'),
  24. url(r'^benefit/$', self.benefit_view.as_view(), name='offer-benefit'),
  25. url(r'^preview/$', self.preview_view.as_view(), name='offer-preview'),
  26. # Update
  27. url(r'^(?P<pk>\d+)/metadata/$', self.metadata_view.as_view(update=True), name='offer-metadata'),
  28. url(r'^(?P<pk>\d+)/condition/$', self.condition_view.as_view(update=True), name='offer-condition'),
  29. url(r'^(?P<pk>\d+)/benefit/$', self.benefit_view.as_view(update=True), name='offer-benefit'),
  30. url(r'^(?P<pk>\d+)/preview/$', self.preview_view.as_view(update=True), name='offer-preview'),
  31. # Delete
  32. url(r'^(?P<pk>\d+)/delete/$', self.delete_view.as_view(), name='offer-delete'),
  33. # Stats
  34. url(r'^(?P<pk>\d+)/$', self.detail_view.as_view(), name='offer-detail'),
  35. )
  36. return self.post_process_urls(urlpatterns)
  37. def get_url_decorator(self, url_name):
  38. return staff_member_required
  39. application = OffersDashboardApplication()