Save order specifications in HostingOrder also
This commit is contained in:
		
					parent
					
						
							
								5851277d9a
							
						
					
				
			
			
				commit
				
					
						900f014d92
					
				
			
		
					 3 changed files with 59 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1,12 +1,12 @@
 | 
			
		|||
from django.contrib.sites.models import Site
 | 
			
		||||
 | 
			
		||||
from datacenterlight.tasks import create_vm_task
 | 
			
		||||
from hosting.models import HostingOrder, HostingBill
 | 
			
		||||
from hosting.models import HostingOrder, HostingBill, OrderSpecifications
 | 
			
		||||
from membership.models import StripeCustomer
 | 
			
		||||
from utils.forms import UserBillingAddressForm
 | 
			
		||||
from utils.models import BillingAddress
 | 
			
		||||
from .cms_models import CMSIntegration
 | 
			
		||||
from .models import VMPricing
 | 
			
		||||
from .models import VMPricing, VMTemplate
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_cms_integration(name):
 | 
			
		||||
| 
						 | 
				
			
			@ -53,6 +53,13 @@ def create_vm(billing_address_data, stripe_customer_id, specs,
 | 
			
		|||
        vm_pricing=vm_pricing
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    order_specs_obj, obj_created = OrderSpecifications.objects.get_or_create(
 | 
			
		||||
        vm_template=VMTemplate.objects.get(vm_template_id),
 | 
			
		||||
        cores=specs['cpu'], memory=specs['memory'], ssd_size=specs['disk_size']
 | 
			
		||||
    )
 | 
			
		||||
    order.order_specs = order_specs_obj
 | 
			
		||||
    order.save()
 | 
			
		||||
 | 
			
		||||
    # Create a Hosting Bill
 | 
			
		||||
    HostingBill.create(customer=customer, billing_address=billing_address)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										35
									
								
								hosting/migrations/0045_auto_20180701_1631.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								hosting/migrations/0045_auto_20180701_1631.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
# -*- coding: utf-8 -*-
 | 
			
		||||
# Generated by Django 1.9.4 on 2018-07-01 16:31
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
import django.db.models.deletion
 | 
			
		||||
import utils.mixins
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('datacenterlight', '0024_dclcalculatorpluginmodel_vm_templates_to_show'),
 | 
			
		||||
        ('hosting', '0044_hostingorder_vm_pricing'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name='OrderSpecifications',
 | 
			
		||||
            fields=[
 | 
			
		||||
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
 | 
			
		||||
                ('cores', models.IntegerField(default=0)),
 | 
			
		||||
                ('memory', models.IntegerField(default=0)),
 | 
			
		||||
                ('hdd_size', models.IntegerField(default=0)),
 | 
			
		||||
                ('ssd_size', models.IntegerField(default=0)),
 | 
			
		||||
                ('vm_template', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='datacenterlight.VMTemplate')),
 | 
			
		||||
            ],
 | 
			
		||||
            bases=(utils.mixins.AssignPermissionsMixin, models.Model),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name='hostingorder',
 | 
			
		||||
            name='order_specs',
 | 
			
		||||
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='hosting.OrderSpecifications'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ from django.utils import timezone
 | 
			
		|||
from django.utils.functional import cached_property
 | 
			
		||||
from Crypto.PublicKey import RSA
 | 
			
		||||
 | 
			
		||||
from datacenterlight.models import VMPricing
 | 
			
		||||
from datacenterlight.models import VMPricing, VMTemplate
 | 
			
		||||
from membership.models import StripeCustomer, CustomUser
 | 
			
		||||
from utils.models import BillingAddress
 | 
			
		||||
from utils.mixins import AssignPermissionsMixin
 | 
			
		||||
| 
						 | 
				
			
			@ -41,6 +41,19 @@ class HostingPlan(models.Model):
 | 
			
		|||
        return price
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class OrderSpecifications(AssignPermissionsMixin, models.Model):
 | 
			
		||||
    vm_template = models.ForeignKey(VMTemplate, blank=True, null=True)
 | 
			
		||||
    cores = models.IntegerField(default=0)
 | 
			
		||||
    memory = models.IntegerField(default=0)
 | 
			
		||||
    hdd_size = models.IntegerField(default=0)
 | 
			
		||||
    ssd_size = models.IntegerField(default=0)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "%s - %s cores, %s GB RAM, %s GB SSD" % (
 | 
			
		||||
            self.vm_template.name, self.cores, self.memory, self.ssd_size
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class HostingOrder(AssignPermissionsMixin, models.Model):
 | 
			
		||||
    ORDER_APPROVED_STATUS = 'Approved'
 | 
			
		||||
    ORDER_DECLINED_STATUS = 'Declined'
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +69,7 @@ class HostingOrder(AssignPermissionsMixin, models.Model):
 | 
			
		|||
    price = models.FloatField()
 | 
			
		||||
    subscription_id = models.CharField(max_length=100, null=True)
 | 
			
		||||
    vm_pricing = models.ForeignKey(VMPricing)
 | 
			
		||||
    order_specs = models.ForeignKey(OrderSpecifications, null=True, blank=True)
 | 
			
		||||
 | 
			
		||||
    permissions = ('view_hostingorder',)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue