Browse Source

don't buy the product again in case the user reloads the 'buy_thanks' page

master
Frederic 10 years ago
parent
commit
ec9ce3e39d
  1. 4
      cash/urls.py
  2. 19
      cash/views.py

4
cash/urls.py

@ -20,6 +20,10 @@ urlpatterns = patterns('',
url(r'buy/(?P<product_id>\d+)/really/$', 'cash.views.buy', url(r'buy/(?P<product_id>\d+)/really/$', 'cash.views.buy',
{'confirm': True}, name='buy_really'), {'confirm': True}, name='buy_really'),
url(r'buy/thanks/$', 'cash.views.buy_thanks', name='buy_thanks'),
url(r'buy/error/$', 'cash.views.buy_error', name='buy_error'),
url(r'usersettings(/(?P<submit>\w+))?/$', 'cash.views.usersettings', url(r'usersettings(/(?P<submit>\w+))?/$', 'cash.views.usersettings',
name='usersettings'), name='usersettings'),

19
cash/views.py

@ -1,6 +1,6 @@
from django.views import generic from django.views import generic
from django import forms from django import forms
from django.shortcuts import render_to_response, get_object_or_404 from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.template import RequestContext from django.template import RequestContext
from django.core import paginator from django.core import paginator
@ -80,18 +80,25 @@ def buy(request, product_id, confirm=False):
product = get_object_or_404(Product, id=product_id) product = get_object_or_404(Product, id=product_id)
if confirm: if confirm:
context = RequestContext(request)
if request.user.account.buy_product(product, 1): if request.user.account.buy_product(product, 1):
return render_to_response('cash/buy_thanks.html', return redirect('buy_thanks')
context_instance=context)
else: else:
return render_to_response('cash/buy_error.html', return redirect('buy_error')
context_instance=context)
else: else:
context = RequestContext(request, {'product': product}) context = RequestContext(request, {'product': product})
return render_to_response('cash/buy_confirm.html', return render_to_response('cash/buy_confirm.html',
context_instance=context) context_instance=context)
@login_required
def buy_thanks(request):
context = RequestContext(request)
return render_to_response('cash/buy_thanks.html', context_instance=context)
@login_required
def buy_error(request):
context = RequestContext(request)
return render_to_response('cash/buy_error.html', context_instance=context)
class UserSettingsForm(forms.Form): class UserSettingsForm(forms.Form):
daily_digest = forms.BooleanField(required=False, daily_digest = forms.BooleanField(required=False,
label=ugettext_lazy('daily digest')) label=ugettext_lazy('daily digest'))

Loading…
Cancel
Save