Merge master into task/3747/multiple_cards_support
This commit is contained in:
commit
6d2b011925
14 changed files with 371 additions and 153 deletions
|
|
@ -7,7 +7,7 @@ from django.db import models
|
|||
from django.utils import timezone
|
||||
from django.utils.functional import cached_property
|
||||
|
||||
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
|
||||
|
|
@ -42,6 +42,23 @@ class HostingPlan(models.Model):
|
|||
return price
|
||||
|
||||
|
||||
class OrderDetail(AssignPermissionsMixin, models.Model):
|
||||
vm_template = models.ForeignKey(
|
||||
VMTemplate, blank=True, null=True, default=None,
|
||||
on_delete=models.SET_NULL
|
||||
)
|
||||
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, %s cores, %s GB RAM, %s GB SSD" % (
|
||||
self.vm_template.name, self.vm_template.vm_type, self.cores,
|
||||
self.memory, self.ssd_size
|
||||
)
|
||||
|
||||
|
||||
class HostingOrder(AssignPermissionsMixin, models.Model):
|
||||
ORDER_APPROVED_STATUS = 'Approved'
|
||||
ORDER_DECLINED_STATUS = 'Declined'
|
||||
|
|
@ -57,6 +74,10 @@ class HostingOrder(AssignPermissionsMixin, models.Model):
|
|||
price = models.FloatField()
|
||||
subscription_id = models.CharField(max_length=100, null=True)
|
||||
vm_pricing = models.ForeignKey(VMPricing)
|
||||
order_detail = models.ForeignKey(
|
||||
OrderDetail, null=True, blank=True, default=None,
|
||||
on_delete=models.SET_NULL
|
||||
)
|
||||
|
||||
permissions = ('view_hostingorder',)
|
||||
|
||||
|
|
@ -73,7 +94,7 @@ class HostingOrder(AssignPermissionsMixin, models.Model):
|
|||
return self.ORDER_APPROVED_STATUS if self.approved else self.ORDER_DECLINED_STATUS
|
||||
|
||||
@classmethod
|
||||
def create(cls, price=None, vm_id=None, customer=None,
|
||||
def create(cls, price=None, vm_id=0, customer=None,
|
||||
billing_address=None, vm_pricing=None):
|
||||
instance = cls.objects.create(
|
||||
price=price,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue