diff --git a/examples/demo/templates/satchless/checkout/delivery_details.html b/examples/demo/templates/satchless/checkout/delivery_details.html
index 983d7d1f..f75e6f9f 100644
--- a/examples/demo/templates/satchless/checkout/delivery_details.html
+++ b/examples/demo/templates/satchless/checkout/delivery_details.html
@@ -1,7 +1,6 @@
{% extends 'satchless/checkout/base.html' %}
{% load i18n %}
{% load form_display %}
-{% load order_tags %}
{% block title %}{{ block.super }} | {% trans "Delivery details" %}{% endblock %}
{% block body-class %}{{ block.super }} delivery-details{% endblock %}
@@ -26,8 +25,8 @@
{% trans "Delivery details" %}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/satchless/contrib/checkout/multistep/tests/__init__.py b/satchless/contrib/checkout/multistep/tests/__init__.py
index 10758dc9..475c7ffa 100644
--- a/satchless/contrib/checkout/multistep/tests/__init__.py
+++ b/satchless/contrib/checkout/multistep/tests/__init__.py
@@ -53,8 +53,10 @@ class TestCheckoutApp(app.MultiStepCheckoutApp):
fields=order_forms.DeliveryMethodForm._meta.fields)
+
class CheckoutTest(BaseCheckoutAppTests):
- checkout_app = TestCheckoutApp()
+ checkout_app = TestCheckoutApp(delivery_providers=[TestDeliveryProvider],
+ payment_providers=[TestPaymentProviderWithConfirmation])
urls = BaseCheckoutAppTests.MockUrls(checkout_app=checkout_app)
def setUp(self):
@@ -91,20 +93,16 @@ def setUp(self):
'django.template.loaders.filesystem.Loader',
)
}
- delivery_provider = TestDeliveryProvider()
TestDeliveryType.objects.create(price=10, typ='pidgin', name='Pidgin')
TestDeliveryType.objects.create(price=15, typ='courier', name='Courier',
with_customer_notes=True)
self.original_settings = self._setup_settings(self.custom_settings)
- order_handler.delivery_queue = order_handler.DeliveryQueue(delivery_provider)
- order_handler.payment_queue = order_handler.PaymentQueue(
- TestPaymentProviderWithConfirmation)
+ self.anon_client = Client()
+
order_handler.partitioner_queue = order_handler.PartitionerQueue(
'satchless.contrib.order.partitioner.simple.SimplePhysicalPartitioner')
- self.anon_client = Client()
-
PostShippingType.objects.create(price=12, typ='polecony',
name='list polecony')
PostShippingType.objects.create(price=20, typ='list',
@@ -223,14 +221,14 @@ def test_delivery_method_view(self):
order = self._create_order(self.anon_client)
group = order.groups.get()
self.assertTrue(group.require_shipping_address)
- dtypes = list(order_handler.delivery_queue.enum_types(group))
+ dtypes = list(self.checkout_app.delivery_queue.enum_types(group))
dtype = dtypes[0].typ
response = self._test_status(
self.checkout_app.reverse('delivery-method',
kwargs={'order_token': order.token}),
client_instance=self.anon_client, status_code=200)
data = {}
- df = response.context['delivery_formset']
+ df = response.context['delivery_method_formset']
data[df.add_prefix('INITIAL_FORMS')] = len(df.forms)
data[df.add_prefix('MAX_NUM_FORMS')] = ''
data[df.add_prefix('TOTAL_FORMS')] = len(df.forms)
@@ -251,7 +249,7 @@ def test_delivery_method_view(self):
def test_checkout_view(self):
order = self._create_order(self.anon_client)
group = order.groups.get()
- dtypes = list(order_handler.delivery_queue.enum_types(group))
+ dtypes = list(self.checkout_app.delivery_queue.enum_types(group))
group.delivery_type = dtypes[0].typ
group.save()
response = self._test_status(
@@ -298,11 +296,11 @@ def test_checkout_view(self):
def test_payment_choice_view(self):
order = self._create_order(self.anon_client)
group = order.groups.get()
- dtypes = list(order_handler.delivery_queue.enum_types(group))
+ dtypes = list(self.checkout_app.delivery_queue.enum_types(group))
group.delivery_type = dtypes[0].typ
group.save()
- ptype = list(order_handler.payment_queue.enum_types(group))[0]
+ ptype = list(self.checkout_app.payment_queue.enum_types(group))[0]
self._test_GET_status(self.checkout_app.reverse('payment-method',
kwargs={'order_token':
order.token}),
@@ -325,15 +323,15 @@ def test_payment_choice_view(self):
def test_payment_details_view(self):
order = self._create_order(self.anon_client)
group = order.groups.get()
- dtypes = list(order_handler.delivery_queue.enum_types(group))
+ dtypes = list(self.checkout_app.delivery_queue.enum_types(group))
group.delivery_type = dtypes[0].typ
group.save()
- ptype = list(order_handler.payment_queue.enum_types(group))[0]
+ ptype = list(self.checkout_app.payment_queue.enum_types(group))[0]
order.payment_type = ptype.typ
order.save()
- order_handler.payment_queue = order_handler.PaymentQueue(
+ self.checkout_app.payment_queue = order_handler.PaymentQueue(
TestPaymentProviderWithForm)
self._test_status(self.checkout_app.reverse('payment-details',
diff --git a/satchless/contrib/checkout/singlestep/app.py b/satchless/contrib/checkout/singlestep/app.py
index ac9a1324..9efaf0f1 100644
--- a/satchless/contrib/checkout/singlestep/app.py
+++ b/satchless/contrib/checkout/singlestep/app.py
@@ -2,7 +2,6 @@
from django.template.response import TemplateResponse
from ....checkout import app
-from ....order import forms, handler
class SingleStepCheckoutApp(app.CheckoutApp):
BillingForm = None
@@ -26,21 +25,22 @@ def checkout(self, request, order_token):
return self.redirect_order(order)
delivery_groups = order.groups.all()
for group in delivery_groups:
- delivery_types = list(handler.delivery_queue.enum_types(group))
+ delivery_types = list(self.delivery_queue.enum_types(group))
if len(delivery_types) != 1:
raise ImproperlyConfigured("The singlestep checkout requires "
"exactly one delivery type per group.")
group.delivery_type = delivery_types[0].typ
group.save()
- delivery_group_forms = forms.get_delivery_details_forms_for_groups(delivery_groups,
- request.POST)
+
+ delivery_group_forms = self.delivery_queue.get_configuration_forms_for_groups(
+ delivery_groups, request.POST or None)
delivery_valid = True
if request.method == 'POST':
delivery_valid = True
- for group, typ, form in delivery_group_forms:
+ for group, delivery_type, form in delivery_group_forms:
if form:
delivery_valid = delivery_valid and form.is_valid()
- payment_types = list(handler.payment_queue.enum_types(order))
+ payment_types = list(self.payment_queue.enum_types(order))
if len(payment_types) != 1:
raise ImproperlyConfigured("The singlestep checkout requires "
"exactly one payment methods.")
@@ -48,22 +48,19 @@ def checkout(self, request, order_token):
order.save()
billing_form = self.BillingForm(request.POST or None,
instance=order)
- payment_form = forms.get_payment_details_form(order, request.POST)
+ payment_form = self.payment_queue.get_configuration_form(order, request.POST)
if request.method == 'POST':
billing_valid = billing_form.is_valid()
payment_valid = payment_form.is_valid() if payment_form else True
if billing_valid and delivery_valid and payment_valid:
order = billing_form.save()
for group, typ, form in delivery_group_forms:
- handler.delivery_queue.save(group, form)
- handler.payment_queue.save(order, payment_form)
+ self.delivery_queue.save(group, form)
+ self.payment_queue.save(order, payment_form)
order.set_status('payment-pending')
return self.redirect('confirmation',
order_token=order.token)
- return TemplateResponse(request, self.checkout_templates, {
- 'billing_form': billing_form,
- 'delivery_group_forms': delivery_group_forms,
- 'order': order,
- 'payment_form': payment_form,
- })
-
+ context = self.get_context_data(request, billing_form=billing_form,
+ delivery_group_forms=delivery_group_forms,
+ order=order, payment_form=payment_form)
+ return TemplateResponse(request, self.checkout_templates, context)
diff --git a/satchless/contrib/checkout/singlestep/templates/satchless/checkout/checkout.html b/satchless/contrib/checkout/singlestep/templates/satchless/checkout/checkout.html
index 4c8a4ec0..34219b93 100644
--- a/satchless/contrib/checkout/singlestep/templates/satchless/checkout/checkout.html
+++ b/satchless/contrib/checkout/singlestep/templates/satchless/checkout/checkout.html
@@ -1,6 +1,5 @@
{% extends 'satchless/order/base.html' %}
{% load i18n %}
-{% load order_tags %}
{% block breadcrumbs %}
{{ block.super }}
{% trans "Order (business)" %}
@@ -11,8 +10,8 @@
{% trans "Order (business)" %}