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
|
@ -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 = [
|
||||
]
|
||||
|
||||
|
@ -15,9 +14,15 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='AdditionalGroup',
|
||||
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': 'Additional group',
|
||||
|
@ -28,9 +33,14 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='DeleteTaskResult',
|
||||
fields=[
|
||||
('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)),
|
||||
('task_uuid', models.CharField(max_length=64, serialize=False, 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)),
|
||||
('task_uuid', models.CharField(
|
||||
max_length=64, serialize=False, primary_key=True)),
|
||||
('task_name', models.CharField(max_length=255, db_index=True)),
|
||||
('is_finished', models.BooleanField(default=False)),
|
||||
('is_success', models.BooleanField(default=False)),
|
||||
|
@ -47,12 +57,21 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='Group',
|
||||
fields=[
|
||||
('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)),
|
||||
('groupname', models.CharField(unique=True, max_length=16, verbose_name='Group name')),
|
||||
('gid', models.PositiveSmallIntegerField(unique=True, serialize=False, verbose_name='Group ID', primary_key=True)),
|
||||
('descr', models.TextField(verbose_name='Description', blank=True)),
|
||||
('passwd', models.CharField(max_length=128, verbose_name='Group password', blank=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)),
|
||||
('groupname', models.CharField(
|
||||
unique=True, max_length=16, verbose_name='Group name')),
|
||||
('gid', models.PositiveSmallIntegerField(
|
||||
unique=True, serialize=False, verbose_name='Group ID',
|
||||
primary_key=True)),
|
||||
('descr', models.TextField(
|
||||
verbose_name='Description', blank=True)),
|
||||
('passwd', models.CharField(
|
||||
max_length=128, verbose_name='Group password', blank=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Group',
|
||||
|
@ -63,15 +82,21 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='GroupTaskResult',
|
||||
fields=[
|
||||
('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)),
|
||||
('task_uuid', models.CharField(max_length=64, serialize=False, 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)),
|
||||
('task_uuid', models.CharField(
|
||||
max_length=64, serialize=False, primary_key=True)),
|
||||
('task_name', models.CharField(max_length=255, db_index=True)),
|
||||
('is_finished', models.BooleanField(default=False)),
|
||||
('is_success', models.BooleanField(default=False)),
|
||||
('state', models.CharField(max_length=10)),
|
||||
('result_body', models.TextField(blank=True)),
|
||||
('group', models.ForeignKey(to='osusers.Group')),
|
||||
('group', models.ForeignKey(
|
||||
to='osusers.Group', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
|
@ -81,13 +106,23 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='User',
|
||||
fields=[
|
||||
('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)),
|
||||
('username', models.CharField(unique=True, max_length=64, verbose_name='User name')),
|
||||
('uid', models.PositiveSmallIntegerField(unique=True, serialize=False, verbose_name='User ID', primary_key=True)),
|
||||
('gecos', models.CharField(max_length=128, verbose_name='Gecos field', blank=True)),
|
||||
('homedir', models.CharField(max_length=256, verbose_name='Home directory')),
|
||||
('shell', models.CharField(max_length=64, verbose_name='Login shell')),
|
||||
('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)),
|
||||
('username', models.CharField(
|
||||
unique=True, max_length=64, verbose_name='User name')),
|
||||
('uid', models.PositiveSmallIntegerField(
|
||||
unique=True, serialize=False, verbose_name='User ID',
|
||||
primary_key=True)),
|
||||
('gecos', models.CharField(
|
||||
max_length=128, verbose_name='Gecos field', blank=True)),
|
||||
('homedir', models.CharField(
|
||||
max_length=256, verbose_name='Home directory')),
|
||||
('shell', models.CharField(
|
||||
max_length=64, verbose_name='Login shell')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Benutzer',
|
||||
|
@ -98,16 +133,43 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='Shadow',
|
||||
fields=[
|
||||
('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)),
|
||||
('user', models.OneToOneField(primary_key=True, serialize=False, to='osusers.User', verbose_name='Benutzer')),
|
||||
('passwd', models.CharField(max_length=128, verbose_name='Encrypted password')),
|
||||
('changedays', models.PositiveSmallIntegerField(help_text='This is expressed in days since Jan 1, 1970', null=True, verbose_name='Date of last change', blank=True)),
|
||||
('minage', models.PositiveSmallIntegerField(help_text='Minimum number of days before the password can be changed', null=True, verbose_name='Minimum age', blank=True)),
|
||||
('maxage', models.PositiveSmallIntegerField(help_text='Maximum number of days after which the password has to be changed', null=True, verbose_name='Maximum age', blank=True)),
|
||||
('gracedays', models.PositiveSmallIntegerField(help_text='The number of days before the password is going to expire', null=True, verbose_name='Grace period', blank=True)),
|
||||
('inactdays', models.PositiveSmallIntegerField(help_text='The number of days after the password has expired during which the password should still be accepted', null=True, verbose_name='Inactivity period', blank=True)),
|
||||
('expiredays', models.PositiveSmallIntegerField(default=None, help_text='The date of expiration of the account, expressed as number of days since Jan 1, 1970', null=True, verbose_name='Account expiration date', blank=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)),
|
||||
('user', models.OneToOneField(
|
||||
primary_key=True, serialize=False, to='osusers.User',
|
||||
verbose_name='Benutzer', on_delete=models.CASCADE)),
|
||||
('passwd', models.CharField(
|
||||
max_length=128, verbose_name='Encrypted password')),
|
||||
('changedays', models.PositiveSmallIntegerField(
|
||||
help_text='This is expressed in days since Jan 1, 1970',
|
||||
null=True, verbose_name='Date of last change', blank=True)),
|
||||
('minage', models.PositiveSmallIntegerField(
|
||||
help_text='Minimum number of days before the password can '
|
||||
'be changed',
|
||||
null=True, verbose_name='Minimum age', blank=True)),
|
||||
('maxage', models.PositiveSmallIntegerField(
|
||||
help_text='Maximum number of days after which the '
|
||||
'password has to be changed',
|
||||
null=True, verbose_name='Maximum age', blank=True)),
|
||||
('gracedays', models.PositiveSmallIntegerField(
|
||||
help_text='The number of days before the password is '
|
||||
'going to expire',
|
||||
null=True, verbose_name='Grace period', blank=True)),
|
||||
('inactdays', models.PositiveSmallIntegerField(
|
||||
help_text='The number of days after the password has '
|
||||
'expired during which the password should still '
|
||||
'be accepted',
|
||||
null=True, verbose_name='Inactivity period', blank=True)),
|
||||
('expiredays', models.PositiveSmallIntegerField(
|
||||
default=None,
|
||||
help_text='The date of expiration of the account, '
|
||||
'expressed as number of days since Jan 1, 1970',
|
||||
null=True, verbose_name='Account expiration date',
|
||||
blank=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Shadow password',
|
||||
|
@ -118,15 +180,21 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='UserTaskResult',
|
||||
fields=[
|
||||
('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)),
|
||||
('task_uuid', models.CharField(max_length=64, serialize=False, 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)),
|
||||
('task_uuid', models.CharField(
|
||||
max_length=64, serialize=False, primary_key=True)),
|
||||
('task_name', models.CharField(max_length=255, db_index=True)),
|
||||
('is_finished', models.BooleanField(default=False)),
|
||||
('is_success', models.BooleanField(default=False)),
|
||||
('state', models.CharField(max_length=10)),
|
||||
('result_body', models.TextField(blank=True)),
|
||||
('user', models.ForeignKey(to='osusers.User')),
|
||||
('user', models.ForeignKey(
|
||||
to='osusers.User', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
|
@ -136,23 +204,27 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='group',
|
||||
field=models.ForeignKey(verbose_name='Group', to='osusers.Group'),
|
||||
field=models.ForeignKey(
|
||||
verbose_name='Group', to='osusers.Group',
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='additionalgroup',
|
||||
name='group',
|
||||
field=models.ForeignKey(to='osusers.Group'),
|
||||
field=models.ForeignKey(
|
||||
to='osusers.Group', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='additionalgroup',
|
||||
name='user',
|
||||
field=models.ForeignKey(to='osusers.User'),
|
||||
field=models.ForeignKey(
|
||||
to='osusers.User', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='additionalgroup',
|
||||
unique_together=set([('user', 'group')]),
|
||||
unique_together={('user', 'group')},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -6,7 +6,6 @@ from django.conf import settings
|
|||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('osusers', '0002_auto_20141226_1456'),
|
||||
|
@ -16,7 +15,9 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='customer',
|
||||
field=models.ForeignKey(default=1, to=settings.AUTH_USER_MODEL),
|
||||
field=models.ForeignKey(
|
||||
default=1, to=settings.AUTH_USER_MODEL,
|
||||
on_delete=models.CASCADE),
|
||||
preserve_default=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 = [
|
||||
('osusers', '0003_user_customer'),
|
||||
]
|
||||
|
@ -18,7 +17,9 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='shadow',
|
||||
name='user',
|
||||
field=models.OneToOneField(primary_key=True, serialize=False, to='osusers.User', verbose_name='User'),
|
||||
field=models.OneToOneField(
|
||||
primary_key=True, serialize=False, to='osusers.User',
|
||||
verbose_name='User', 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 = [
|
||||
('osusers', '0004_auto_20150104_1751'),
|
||||
]
|
||||
|
@ -16,13 +15,25 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='SshPublicKey',
|
||||
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)),
|
||||
('algorithm', models.CharField(max_length=20, verbose_name='Algorithm')),
|
||||
('data', models.TextField(help_text='Base64 encoded key bytes', verbose_name='Key bytes')),
|
||||
('comment', models.TextField(verbose_name='Comment', blank=True)),
|
||||
('user', models.ForeignKey(verbose_name='User', to='osusers.User')),
|
||||
('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)),
|
||||
('algorithm', models.CharField(
|
||||
max_length=20, verbose_name='Algorithm')),
|
||||
('data', models.TextField(
|
||||
help_text='Base64 encoded key bytes',
|
||||
verbose_name='Key bytes')),
|
||||
('comment', models.TextField(
|
||||
verbose_name='Comment', blank=True)),
|
||||
('user', models.ForeignKey(
|
||||
verbose_name='User', to='osusers.User',
|
||||
on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'SSH public key',
|
||||
|
@ -32,6 +43,6 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='sshpublickey',
|
||||
unique_together=set([('user', 'algorithm', 'data')]),
|
||||
unique_together={('user', 'algorithm', 'data')},
|
||||
),
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue