From 72f47dec7cd751a73e07b5bb4f54b0c8556dbacf Mon Sep 17 00:00:00 2001 From: PCoder Date: Tue, 22 Feb 2022 13:32:31 +0530 Subject: [PATCH 1/3] Return product_order object after creation --- uncloud_v3/app/services.py | 1 + 1 file changed, 1 insertion(+) diff --git a/uncloud_v3/app/services.py b/uncloud_v3/app/services.py index ce98c66..1db25e1 100644 --- a/uncloud_v3/app/services.py +++ b/uncloud_v3/app/services.py @@ -21,6 +21,7 @@ def order_product(product, timeframe, formdata): resource = get_object_or_404(Resource, slug=res) ro = ResourceOrder.objects.create(value=value, resource=resource) po.resources.add(ro) + return po # Ordering without a timeframe # if not timeframe: From c50d6881714ee718ed30d383c6401b598c942d35 Mon Sep 17 00:00:00 2001 From: PCoder Date: Tue, 22 Feb 2022 13:33:29 +0530 Subject: [PATCH 2/3] Add order-confirmation view and take user to this after the purchase --- uncloud_v3/app/views.py | 17 ++++++++++++++--- uncloud_v3/uncloud/urls.py | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/uncloud_v3/app/views.py b/uncloud_v3/app/views.py index 0478578..db1cde9 100644 --- a/uncloud_v3/app/views.py +++ b/uncloud_v3/app/views.py @@ -10,12 +10,23 @@ from .models import * from .forms import * from .services import * + +class OrderConfirmationView(TemplateView): + template_name = 'app/order_confirmation.html' + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + po_id = self.request.session.pop('product_order_id', None) + context['product_order'] = get_object_or_404(ProductOrder, id=po_id) + return context + + class ProductOneTimeOrderView(FormView): form_class = ProductOneTimeOrderForm template_name = 'app/productorder_form.html' def get_success_url(self): - return "/" + return reverse("order-confirmation") def get_form_kwargs(self): kwargs = super().get_form_kwargs() @@ -58,8 +69,8 @@ class ProductOneTimeOrderView(FormView): else: timeframe = None - order_product(product, timeframe, form.cleaned_data) - + po = order_product(product, timeframe, form.cleaned_data) + self.request.session['product_order_id'] = po.id return super().form_valid(form) class ProductOrderView(ProductOneTimeOrderView): diff --git a/uncloud_v3/uncloud/urls.py b/uncloud_v3/uncloud/urls.py index 33b46b8..bebb926 100644 --- a/uncloud_v3/uncloud/urls.py +++ b/uncloud_v3/uncloud/urls.py @@ -23,6 +23,7 @@ urlpatterns = [ path('order//', appviews.ProductOrderView.as_view(), name='product-order'), path('order/recurring///', appviews.ProductOrderView.as_view(), name='product-order-tf'), path('order/onetime//', appviews.ProductOneTimeOrderView.as_view(), name='product-order-onetime'), + path('order-confirmation', appviews.OrderConfirmationView.as_view(), name='order-confirmation'), path('product/', appviews.ProductListView.as_view(), name='products'), path('product//', appviews.ProductDetailView.as_view(), name='product-detail'), path('', appviews.IndexView.as_view(), name='index'), From 1648355fe7069b97151734f37731857da5fd94ae Mon Sep 17 00:00:00 2001 From: PCoder Date: Tue, 22 Feb 2022 13:33:45 +0530 Subject: [PATCH 3/3] Add order_confirmation template --- .../app/templates/app/order_confirmation.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 uncloud_v3/app/templates/app/order_confirmation.html diff --git a/uncloud_v3/app/templates/app/order_confirmation.html b/uncloud_v3/app/templates/app/order_confirmation.html new file mode 100644 index 0000000..ed57513 --- /dev/null +++ b/uncloud_v3/app/templates/app/order_confirmation.html @@ -0,0 +1,13 @@ +

Order Confirmation

+ +

+Thank you for the order. The details are below: +

+
+ Order ID: {{ product_order.id }}
+ Product: {{ product_order.product.name }} +
+
+