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