def handle_POST(self): if self._is_cheque_payment(): return self._submit() self.bankcard_form = BankcardForm(self.request.POST) self.billing_addr_form = BillingAddressForm(self.request.POST) if self.bankcard_form.is_valid() and self.billing_addr_form.is_valid(): return self._submit() self.context['bankcard_form'] = bankcard_form self.context['billing_address_form'] = billing_addr_form return render(self.request, self.template_file, self.context)
def handle_GET(self): if self._is_cheque_payment(): self.template_file = 'checkout/payment_details_cheque.html' else: self.context['bankcard_form'] = BankcardForm() self.context['billing_address_form'] = BillingAddressForm() return render(self.request, self.template_file, self.context)
class PaymentDetailsView(CorePaymentDetailsView): template_file = 'checkout/payment_details.html' def handle_GET(self): if self._is_cheque_payment(): self.template_file = 'checkout/payment_details_cheque.html' else: self.context['bankcard_form'] = BankcardForm() self.context['billing_address_form'] = BillingAddressForm() return render(self.request, self.template_file, self.context) def _is_cheque_payment(self): payment_method = self.co_data.payment_method() return payment_method == 'cheque' def handle_POST(self): if self._is_cheque_payment(): return self._submit() self.bankcard_form = BankcardForm(self.request.POST) self.billing_addr_form = BillingAddressForm(self.request.POST) if self.bankcard_form.is_valid() and self.billing_addr_form.is_valid(): return self._submit() self.context['bankcard_form'] = bankcard_form self.context['billing_address_form'] = billing_addr_form return render(self.request, self.template_file, self.context) def _handle_payment(self, basket, order_number): if self._is_cheque_payment(): type = payment_models.SourceType.objects.get(code='cheque') allocation = self._get_chargable_total(basket) source = payment_models.Source(type=type, allocation=allocation) self.payment_sources.append(source) return self._handle_bankcard_payment() def _handle_bankcard_payment(self): # Handle payment problems with an exception pass def _place_order(self, basket, order_number): order = super(PaymentDetailsView, self)._place_order(basket, order_number) if self._is_cheque_payment(): # Set order status as on hold pass return order