Handle generic-payment-form POST
To return pricing based on user's selected product
This commit is contained in:
		
					parent
					
						
							
								b348c93fee
							
						
					
				
			
			
				commit
				
					
						1988020006
					
				
			
		
					 1 changed files with 35 additions and 2 deletions
				
			
		|  | @ -1,5 +1,4 @@ | ||||||
| import logging | import logging | ||||||
| import uuid |  | ||||||
| 
 | 
 | ||||||
| from django import forms | from django import forms | ||||||
| from django.conf import settings | from django.conf import settings | ||||||
|  | @ -14,7 +13,9 @@ from django.views.decorators.cache import cache_control | ||||||
| from django.views.generic import FormView, CreateView, DetailView | from django.views.generic import FormView, CreateView, DetailView | ||||||
| 
 | 
 | ||||||
| from hosting.forms import HostingUserLoginForm, GenericPaymentForm | from hosting.forms import HostingUserLoginForm, GenericPaymentForm | ||||||
| from hosting.models import HostingBill, HostingOrder, UserCardDetail | from hosting.models import ( | ||||||
|  |     HostingBill, HostingOrder, UserCardDetail, GenericProduct | ||||||
|  | ) | ||||||
| from membership.models import CustomUser, StripeCustomer | from membership.models import CustomUser, StripeCustomer | ||||||
| from opennebula_api.serializers import VMTemplateSerializer | from opennebula_api.serializers import VMTemplateSerializer | ||||||
| from utils.forms import ( | from utils.forms import ( | ||||||
|  | @ -273,6 +274,38 @@ class PaymentOrderView(FormView): | ||||||
|         return self.render_to_response(self.get_context_data()) |         return self.render_to_response(self.get_context_data()) | ||||||
| 
 | 
 | ||||||
|     def post(self, request, *args, **kwargs): |     def post(self, request, *args, **kwargs): | ||||||
|  |         if 'product' in request.POST: | ||||||
|  |             # query for the supplied product | ||||||
|  |             product = None | ||||||
|  |             try: | ||||||
|  |                 product = GenericProduct.objects.get( | ||||||
|  |                     product_name= | ||||||
|  |                     request.POST['generic_payment_form-product_name'] | ||||||
|  |                 ) | ||||||
|  |             except GenericProduct.DoesNotExist as dne: | ||||||
|  |                 logger.error( | ||||||
|  |                     "The requested product '{}' does not exist".format( | ||||||
|  |                         request.POST['generic_payment_form-product_name'] | ||||||
|  |                     ) | ||||||
|  |                 ) | ||||||
|  |             except GenericProduct.MultipleObjectsReturned as mpe: | ||||||
|  |                 logger.error( | ||||||
|  |                     "There seem to be more than one product with " | ||||||
|  |                     "the name {}".format( | ||||||
|  |                         request.POST['generic_payment_form-product_name'] | ||||||
|  |                     ) | ||||||
|  |                 ) | ||||||
|  |                 product = GenericProduct.objects.all( | ||||||
|  |                     product_name= | ||||||
|  |                     request.POST['generic_payment_form-product_name'] | ||||||
|  |                 ).first() | ||||||
|  |             if product is None: | ||||||
|  |                 return JsonResponse({}) | ||||||
|  |             else: | ||||||
|  |                 return JsonResponse({ | ||||||
|  |                     'amount': product.get_actual_price(), | ||||||
|  |                     'isSubscription': product.product_is_subscription | ||||||
|  |                 }) | ||||||
|         if 'login_form' in request.POST: |         if 'login_form' in request.POST: | ||||||
|             login_form = HostingUserLoginForm( |             login_form = HostingUserLoginForm( | ||||||
|                 data=request.POST, prefix='login_form' |                 data=request.POST, prefix='login_form' | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue