Skip to content

Commit 1736ed6

Browse files
committed
Use CMSApp.get_urls instead of deprecated attr urls
1 parent 83c42bb commit 1736ed6

File tree

3 files changed

+29
-22
lines changed

3 files changed

+29
-22
lines changed

example/myshop/cms_apps.py

+16-8
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,36 @@
1111

1212
class ProductsListApp(CMSApp):
1313
name = _("Products List")
14-
if settings.SHOP_TUTORIAL == 'polymorphic':
15-
urls = ['myshop.urls.polymorphic_products']
16-
elif settings.SHOP_TUTORIAL == 'i18n_commodity':
17-
urls = ['myshop.urls.i18n_products']
18-
else:
19-
urls = ['myshop.urls.simple_products']
2014

15+
def get_urls(self, page=None, language=None, **kwargs):
16+
if settings.SHOP_TUTORIAL == 'polymorphic':
17+
return ['myshop.urls.polymorphic_products']
18+
elif settings.SHOP_TUTORIAL == 'i18n_commodity':
19+
return ['myshop.urls.i18n_products']
20+
else:
2121
apphook_pool.register(ProductsListApp)
22+
return ['myshop.urls.simple_products']
23+
2224

2325

2426
class ProductSearchApp(CMSApp):
2527
name = _("Search")
26-
urls = ['myshop.urls.search']
28+
29+
def get_urls(self, page=None, language=None, **kwargs):
30+
return ['myshop.urls.search']
2731

2832
apphook_pool.register(ProductSearchApp)
2933

3034

3135
class OrderApp(CMSApp):
3236
name = _("View Orders")
33-
urls = ['shop.urls.order']
3437
cache_placeholders = False
3538

39+
def get_urls(self, page=None, language=None, **kwargs):
40+
if page and page.reverse_id == 'shop-order-last':
41+
return ['shop.urls.order_last']
42+
return ['shop.urls.order']
43+
3644
apphook_pool.register(OrderApp)
3745

3846

shop/urls/order_last.py

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.conf.urls import url
5+
from shop.views.order import OrderView
6+
7+
urlpatterns = [
8+
url(r'^$', OrderView.as_view(many=False, is_last=True)),
9+
]

shop/views/order.py

+4-14
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class OrderView(mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.UpdateM
2424
detail_serializer_class = OrderDetailSerializer
2525
lookup_field = lookup_url_kwarg = 'slug'
2626
many = True
27+
is_last = False
2728

2829
def get_queryset(self):
2930
return OrderModel.objects.filter_from_request(self.request)
@@ -36,9 +37,9 @@ def get_serializer_class(self):
3637
def get_renderer_context(self):
3738
renderer_context = super(OrderView, self).get_renderer_context()
3839
if self.request.accepted_renderer.format == 'html':
39-
renderer_context['many'] = self.many
40-
if self.many is False:
41-
# add an extra ance to the breadcrumb
40+
renderer_context.update(many=self.many, is_last=self.is_last)
41+
if self.many is False and self.is_last is False:
42+
# add an extra ance to the breadcrumb to show the order number
4243
try:
4344
renderer_context['extra_ance'] = self.get_object().get_number()
4445
except (AttributeError, PermissionDenied):
@@ -63,15 +64,11 @@ def allowed_methods(self):
6364

6465
@never_cache
6566
def get(self, request, *args, **kwargs):
66-
if self.is_last():
67-
self.many = False
6867
if self.many:
6968
return self.list(request, *args, **kwargs)
7069
return self.retrieve(request, *args, **kwargs)
7170

7271
def post(self, request, *args, **kwargs):
73-
if self.is_last():
74-
self.many = False
7572
if self.many:
7673
return self.list(request, *args, **kwargs)
7774
self.update(request, *args, **kwargs)
@@ -88,10 +85,3 @@ def retrieve(self, request, *args, **kwargs):
8885
return super(OrderView, self).retrieve(request, *args, **kwargs)
8986
except OrderModel.DoesNotExist:
9087
raise NotFound("No order has been found for the current user.")
91-
92-
def is_last(self):
93-
"""
94-
Return true, if the last order shall be rendered.
95-
Useful to render a Thank-You view immediately after a purchase.
96-
"""
97-
return self.request.current_page.reverse_id == 'shop-order-last'

0 commit comments

Comments
 (0)