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 uuid | ||||
| 
 | ||||
| from django import forms | ||||
| 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 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 opennebula_api.serializers import VMTemplateSerializer | ||||
| from utils.forms import ( | ||||
|  | @ -273,6 +274,38 @@ class PaymentOrderView(FormView): | |||
|         return self.render_to_response(self.get_context_data()) | ||||
| 
 | ||||
|     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: | ||||
|             login_form = HostingUserLoginForm( | ||||
|                 data=request.POST, prefix='login_form' | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue