Skip to content

Commit 7386828

Browse files
committed
Added special "Thank You" view, which shows the last Order
1 parent 9300dd3 commit 7386828

File tree

4 files changed

+15
-7
lines changed

4 files changed

+15
-7
lines changed

shop/payment/prepayment.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import unicode_literals
3+
from django.utils.six.moves.urllib.parse import urljoin
34
from shop.models.order import OrderModel
45
from .base import PaymentProvider
56

@@ -12,4 +13,5 @@ class ForwardFundPayment(PaymentProvider):
1213

1314
def get_payment_request(self, cart, request):
1415
order = OrderModel.objects.create_from_cart(cart, request)
15-
return '$window.location.href="{}";'.format(order.get_absolute_url())
16+
thank_you_url = urljoin(order.order_page.get_absolute_url(), 'last')
17+
return '$window.location.href="{}";'.format(thank_you_url)

shop/templates/shop/order/order-detail.html

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
{% load i18n cms_tags %}
22

3+
{% if thank_you %}
4+
<h1>{% trans "Thank You for your order" %}</h1>
5+
{% else %}
6+
<h2>{% trans "Your Order purchased on" %} <span shop-timestamp="{{ data.created_at }}"></span></h2>
7+
{% endif %}
8+
39
<table class="table table-condensed">
410
<caption>{% placeholder "order-detail-caption" %}</caption>
511
{% block shop-order-thead %}

shop/urls/order.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from shop.views.order import OrderListView, OrderRetrieveView
55

66
urlpatterns = patterns('',
7-
url(r'^$', OrderListView.as_view(), name='order-list'),
8-
url(r'^(?P<pk>\d+)$', OrderRetrieveView.as_view(), name='order-detail'),
9-
url(r'^last$', OrderRetrieveView.as_view(fetch_last=True), name='order-detail-last'),
7+
url(r'^$', OrderListView.as_view()),
8+
url(r'^(?P<pk>\d+)$', OrderRetrieveView.as_view()),
9+
url(r'^last$', OrderRetrieveView.as_view(thank_you=True)),
1010
)

shop/views/order.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@ class GenericOrderView(generics.GenericAPIView):
1313
Base View class to render the fulfilled orders for the current user.
1414
"""
1515
renderer_classes = (CMSPageRenderer, JSONRenderer, BrowsableAPIRenderer)
16+
thank_you = False # if true render a "Thank You" view, rather than a normal order object
1617

1718
def get_queryset(self):
1819
return OrderModel.objects.filter(user=self.request.user).order_by('-updated_at',)
1920

2021
def get_renderer_context(self):
2122
renderer_context = super(GenericOrderView, self).get_renderer_context()
2223
if renderer_context['request'].accepted_renderer.format == 'html':
23-
renderer_context.update(many=isinstance(self, mixins.ListModelMixin))
24+
renderer_context.update(many=isinstance(self, mixins.ListModelMixin), thank_you=self.thank_you)
2425
return renderer_context
2526

2627
def get_template_names(self):
@@ -36,12 +37,11 @@ def get(self, request, *args, **kwargs):
3637

3738
class OrderRetrieveView(mixins.RetrieveModelMixin, GenericOrderView):
3839
serializer_class = OrderDetailSerializer
39-
fetch_last = False
4040

4141
def get(self, request, *args, **kwargs):
4242
return self.retrieve(request, *args, **kwargs)
4343

4444
def get_object(self):
45-
if self.fetch_last:
45+
if self.thank_you:
4646
return self.get_queryset().last()
4747
return super(OrderRetrieveView, self).get_object()

0 commit comments

Comments
 (0)