Started port to Django 2.1, Python 3, Docker
This commit is a rough port to Django 2.1, Python 3 and a Docker based local development setup. Tests fail/error but migrations and the web frontend are already runnable. Task queue functionality is untested and translations seem to have trouble.
This commit is contained in:
parent
adc57657dd
commit
6cebd80c89
48 changed files with 1081 additions and 576 deletions
|
@ -5,7 +5,7 @@ This module contains the form classes related to hosting packages.
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django import forms
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from crispy_forms.helper import FormHelper
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
import django.utils.timezone
|
||||
from django.conf import settings
|
||||
import model_utils.fields
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
@ -17,15 +16,30 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CustomerHostingPackage',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('name', models.CharField(unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(help_text='disk space for the hosting package', verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('customer', models.ForeignKey(verbose_name='customer', to=settings.AUTH_USER_MODEL)),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
('name', models.CharField(
|
||||
unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(
|
||||
verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(
|
||||
verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
help_text='disk space for the hosting package',
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('customer', models.ForeignKey(
|
||||
verbose_name='customer', to=settings.AUTH_USER_MODEL,
|
||||
on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'customer hosting package',
|
||||
|
@ -36,9 +50,15 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CustomerHostingPackageOption',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'customer hosting option',
|
||||
|
@ -49,9 +69,16 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CustomerDiskSpaceOption',
|
||||
fields=[
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.CustomerHostingPackageOption')),
|
||||
('diskspace', models.PositiveIntegerField(verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False,
|
||||
to='hostingpackages.CustomerHostingPackageOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['diskspace_unit', 'diskspace'],
|
||||
|
@ -59,13 +86,19 @@ class Migration(migrations.Migration):
|
|||
'verbose_name': 'Disk space option',
|
||||
'verbose_name_plural': 'Disk space options',
|
||||
},
|
||||
bases=('hostingpackages.customerhostingpackageoption', models.Model),
|
||||
bases=(
|
||||
'hostingpackages.customerhostingpackageoption', models.Model),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='CustomerMailboxOption',
|
||||
fields=[
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.CustomerHostingPackageOption')),
|
||||
('number', models.PositiveIntegerField(unique=True, verbose_name='number of mailboxes')),
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False,
|
||||
to='hostingpackages.CustomerHostingPackageOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
unique=True, verbose_name='number of mailboxes')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['number'],
|
||||
|
@ -73,14 +106,22 @@ class Migration(migrations.Migration):
|
|||
'verbose_name': 'Mailbox option',
|
||||
'verbose_name_plural': 'Mailbox options',
|
||||
},
|
||||
bases=('hostingpackages.customerhostingpackageoption', models.Model),
|
||||
bases=(
|
||||
'hostingpackages.customerhostingpackageoption', models.Model),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='CustomerUserDatabaseOption',
|
||||
fields=[
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.CustomerHostingPackageOption')),
|
||||
('number', models.PositiveIntegerField(default=1, verbose_name='number of databases')),
|
||||
('db_type', models.PositiveSmallIntegerField(verbose_name='database type', choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False,
|
||||
to='hostingpackages.CustomerHostingPackageOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
default=1, verbose_name='number of databases')),
|
||||
('db_type', models.PositiveSmallIntegerField(
|
||||
verbose_name='database type',
|
||||
choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['db_type', 'number'],
|
||||
|
@ -88,14 +129,21 @@ class Migration(migrations.Migration):
|
|||
'verbose_name': 'Database option',
|
||||
'verbose_name_plural': 'Database options',
|
||||
},
|
||||
bases=('hostingpackages.customerhostingpackageoption', models.Model),
|
||||
bases=(
|
||||
'hostingpackages.customerhostingpackageoption', models.Model),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='HostingOption',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Hosting option',
|
||||
|
@ -106,9 +154,15 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='DiskSpaceOption',
|
||||
fields=[
|
||||
('hostingoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.HostingOption')),
|
||||
('diskspace', models.PositiveIntegerField(verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('hostingoption_ptr', models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False, to='hostingpackages.HostingOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['diskspace_unit', 'diskspace'],
|
||||
|
@ -121,14 +175,27 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='HostingPackageTemplate',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('name', models.CharField(unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(help_text='disk space for the hosting package', verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
('name', models.CharField(
|
||||
unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(
|
||||
verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(
|
||||
verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
help_text='disk space for the hosting package',
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Hosting package',
|
||||
|
@ -139,8 +206,12 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='MailboxOption',
|
||||
fields=[
|
||||
('hostingoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.HostingOption')),
|
||||
('number', models.PositiveIntegerField(unique=True, verbose_name='number of mailboxes')),
|
||||
('hostingoption_ptr', models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False, to='hostingpackages.HostingOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
unique=True, verbose_name='number of mailboxes')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['number'],
|
||||
|
@ -153,9 +224,15 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='UserDatabaseOption',
|
||||
fields=[
|
||||
('hostingoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.HostingOption')),
|
||||
('number', models.PositiveIntegerField(default=1, verbose_name='number of databases')),
|
||||
('db_type', models.PositiveSmallIntegerField(verbose_name='database type', choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
('hostingoption_ptr', models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False, to='hostingpackages.HostingOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
default=1, verbose_name='number of databases')),
|
||||
('db_type', models.PositiveSmallIntegerField(
|
||||
verbose_name='database type',
|
||||
choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['db_type', 'number'],
|
||||
|
@ -167,48 +244,71 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='userdatabaseoption',
|
||||
unique_together=set([('number', 'db_type')]),
|
||||
unique_together={('number', 'db_type')},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='diskspaceoption',
|
||||
unique_together=set([('diskspace', 'diskspace_unit')]),
|
||||
unique_together={('diskspace', 'diskspace_unit')},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customeruserdatabaseoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='user database option template', to='hostingpackages.UserDatabaseOption', help_text='The user database option template that this hosting option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='user database option template',
|
||||
to='hostingpackages.UserDatabaseOption',
|
||||
help_text='The user database option template that this '
|
||||
'hosting option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='customeruserdatabaseoption',
|
||||
unique_together=set([('number', 'db_type')]),
|
||||
unique_together={('number', 'db_type')},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customermailboxoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='mailbox option template', to='hostingpackages.UserDatabaseOption', help_text='The mailbox option template that this hosting option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='mailbox option template',
|
||||
to='hostingpackages.UserDatabaseOption',
|
||||
help_text='The mailbox option template that this hosting '
|
||||
'option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customerhostingpackageoption',
|
||||
name='hosting_package',
|
||||
field=models.ForeignKey(verbose_name='hosting package', to='hostingpackages.CustomerHostingPackage'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='hosting package',
|
||||
to='hostingpackages.CustomerHostingPackage',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customerhostingpackage',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='hosting package template', to='hostingpackages.HostingPackageTemplate', help_text='The hosting package template that this hosting package is based on.'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='hosting package template',
|
||||
to='hostingpackages.HostingPackageTemplate',
|
||||
help_text='The hosting package template that this hosting '
|
||||
'package is based on.',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customerdiskspaceoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='disk space option template', to='hostingpackages.DiskSpaceOption', help_text='The disk space option template that this hosting option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='disk space option template',
|
||||
to='hostingpackages.DiskSpaceOption',
|
||||
help_text='The disk space option template that this hosting '
|
||||
'option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='customerdiskspaceoption',
|
||||
unique_together=set([('diskspace', 'diskspace_unit')]),
|
||||
unique_together={('diskspace', 'diskspace_unit')},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,15 +1,18 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
import django.utils.timezone
|
||||
from django.conf import settings
|
||||
import model_utils.fields
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
replaces = [('hostingpackages', '0001_initial'), ('hostingpackages', '0002_auto_20150118_1149'), ('hostingpackages', '0003_auto_20150118_1221'), ('hostingpackages', '0004_customerhostingpackage_osuser'), ('hostingpackages', '0005_auto_20150118_1303')]
|
||||
replaces = [('hostingpackages', '0001_initial'),
|
||||
('hostingpackages', '0002_auto_20150118_1149'),
|
||||
('hostingpackages', '0003_auto_20150118_1221'),
|
||||
('hostingpackages', '0004_customerhostingpackage_osuser'),
|
||||
('hostingpackages', '0005_auto_20150118_1303')]
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
|
@ -20,15 +23,30 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CustomerHostingPackage',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('name', models.CharField(unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(help_text='disk space for the hosting package', verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('customer', models.ForeignKey(verbose_name='customer', to=settings.AUTH_USER_MODEL)),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
('name', models.CharField(
|
||||
unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(
|
||||
verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(
|
||||
verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
help_text='disk space for the hosting package',
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('customer', models.ForeignKey(
|
||||
verbose_name='customer',
|
||||
to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'customer hosting package',
|
||||
|
@ -39,9 +57,15 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CustomerHostingPackageOption',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'customer hosting option',
|
||||
|
@ -52,9 +76,17 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CustomerDiskSpaceOption',
|
||||
fields=[
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.CustomerHostingPackageOption')),
|
||||
('diskspace', models.PositiveIntegerField(verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('customerhostingpackageoption_ptr',
|
||||
models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False,
|
||||
to='hostingpackages.CustomerHostingPackageOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['diskspace_unit', 'diskspace'],
|
||||
|
@ -62,13 +94,20 @@ class Migration(migrations.Migration):
|
|||
'verbose_name': 'Disk space option',
|
||||
'verbose_name_plural': 'Disk space options',
|
||||
},
|
||||
bases=('hostingpackages.customerhostingpackageoption', models.Model),
|
||||
bases=(
|
||||
'hostingpackages.customerhostingpackageoption', models.Model),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='CustomerMailboxOption',
|
||||
fields=[
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.CustomerHostingPackageOption')),
|
||||
('number', models.PositiveIntegerField(unique=True, verbose_name='number of mailboxes')),
|
||||
('customerhostingpackageoption_ptr',
|
||||
models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False,
|
||||
to='hostingpackages.CustomerHostingPackageOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
unique=True, verbose_name='number of mailboxes')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['number'],
|
||||
|
@ -76,14 +115,23 @@ class Migration(migrations.Migration):
|
|||
'verbose_name': 'Mailbox option',
|
||||
'verbose_name_plural': 'Mailbox options',
|
||||
},
|
||||
bases=('hostingpackages.customerhostingpackageoption', models.Model),
|
||||
bases=(
|
||||
'hostingpackages.customerhostingpackageoption', models.Model),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='CustomerUserDatabaseOption',
|
||||
fields=[
|
||||
('customerhostingpackageoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.CustomerHostingPackageOption')),
|
||||
('number', models.PositiveIntegerField(default=1, verbose_name='number of databases')),
|
||||
('db_type', models.PositiveSmallIntegerField(verbose_name='database type', choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
('customerhostingpackageoption_ptr',
|
||||
models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False,
|
||||
to='hostingpackages.CustomerHostingPackageOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
default=1, verbose_name='number of databases')),
|
||||
('db_type', models.PositiveSmallIntegerField(
|
||||
verbose_name='database type',
|
||||
choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['db_type', 'number'],
|
||||
|
@ -91,14 +139,21 @@ class Migration(migrations.Migration):
|
|||
'verbose_name': 'Database option',
|
||||
'verbose_name_plural': 'Database options',
|
||||
},
|
||||
bases=('hostingpackages.customerhostingpackageoption', models.Model),
|
||||
bases=(
|
||||
'hostingpackages.customerhostingpackageoption', models.Model),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='HostingOption',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Hosting option',
|
||||
|
@ -109,9 +164,16 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='DiskSpaceOption',
|
||||
fields=[
|
||||
('hostingoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.HostingOption')),
|
||||
('diskspace', models.PositiveIntegerField(verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('hostingoption_ptr',
|
||||
models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False, to='hostingpackages.HostingOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['diskspace_unit', 'diskspace'],
|
||||
|
@ -124,14 +186,27 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='HostingPackageTemplate',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('name', models.CharField(unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(help_text='disk space for the hosting package', verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(verbose_name='unit of disk space', choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
('name', models.CharField(
|
||||
unique=True, max_length=128, verbose_name='name')),
|
||||
('description', models.TextField(
|
||||
verbose_name='description', blank=True)),
|
||||
('mailboxcount', models.PositiveIntegerField(
|
||||
verbose_name='mailbox count')),
|
||||
('diskspace', models.PositiveIntegerField(
|
||||
help_text='disk space for the hosting package',
|
||||
verbose_name='disk space')),
|
||||
('diskspace_unit', models.PositiveSmallIntegerField(
|
||||
verbose_name='unit of disk space',
|
||||
choices=[(0, 'MiB'), (1, 'GiB'), (2, 'TiB')])),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Hosting package',
|
||||
|
@ -142,8 +217,13 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='MailboxOption',
|
||||
fields=[
|
||||
('hostingoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.HostingOption')),
|
||||
('number', models.PositiveIntegerField(unique=True, verbose_name='number of mailboxes')),
|
||||
('hostingoption_ptr',
|
||||
models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False, to='hostingpackages.HostingOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
unique=True, verbose_name='number of mailboxes')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['number'],
|
||||
|
@ -156,9 +236,17 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='UserDatabaseOption',
|
||||
fields=[
|
||||
('hostingoption_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='hostingpackages.HostingOption')),
|
||||
('number', models.PositiveIntegerField(default=1, verbose_name='number of databases')),
|
||||
('db_type', models.PositiveSmallIntegerField(verbose_name='database type', choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
('hostingoption_ptr',
|
||||
models.OneToOneField(
|
||||
parent_link=True, auto_created=True, primary_key=True,
|
||||
serialize=False, to='hostingpackages.HostingOption',
|
||||
on_delete=models.CASCADE)),
|
||||
('number', models.PositiveIntegerField(
|
||||
default=1, verbose_name='number of databases')),
|
||||
('db_type',
|
||||
models.PositiveSmallIntegerField(
|
||||
verbose_name='database type',
|
||||
choices=[(0, 'PostgreSQL'), (1, 'MySQL')])),
|
||||
],
|
||||
options={
|
||||
'ordering': ['db_type', 'number'],
|
||||
|
@ -170,60 +258,93 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='userdatabaseoption',
|
||||
unique_together=set([('number', 'db_type')]),
|
||||
unique_together={('number', 'db_type')},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='diskspaceoption',
|
||||
unique_together=set([('diskspace', 'diskspace_unit')]),
|
||||
unique_together={('diskspace', 'diskspace_unit')},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customeruserdatabaseoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='user database option template', to='hostingpackages.UserDatabaseOption', help_text='The user database option template that this hosting option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='user database option template',
|
||||
to='hostingpackages.UserDatabaseOption',
|
||||
help_text='The user database option template that this '
|
||||
'hosting option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='customeruserdatabaseoption',
|
||||
unique_together=set([('number', 'db_type')]),
|
||||
unique_together={('number', 'db_type')},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customermailboxoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='mailbox option template', to='hostingpackages.UserDatabaseOption', help_text='The mailbox option template that this mailbox option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='mailbox option template',
|
||||
to='hostingpackages.UserDatabaseOption',
|
||||
help_text='The mailbox option template that this mailbox '
|
||||
'option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customerhostingpackageoption',
|
||||
name='hosting_package',
|
||||
field=models.ForeignKey(verbose_name='hosting package', to='hostingpackages.CustomerHostingPackage'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='hosting package',
|
||||
to='hostingpackages.CustomerHostingPackage',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customerhostingpackage',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='hosting package template', to='hostingpackages.HostingPackageTemplate', help_text='The hosting package template that this hosting package is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='hosting package template',
|
||||
to='hostingpackages.HostingPackageTemplate',
|
||||
help_text='The hosting package template that this hosting '
|
||||
'package is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customerdiskspaceoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='disk space option template', to='hostingpackages.DiskSpaceOption', help_text='The disk space option template that this hosting option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='disk space option template',
|
||||
to='hostingpackages.DiskSpaceOption',
|
||||
help_text='The disk space option template that this hosting '
|
||||
'option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='customerdiskspaceoption',
|
||||
unique_together=set([('diskspace', 'diskspace_unit')]),
|
||||
unique_together={('diskspace', 'diskspace_unit')},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customerdiskspaceoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='disk space option template', to='hostingpackages.DiskSpaceOption', help_text='The disk space option template that this disk space option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='disk space option template',
|
||||
to='hostingpackages.DiskSpaceOption',
|
||||
help_text='The disk space option template that this disk '
|
||||
'space option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customeruserdatabaseoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='user database option template', to='hostingpackages.UserDatabaseOption', help_text='The user database option template that this database option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='user database option template',
|
||||
to='hostingpackages.UserDatabaseOption',
|
||||
help_text='The user database option template that this '
|
||||
'database option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
|
@ -234,12 +355,14 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='customerhostingpackage',
|
||||
unique_together=set([('customer', 'name')]),
|
||||
unique_together={('customer', 'name')},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customerhostingpackage',
|
||||
name='osuser',
|
||||
field=models.OneToOneField(null=True, blank=True, to='osusers.User', verbose_name='Operating system user'),
|
||||
field=models.OneToOneField(
|
||||
null=True, blank=True, to='osusers.User',
|
||||
verbose_name='Operating system user', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hostingpackages', '0001_initial'),
|
||||
]
|
||||
|
@ -14,25 +13,45 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='customerdiskspaceoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='disk space option template', to='hostingpackages.DiskSpaceOption', help_text='The disk space option template that this disk space option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='disk space option template',
|
||||
to='hostingpackages.DiskSpaceOption',
|
||||
help_text='The disk space option template that this disk '
|
||||
'space option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customerhostingpackage',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='hosting package template', to='hostingpackages.HostingPackageTemplate', help_text='The hosting package template that this hosting package is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='hosting package template',
|
||||
to='hostingpackages.HostingPackageTemplate',
|
||||
help_text='The hosting package template that this hosting '
|
||||
'package is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customermailboxoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='mailbox option template', to='hostingpackages.UserDatabaseOption', help_text='The mailbox option template that this mailbox option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='mailbox option template',
|
||||
to='hostingpackages.UserDatabaseOption',
|
||||
help_text='The mailbox option template that this mailbox '
|
||||
'option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customeruserdatabaseoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='user database option template', to='hostingpackages.UserDatabaseOption', help_text='The user database option template that this database option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='user database option template',
|
||||
to='hostingpackages.UserDatabaseOption',
|
||||
help_text='The user database option template that this '
|
||||
'database option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hostingpackages', '0002_auto_20150118_1319'),
|
||||
]
|
||||
|
@ -14,7 +13,12 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='customermailboxoption',
|
||||
name='template',
|
||||
field=models.ForeignKey(verbose_name='mailbox option template', to='hostingpackages.MailboxOption', help_text='The mailbox option template that this mailbox option is based on'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='mailbox option template',
|
||||
to='hostingpackages.MailboxOption',
|
||||
help_text='The mailbox option template that this mailbox '
|
||||
'option is based on',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('osusers', '0004_auto_20150104_1751'),
|
||||
('hostingpackages', '0003_auto_20150118_1221'),
|
||||
|
@ -15,7 +14,9 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='customerhostingpackage',
|
||||
name='osuser',
|
||||
field=models.ForeignKey(verbose_name='Operating system user', blank=True, to='osusers.User', null=True),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='Operating system user', blank=True,
|
||||
to='osusers.User', null=True, on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
import django.utils.timezone
|
||||
import model_utils.fields
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('domains', '0002_auto_20150124_1909'),
|
||||
('hostingpackages', '0003_auto_20150118_1407'),
|
||||
|
@ -17,11 +16,22 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CustomerHostingPackageDomain',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
||||
('domain', models.OneToOneField(verbose_name='hosting domain', to='domains.HostingDomain')),
|
||||
('hosting_package', models.ForeignKey(related_name='domains', verbose_name='hosting package', to='hostingpackages.CustomerHostingPackage')),
|
||||
('id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True)),
|
||||
('created', model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now, verbose_name='created',
|
||||
editable=False)),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now, verbose_name='modified',
|
||||
editable=False)),
|
||||
('domain', models.OneToOneField(
|
||||
verbose_name='hosting domain', to='domains.HostingDomain',
|
||||
on_delete=models.CASCADE)),
|
||||
('hosting_package', models.ForeignKey(
|
||||
related_name='domains', verbose_name='hosting package',
|
||||
to='hostingpackages.CustomerHostingPackage',
|
||||
on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hostingpackages', '0004_customerhostingpackage_osuser'),
|
||||
]
|
||||
|
@ -14,7 +13,9 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='customerhostingpackage',
|
||||
name='osuser',
|
||||
field=models.OneToOneField(null=True, blank=True, to='osusers.User', verbose_name='Operating system user'),
|
||||
field=models.OneToOneField(
|
||||
null=True, blank=True, to='osusers.User',
|
||||
verbose_name='Operating system user', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -5,9 +5,9 @@ This module contains the hosting package models.
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import transaction
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import python_2_unicode_compatible
|
||||
from django.utils.translation import ugettext_lazy as _, ungettext
|
||||
|
||||
|
@ -26,7 +26,6 @@ from userdbs.models import (
|
|||
UserDatabase,
|
||||
)
|
||||
|
||||
|
||||
DISK_SPACE_UNITS = Choices(
|
||||
(0, 'M', _('MiB')),
|
||||
(1, 'G', _('GiB')),
|
||||
|
@ -94,6 +93,7 @@ class DiskSpaceOption(DiskSpaceOptionBase, HostingOption):
|
|||
existing hosting packages.
|
||||
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
unique_together = ['diskspace', 'diskspace_unit']
|
||||
|
||||
|
@ -127,6 +127,7 @@ class UserDatabaseOption(UserDatabaseOptionBase, HostingOption):
|
|||
hosting packages.
|
||||
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
unique_together = ['number', 'db_type']
|
||||
|
||||
|
@ -203,17 +204,19 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
|
||||
"""
|
||||
customer = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, verbose_name=_('customer'))
|
||||
settings.AUTH_USER_MODEL, verbose_name=_('customer'),
|
||||
on_delete=models.CASCADE)
|
||||
template = models.ForeignKey(
|
||||
HostingPackageTemplate, verbose_name=_('hosting package template'),
|
||||
help_text=_(
|
||||
'The hosting package template that this hosting package is based'
|
||||
' on'
|
||||
))
|
||||
),
|
||||
on_delete=models.CASCADE)
|
||||
name = models.CharField(_('name'), max_length=128)
|
||||
osuser = models.OneToOneField(
|
||||
OsUser, verbose_name=_('Operating system user'),
|
||||
blank=True, null=True)
|
||||
blank=True, null=True, on_delete=models.CASCADE)
|
||||
|
||||
objects = CustomerHostingPackageManager()
|
||||
|
||||
|
@ -250,6 +253,7 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
]:
|
||||
opts.extend(opt_type.objects.filter(hosting_package=self))
|
||||
return opts
|
||||
|
||||
hostingoptions = property(get_hostingoptions)
|
||||
|
||||
def get_disk_space(self, unit=None):
|
||||
|
@ -272,15 +276,16 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
diskspace += option.diskspace
|
||||
elif option.diskspace_unit > min_unit:
|
||||
diskspace += (
|
||||
DISK_SPACE_FACTORS[option.diskspace_unit][min_unit] *
|
||||
option.diskspace)
|
||||
DISK_SPACE_FACTORS[option.diskspace_unit][min_unit] *
|
||||
option.diskspace)
|
||||
else:
|
||||
diskspace = (
|
||||
DISK_SPACE_FACTORS[min_unit][option.diskspace_unit] *
|
||||
diskspace) + option.diskspace
|
||||
DISK_SPACE_FACTORS[min_unit][
|
||||
option.diskspace_unit] *
|
||||
diskspace) + option.diskspace
|
||||
min_unit = option.diskspace_unit
|
||||
if unit is None:
|
||||
return DISK_SPACE_FACTORS[min_unit][0] * diskspace * 1024**2
|
||||
return DISK_SPACE_FACTORS[min_unit][0] * diskspace * 1024 ** 2
|
||||
if unit > min_unit:
|
||||
return DISK_SPACE_FACTORS[unit][min_unit] * diskspace
|
||||
return DISK_SPACE_FACTORS[min_unit][unit] * diskspace
|
||||
|
@ -298,7 +303,7 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
"""
|
||||
if unit is None:
|
||||
return (DISK_SPACE_FACTORS[self.diskspace_unit][0] *
|
||||
self.diskspace * 1024**2)
|
||||
self.diskspace * 1024 ** 2)
|
||||
if unit > self.diskspace_unit:
|
||||
return (DISK_SPACE_FACTORS[unit][self.diskspace_unit] *
|
||||
self.diskspace)
|
||||
|
@ -312,6 +317,7 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
def get_mailboxes(self):
|
||||
if self.osuser:
|
||||
return Mailbox.objects.filter(osuser=self.osuser).all()
|
||||
|
||||
mailboxes = property(get_mailboxes)
|
||||
|
||||
def get_used_mailbox_count(self):
|
||||
|
@ -322,6 +328,7 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
if self.osuser:
|
||||
return Mailbox.objects.filter(osuser=self.osuser).count()
|
||||
return 0
|
||||
|
||||
used_mailbox_count = property(get_used_mailbox_count)
|
||||
|
||||
def get_mailbox_count(self):
|
||||
|
@ -336,6 +343,7 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
mailbox_sum=models.Sum('number')
|
||||
)
|
||||
return self.mailboxcount + (result['mailbox_sum'] or 0)
|
||||
|
||||
mailbox_count = property(get_mailbox_count)
|
||||
|
||||
def may_add_mailbox(self):
|
||||
|
@ -357,14 +365,15 @@ class CustomerHostingPackage(HostingPackageBase):
|
|||
if self.osuser:
|
||||
return UserDatabase.objects.filter(
|
||||
db_user__osuser=self.osuser).all()
|
||||
|
||||
databases = property(get_databases_flat)
|
||||
|
||||
def may_add_database(self):
|
||||
return (
|
||||
CustomerUserDatabaseOption.objects.filter(
|
||||
hosting_package=self).count() >
|
||||
UserDatabase.objects.filter(
|
||||
db_user__osuser=self.osuser).count()
|
||||
CustomerUserDatabaseOption.objects.filter(
|
||||
hosting_package=self).count() >
|
||||
UserDatabase.objects.filter(
|
||||
db_user__osuser=self.osuser).count()
|
||||
)
|
||||
|
||||
@transaction.atomic
|
||||
|
@ -402,9 +411,10 @@ class CustomerHostingPackageDomain(TimeStampedModel):
|
|||
"""
|
||||
hosting_package = models.ForeignKey(
|
||||
CustomerHostingPackage, verbose_name=_('hosting package'),
|
||||
related_name='domains')
|
||||
related_name='domains', on_delete=models.CASCADE)
|
||||
domain = models.OneToOneField(
|
||||
HostingDomain, verbose_name=_('hosting domain'))
|
||||
HostingDomain, verbose_name=_('hosting domain'),
|
||||
on_delete=models.CASCADE)
|
||||
|
||||
def __str__(self):
|
||||
return self.domain.domain
|
||||
|
@ -423,7 +433,8 @@ class CustomerHostingPackageOption(TimeStampedModel):
|
|||
|
||||
"""
|
||||
hosting_package = models.ForeignKey(
|
||||
CustomerHostingPackage, verbose_name=_('hosting package'))
|
||||
CustomerHostingPackage, verbose_name=_('hosting package'),
|
||||
on_delete=models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('customer hosting option')
|
||||
|
@ -443,7 +454,8 @@ class CustomerDiskSpaceOption(DiskSpaceOptionBase,
|
|||
help_text=_(
|
||||
'The disk space option template that this disk space option is'
|
||||
' based on'
|
||||
))
|
||||
),
|
||||
on_delete=models.CASCADE)
|
||||
|
||||
|
||||
class CustomerUserDatabaseOption(UserDatabaseOptionBase,
|
||||
|
@ -459,7 +471,8 @@ class CustomerUserDatabaseOption(UserDatabaseOptionBase,
|
|||
help_text=_(
|
||||
'The user database option template that this database option is'
|
||||
' based on'
|
||||
))
|
||||
),
|
||||
on_delete=models.CASCADE)
|
||||
|
||||
|
||||
class CustomerMailboxOption(MailboxOptionBase,
|
||||
|
@ -474,4 +487,5 @@ class CustomerMailboxOption(MailboxOptionBase,
|
|||
verbose_name=_('mailbox option template'),
|
||||
help_text=_(
|
||||
'The mailbox option template that this mailbox option is based on'
|
||||
))
|
||||
),
|
||||
on_delete=models.CASCADE)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue