Fixed ungleich urls, created model for storing VM types, created command to load VM prices and data to database
This commit is contained in:
		
					parent
					
						
							
								bdbf328375
							
						
					
				
			
			
				commit
				
					
						05e73b1d5e
					
				
			
		
					 9 changed files with 155 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -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'),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										0
									
								
								hosting/management/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								hosting/management/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								hosting/management/commands/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								hosting/management/commands/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										54
									
								
								hosting/management/commands/create_vm_types.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								hosting/management/commands/create_vm_types.py
									
										
									
									
									
										Normal 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()]
 | 
			
		||||
							
								
								
									
										27
									
								
								hosting/migrations/0003_virtualmachinetypes.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								hosting/migrations/0003_virtualmachinetypes.py
									
										
									
									
									
										Normal 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)),
 | 
			
		||||
            ],
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
							
								
								
									
										19
									
								
								hosting/migrations/0004_auto_20160418_0034.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								hosting/migrations/0004_auto_20160418_0034.py
									
										
									
									
									
										Normal 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',
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
							
								
								
									
										20
									
								
								hosting/migrations/0005_auto_20160418_0038.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								hosting/migrations/0005_auto_20160418_0038.py
									
										
									
									
									
										Normal 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',
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue