def process_payment(request, payment_id, order_class): """This view processes the specified payment. It checks for backend, validates it's availability and asks again for it if something is wrong.""" if order_class == "advertising": payment = get_object_or_404(Payment, id=payment_id, status='new') else: payment = get_object_or_404(FeaturedEventPayment, id=payment_id, status='new') if request.method == 'POST' or request.REQUEST.has_key('backend'): data = request.REQUEST elif len(settings.MAMONA_ACTIVE_BACKENDS) == 1: data = {'backend': settings.MAMONA_ACTIVE_BACKENDS[0]} else: data = None bknd_form = PaymentMethodForm(data=data, payment=payment) if bknd_form.is_valid(): bknd_form.save() return HttpResponseRedirect( reverse('mamona-confirm-payment', kwargs={ 'payment_id': payment.id, 'order_class': order_class })) return render( request, 'mamona/select_payment_method.html', { 'payment': payment, 'form': bknd_form }, )
def order_singlescreen(request): # approach 3: single screen (ask for everything) order = UnawareOrder() payment_form = PaymentMethodForm(data=request.POST or None) formset = ItemFormSet(instance=order, data=request.POST or None) if request.method == 'POST': if formset.is_valid() and payment_form.is_valid(): order.save() formset.save() payment = order.payments.create(amount=order.total, currency=order.currency) payment_form.save(payment) return HttpResponseRedirect( reverse('mamona-confirm-payment', kwargs={'payment_id': payment.id})) return direct_to_template( request, 'sales/order_singlescreen.html', {'order': order, 'formset': formset, 'payment_form': payment_form} )
def order_singlescreen(request): # approach 3: single screen (ask for everything) order = UnawareOrder() payment_form = PaymentMethodForm(data=request.POST or None) formset = ItemFormSet(instance=order, data=request.POST or None) if request.method == 'POST': if formset.is_valid() and payment_form.is_valid(): order.save() formset.save() payment = order.payments.create(amount=order.total, currency=order.currency) payment_form.save(payment) return HttpResponseRedirect( reverse('mamona-confirm-payment', kwargs={'payment_id': payment.id})) return direct_to_template(request, 'sales/order_singlescreen.html', { 'order': order, 'formset': formset, 'payment_form': payment_form })
def process_payment(request, payment_id): """This view processes the specified payment. It checks for backend, validates it's availability and asks again for it if something is wrong.""" payment = get_object_or_404(Payment, id=payment_id, status='new') if request.method == 'POST' or request.REQUEST.has_key('backend'): data = request.REQUEST elif len(settings.MAMONA_ACTIVE_BACKENDS) == 1: data = {'backend': settings.MAMONA_ACTIVE_BACKENDS[0]} else: data = None bknd_form = PaymentMethodForm(data=data, payment=payment) if bknd_form.is_valid(): bknd_form.save() return HttpResponseRedirect( reverse('mamona-confirm-payment', kwargs={'payment_id': payment.id})) return render( request, 'mamona/select_payment_method.html', {'payment': payment, 'form': bknd_form}, )