Create hostingorder outside celery task
This commit is contained in:
		
					parent
					
						
							
								3f4156ed8e
							
						
					
				
			
			
				commit
				
					
						bd875ffe7d
					
				
			
		
					 4 changed files with 126 additions and 54 deletions
				
			
		|  | @ -44,6 +44,7 @@ from utils.forms import ( | |||
| ) | ||||
| from utils.hosting_utils import get_vm_price | ||||
| from utils.mailer import BaseEmail | ||||
| from utils.models import BillingAddress | ||||
| from utils.stripe_utils import StripeUtils | ||||
| from utils.tasks import send_plain_email_task | ||||
| from utils.views import ( | ||||
|  | @ -882,9 +883,50 @@ class OrdersHostingDetailView(LoginRequiredMixin, DetailView): | |||
|             'request_host': request.get_host(), | ||||
|             'language': get_language(), | ||||
|         } | ||||
|         create_vm_task.delay(vm_template_id, user, specs, template, | ||||
|                              stripe_customer_id, billing_address_data, | ||||
|                              stripe_subscription_obj.id, card_details_dict) | ||||
| 
 | ||||
|         billing_address = BillingAddress( | ||||
|             cardholder_name=billing_address_data['cardholder_name'], | ||||
|             street_address=billing_address_data['street_address'], | ||||
|             city=billing_address_data['city'], | ||||
|             postal_code=billing_address_data['postal_code'], | ||||
|             country=billing_address_data['country'] | ||||
|         ) | ||||
|         billing_address.save() | ||||
| 
 | ||||
|         customer = StripeCustomer.objects.filter(id=stripe_customer_id).first() | ||||
| 
 | ||||
|         # Create a Hosting Order with vm_id = 0, we shall set it later in | ||||
|         # celery task once the VM instance is up and running | ||||
|         order = HostingOrder.create( | ||||
|             price=specs['price'], | ||||
|             vm_id=0, | ||||
|             customer=customer, | ||||
|             billing_address=billing_address | ||||
|         ) | ||||
| 
 | ||||
|         # Create a Hosting Bill | ||||
|         HostingBill.create(customer=customer, billing_address=billing_address) | ||||
| 
 | ||||
|         # Create Billing Address for User if he does not have one | ||||
|         if not customer.user.billing_addresses.count(): | ||||
|             billing_address_data.update({ | ||||
|                 'user': customer.user.id | ||||
|             }) | ||||
|             billing_address_user_form = UserBillingAddressForm( | ||||
|                 billing_address_data | ||||
|             ) | ||||
|             billing_address_user_form.is_valid() | ||||
|             billing_address_user_form.save() | ||||
| 
 | ||||
|         # Associate an order with a stripe subscription | ||||
|         order.set_subscription_id( | ||||
|             stripe_subscription_obj.id, card_details_dict | ||||
|         ) | ||||
| 
 | ||||
|         # If the Stripe payment succeeds, set order status approved | ||||
|         order.set_approved() | ||||
| 
 | ||||
|         create_vm_task.delay(vm_template_id, user, specs, template, order.id) | ||||
| 
 | ||||
|         for session_var in ['specs', 'template', 'billing_address', | ||||
|                             'billing_address_data', | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue