Fixed ungleich urls, created model for storing VM types, created command to load VM prices and data to database

This commit is contained in:
Levi 2016-04-17 19:52:19 -05:00
parent 5397fd9a63
commit 7c891fe9c4
9 changed files with 155 additions and 2 deletions

View file

@ -5,6 +5,7 @@ from . import views
from .views import ContactView, IndexView, AboutView
urlpatterns = [
url(r'', IndexView.as_view(), name='home'),
url(_(r'home/?$'), IndexView.as_view(), name='home'),
url(_(r'about/?$'), AboutView.as_view(), name='about'),
url(_(r'contact/?$'), ContactView.as_view(), name='contact'),

View file

@ -1,4 +1,4 @@
from django.contrib import admin
from .models import RailsBetaUser
from .models import RailsBetaUser, VirtualMachineType
admin.site.register(RailsBetaUser)
admin.site.register(RailsBetaUser, VirtualMachineType)

View file

View file

View file

@ -0,0 +1,54 @@
from django.core.management.base import BaseCommand, CommandError
from hosting.models import VirtualMachineType
class Command(BaseCommand):
help = 'Create VM types'
def get_data(self):
hetzner = {
'base_price': 10,
'core_price': 10,
'memory_price': 10,
'disk_size_price': 10,
'description': 'VM auf einzelner HW, Raid1, kein HA'
}
return {
'hetzner_nug': {
'base_price': 5,
'memory_price': 2,
'core_price': 2,
'disk_size_price': 0.5,
'description': 'VM ohne Uptime Garantie'
},
'hetzner': hetzner,
'hetzner_raid6': {
'base_price': hetzner['base_price']*1.2,
'core_price': hetzner['core_price']*1.2,
'memory_price': hetzner['memory_price']*1.2,
'disk_size_price': hetzner['disk_size_price']*1.2,
'description': 'VM auf einzelner HW, Raid1, kein HA'
},
'hetzner_glusterfs': {
'base_price': hetzner['base_price']*1.4,
'core_price': hetzner['core_price']*1.4,
'memory_price': hetzner['memory_price']*1.4,
'disk_size_price': hetzner['disk_size_price']*1.4,
'description': 'VM auf einzelner HW, Raid1, kein HA'
},
'bern': {
'base_price': 12,
'core_price': 25,
'memory_price': 7,
'disk_size_price': 0.70,
'description': "VM in Bern, HA Setup ohne HA Garantie",
}
}
def handle(self, *args, **options):
data = self.get_data()
[VirtualMachineType.objects.create(**data[key]) for key in data.keys()]

View file

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-04-18 00:32
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('hosting', '0002_railsbetauser'),
]
operations = [
migrations.CreateModel(
name='VirtualMachineTypes',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', models.TextField()),
('base_price', models.FloatField()),
('memory_price', models.FloatField()),
('cores_price', models.FloatField()),
('disk_size_price', models.FloatField()),
('hosting_company', models.CharField(choices=[('hetzner_nug', 'Hetzner No Uptime Guarantee'), ('hetzner', 'Hetzner'), ('hetzner_raid6', 'Hetzner Raid6'), ('hetzner_glusterfs', 'Hetzner Glusterfs'), ('bern', 'Bern')], max_length=10)),
],
),
]

View file

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-04-18 00:34
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('hosting', '0003_virtualmachinetypes'),
]
operations = [
migrations.RenameModel(
old_name='VirtualMachineTypes',
new_name='VirtualMachineType',
),
]

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-04-18 00:38
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('hosting', '0004_auto_20160418_0034'),
]
operations = [
migrations.RenameField(
model_name='virtualmachinetype',
old_name='cores_price',
new_name='core_price',
),
]

View file

@ -1,4 +1,9 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.core import serializers
class RailsBetaUser(models.Model):
email = models.EmailField(unique=True)
@ -6,3 +11,30 @@ class RailsBetaUser(models.Model):
def __str__(self):
return "%s - %s" % (self.email, self.received_date)
class VirtualMachineType(models.Model):
HETZNER_NUG = 'hetzner_nug'
HETZNER = 'hetzner'
HETZNER_R6 = 'hetzner_raid6'
HETZNER_G = 'hetzner_glusterfs'
BERN = 'bern'
HOSTING_TYPES = (
(HETZNER_NUG, 'Hetzner No Uptime Guarantee'),
(HETZNER, 'Hetzner'),
(HETZNER_R6, 'Hetzner Raid6'),
(HETZNER_G, 'Hetzner Glusterfs'),
(BERN, 'Bern'),
)
description = models.TextField()
base_price = models.FloatField()
memory_price = models.FloatField()
core_price = models.FloatField()
disk_size_price = models.FloatField()
hosting_company = models.CharField(max_length=10, choices=HOSTING_TYPES)
def get_serialized_data(self):
return serializers("json", self)