Merge upstream
This commit is contained in:
		
				commit
				
					
						06ef940b01
					
				
			
		
					 23 changed files with 289 additions and 286 deletions
				
			
		|  | @ -18,13 +18,9 @@ from datacenterlight.tasks import create_vm_task | |||
| from hosting.models import HostingOrder | ||||
| from hosting.forms import HostingUserLoginForm | ||||
| from membership.models import CustomUser, StripeCustomer | ||||
| from opennebula_api.models import OpenNebulaManager | ||||
| from opennebula_api.serializers import ( | ||||
|     VirtualMachineTemplateSerializer, VMTemplateSerializer | ||||
| ) | ||||
| from utils.forms import ( | ||||
|     BillingAddressForm, BillingAddressFormSignup, UserBillingAddressForm | ||||
| ) | ||||
| from opennebula_api.serializers import VMTemplateSerializer | ||||
| from utils.forms import BillingAddressForm | ||||
| from utils.hosting_utils import get_vm_price | ||||
| from utils.mailer import BaseEmail | ||||
| from utils.stripe_utils import StripeUtils | ||||
| from utils.tasks import send_plain_email_task | ||||
|  | @ -84,7 +80,7 @@ class SuccessView(TemplateView): | |||
|     def get(self, request, *args, **kwargs): | ||||
|         if 'specs' not in request.session or 'user' not in request.session: | ||||
|             return HttpResponseRedirect(reverse('datacenterlight:index')) | ||||
|         if 'token' not in request.session: | ||||
|         elif 'token' not in request.session: | ||||
|             return HttpResponseRedirect(reverse('datacenterlight:payment')) | ||||
|         elif 'order_confirmation' not in request.session: | ||||
|             return HttpResponseRedirect( | ||||
|  | @ -98,56 +94,6 @@ class SuccessView(TemplateView): | |||
|         return render(request, self.template_name) | ||||
| 
 | ||||
| 
 | ||||
| class PricingView(TemplateView): | ||||
|     template_name = "datacenterlight/pricing.html" | ||||
| 
 | ||||
|     def get(self, request, *args, **kwargs): | ||||
|         try: | ||||
|             manager = OpenNebulaManager() | ||||
|             templates = manager.get_templates() | ||||
| 
 | ||||
|             context = { | ||||
|                 'templates': VirtualMachineTemplateSerializer(templates, | ||||
|                                                               many=True).data, | ||||
|             } | ||||
|         except Exception: | ||||
|             messages.error(request, | ||||
|                            'We have a temporary problem to connect to our backend. \ | ||||
|                            Please try again in a few minutes' | ||||
|                            ) | ||||
|             context = { | ||||
|                 'error': 'connection' | ||||
|             } | ||||
| 
 | ||||
|         return render(request, self.template_name, context) | ||||
| 
 | ||||
|     def post(self, request): | ||||
| 
 | ||||
|         cores = request.POST.get('cpu') | ||||
|         memory = request.POST.get('ram') | ||||
|         storage = request.POST.get('storage') | ||||
|         price = request.POST.get('total') | ||||
| 
 | ||||
|         template_id = int(request.POST.get('config')) | ||||
|         manager = OpenNebulaManager() | ||||
|         template = manager.get_template(template_id) | ||||
| 
 | ||||
|         request.session['template'] = VirtualMachineTemplateSerializer( | ||||
|             template).data | ||||
| 
 | ||||
|         if not request.user.is_authenticated(): | ||||
|             request.session['next'] = reverse('hosting:payment') | ||||
| 
 | ||||
|         request.session['specs'] = { | ||||
|             'cpu': cores, | ||||
|             'memory': memory, | ||||
|             'disk_size': storage, | ||||
|             'price': price, | ||||
|         } | ||||
| 
 | ||||
|         return redirect(reverse('hosting:payment')) | ||||
| 
 | ||||
| 
 | ||||
| class BetaAccessView(FormView): | ||||
|     template_name = "datacenterlight/beta_access.html" | ||||
|     form_class = BetaAccessForm | ||||
|  | @ -284,7 +230,6 @@ class IndexView(CreateView): | |||
|         memory_field = forms.IntegerField(validators=[self.validate_memory]) | ||||
|         storage = request.POST.get('storage') | ||||
|         storage_field = forms.IntegerField(validators=[self.validate_storage]) | ||||
|         price = request.POST.get('total') | ||||
|         template_id = int(request.POST.get('config')) | ||||
|         template = VMTemplate.objects.filter( | ||||
|             opennebula_vm_template_id=template_id).first() | ||||
|  | @ -321,7 +266,6 @@ class IndexView(CreateView): | |||
|             'cpu': cores, | ||||
|             'memory': memory, | ||||
|             'disk_size': storage, | ||||
|             'price': price | ||||
|         } | ||||
|         request.session['specs'] = specs | ||||
|         request.session['template'] = template_data | ||||
|  | @ -532,11 +476,12 @@ class OrderConfirmationView(DetailView): | |||
|         cpu = specs.get('cpu') | ||||
|         memory = specs.get('memory') | ||||
|         disk_size = specs.get('disk_size') | ||||
|         amount_to_be_charged = (cpu * 5) + (memory * 2) + (disk_size * 0.6) | ||||
|         plan_name = "{cpu} Cores, {memory} GB RAM, {disk_size} GB SSD".format( | ||||
|             cpu=cpu, | ||||
|             memory=memory, | ||||
|             disk_size=disk_size) | ||||
|         amount_to_be_charged = get_vm_price(cpu=cpu, memory=memory, | ||||
|                                             disk_size=disk_size) | ||||
|         specs['price'] = amount_to_be_charged | ||||
|         plan_name = StripeUtils.get_stripe_plan_name(cpu=cpu, | ||||
|                                                      memory=memory, | ||||
|                                                      disk_size=disk_size) | ||||
|         stripe_plan_id = StripeUtils.get_stripe_plan_id(cpu=cpu, | ||||
|                                                         ram=memory, | ||||
|                                                         ssd=disk_size, | ||||
|  | @ -552,8 +497,8 @@ class OrderConfirmationView(DetailView): | |||
|                 'response_object').stripe_plan_id}]) | ||||
|         stripe_subscription_obj = subscription_result.get('response_object') | ||||
|         # Check if the subscription was approved and is active | ||||
|         if stripe_subscription_obj is None \ | ||||
|                 or stripe_subscription_obj.status != 'active': | ||||
|         if stripe_subscription_obj is None or \ | ||||
|                 stripe_subscription_obj.status != 'active': | ||||
|             msg = subscription_result.get('error') | ||||
|             messages.add_message(self.request, messages.ERROR, msg, | ||||
|                                  extra_tags='failed_payment') | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue