Example #1
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('id', models.CharField(blank=True, default=apps.core.models.generate_ulid, editable=False, max_length=26, primary_key=True, serialize=False, unique=True)),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created at')),
                ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated at')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='Email address')),
                ('is_active', models.BooleanField(default=True, verbose_name='Active')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('first_name', models.CharField(blank=True, max_length=40, null=True)),
                ('last_name', models.CharField(blank=True, max_length=80, null=True)),
                ('username', models.CharField(max_length=255, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='Username')),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
            ],
            options={
                'ordering': ['last_name', 'first_name'],
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
    ]
Example #2
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0008_alter_user_username_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
                ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
            ],
            options={
                'abstract': False,
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
            },
            managers=[
                ('objects', apps.core.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Profile',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('alias', models.CharField(blank=True, max_length=30, unique=True)),
                ('role', models.CharField(blank=True, max_length=255)),
                ('birth_date', models.DateField(blank=True, null=True)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Example #3
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='BaseUser',
            fields=[
                ('password',
                 models.CharField(max_length=128, verbose_name='password')),
                ('last_login',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name='last login')),
                ('is_superuser',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates that this user has all permissions without explicitly assigning them.',
                     verbose_name='superuser status')),
                ('first_name',
                 models.CharField(blank=True,
                                  max_length=150,
                                  verbose_name='first name')),
                ('last_name',
                 models.CharField(blank=True,
                                  max_length=150,
                                  verbose_name='last name')),
                ('is_staff',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates whether the user can log into this admin site.',
                     verbose_name='staff status')),
                ('is_active',
                 models.BooleanField(
                     default=True,
                     help_text=
                     'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.',
                     verbose_name='active')),
                ('date_joined',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='date joined')),
                ('uuid',
                 apps.core.models.UUIDField(blank=True,
                                            editable=False,
                                            max_length=32,
                                            primary_key=True,
                                            serialize=False,
                                            unique=True)),
                ('created_date',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Created date')),
                ('last_updated_date',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Last updated date')),
                ('email',
                 models.EmailField(max_length=100, null=True, unique=True)),
                ('username', models.CharField(max_length=100, unique=True)),
                ('user_type',
                 models.CharField(choices=[('normal', 'normal'),
                                           ('admin', 'admin')],
                                  default='normal',
                                  max_length=100)),
                ('slug', models.SlugField(unique=True)),
                ('photo', models.URLField(blank=True, default='', null=True)),
                ('groups',
                 models.ManyToManyField(
                     blank=True,
                     help_text=
                     'The groups this user belongs to. A user will get all permissions granted to each of their groups.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Group',
                     verbose_name='groups')),
                ('user_permissions',
                 models.ManyToManyField(
                     blank=True,
                     help_text='Specific permissions for this user.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Permission',
                     verbose_name='user permissions')),
            ],
            options={
                'verbose_name': 'User',
            },
        ),
        migrations.CreateModel(
            name='BaseUserProfile',
            fields=[
                ('uuid',
                 apps.core.models.UUIDField(blank=True,
                                            editable=False,
                                            max_length=32,
                                            primary_key=True,
                                            serialize=False,
                                            unique=True)),
                ('created_date',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Created date')),
                ('last_updated_date',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Last updated date')),
                ('fullname',
                 models.CharField(blank=True,
                                  max_length=20,
                                  null=True,
                                  verbose_name='Fullname')),
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Profile',
            },
        ),
    ]
Example #4
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('data', '0001_initial'),
        ('auth', '0008_alter_user_username_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='Pixeler',
            fields=[
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
                ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
                ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'abstract': False,
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Analysis',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('secondary_data', models.FileField(upload_to=apps.core.models.Analysis.secondary_data_upload_to, verbose_name='Secondary data')),
                ('notebook', models.FileField(blank=True, help_text='Upload your Jupiter Notebook or any other document helping to understand your analysis', upload_to=apps.core.models.Analysis.notebook_upload_to, verbose_name='Notebook')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('saved_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Analysis',
                'verbose_name_plural': 'Analyses',
            },
        ),
        migrations.CreateModel(
            name='Experiment',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('released_at', models.DateField(verbose_name='Release date')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('saved_at', models.DateTimeField(auto_now=True)),
                ('entries', models.ManyToManyField(related_name='experiments', related_query_name='experiment', to='data.Entry')),
            ],
            options={
                'verbose_name': 'Experiment',
                'verbose_name_plural': 'Experiments',
            },
        ),
        migrations.CreateModel(
            name='OmicsArea',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('lft', models.PositiveIntegerField(db_index=True, editable=False)),
                ('rght', models.PositiveIntegerField(db_index=True, editable=False)),
                ('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
                ('level', models.PositiveIntegerField(db_index=True, editable=False)),
                ('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='core.OmicsArea')),
            ],
            options={
                'verbose_name': 'Omics area',
                'verbose_name_plural': 'Omics areas',
            },
        ),
        migrations.CreateModel(
            name='OmicsUnit',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('status', models.PositiveSmallIntegerField(choices=[(1, 'Dubious'), (2, 'Exists'), (3, 'Invalid'), (4, 'Validated')], default=1, verbose_name='Status')),
                ('reference', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='data.Entry')),
            ],
            options={
                'verbose_name': 'Omics Unit',
                'verbose_name_plural': 'Omics Units',
            },
        ),
        migrations.CreateModel(
            name='OmicsUnitType',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
            ],
            options={
                'verbose_name': 'Omics unit type',
                'verbose_name_plural': 'Omics unit types',
            },
        ),
        migrations.CreateModel(
            name='Pixel',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('value', models.FloatField(help_text='The pixel value', verbose_name='Value')),
                ('quality_score', models.FloatField(blank=True, help_text='Could be a p-value, confidence index, etc.', null=True, verbose_name='Quality score')),
                ('analysis', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pixels', related_query_name='pixel', to='core.Analysis')),
                ('omics_unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pixels', related_query_name='pixel', to='core.OmicsUnit')),
            ],
            options={
                'verbose_name': 'Pixel',
                'verbose_name_plural': 'Pixels',
            },
        ),
        migrations.CreateModel(
            name='Species',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('reference', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='species', related_query_name='species', to='data.Entry')),
            ],
            options={
                'verbose_name': 'Species',
                'verbose_name_plural': 'Species',
            },
        ),
        migrations.CreateModel(
            name='Strain',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(max_length=100, verbose_name='Name')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('species', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='strains', related_query_name='strain', to='core.Species')),
            ],
            options={
                'verbose_name': 'Strain',
                'verbose_name_plural': 'Strains',
            },
        ),
        migrations.CreateModel(
            name='Tag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True)),
                ('slug', models.SlugField()),
                ('count', models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use')),
                ('protected', models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0')),
            ],
            options={
                'ordering': ('name',),
                'abstract': False,
            },
            bases=(tagulous.models.models.BaseTagModel, models.Model),
        ),
        migrations.AlterUniqueTogether(
            name='tag',
            unique_together=set([('slug',)]),
        ),
        migrations.AddField(
            model_name='omicsunit',
            name='strain',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='omics_units', related_query_name='omics_unit', to='core.Strain'),
        ),
        migrations.AddField(
            model_name='omicsunit',
            name='type',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='omics_units', related_query_name='omics_unit', to='core.OmicsUnitType'),
        ),
        migrations.AddField(
            model_name='experiment',
            name='omics_area',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='experiments', related_query_name='experiment', to='core.OmicsArea'),
        ),
        migrations.AddField(
            model_name='experiment',
            name='tags',
            field=tagulous.models.fields.TagField(_set_tag_meta=True, help_text='Enter a comma-separated tag string', to='core.Tag'),
        ),
        migrations.AddField(
            model_name='analysis',
            name='experiments',
            field=models.ManyToManyField(related_name='analyses', related_query_name='analysis', to='core.Experiment'),
        ),
        migrations.AddField(
            model_name='analysis',
            name='pixeler',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='analyses', related_query_name='analysis', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='analysis',
            name='tags',
            field=tagulous.models.fields.TagField(_set_tag_meta=True, help_text='Enter a comma-separated tag string', to='core.Tag'),
        ),
        migrations.AlterUniqueTogether(
            name='strain',
            unique_together=set([('name', 'species')]),
        ),
        migrations.AlterUniqueTogether(
            name='omicsunit',
            unique_together=set([('reference', 'strain', 'type')]),
        ),
    ]
Example #5
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='Users',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('password',
                 models.CharField(max_length=128, verbose_name='password')),
                ('last_login',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name='last login')),
                ('is_superuser',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates that this user has all permissions without explicitly assigning them.',
                     verbose_name='superuser status')),
                ('email',
                 models.EmailField(max_length=254,
                                   unique=True,
                                   verbose_name='Почта')),
                ('account_type',
                 models.IntegerField(choices=[(0, 'Root'),
                                              (1, 'Администратор'),
                                              (2, 'Учитель'), (3, 'Ученик')],
                                     default=3,
                                     verbose_name='Тип аккаунта')),
                ('is_active',
                 models.BooleanField(default=True, verbose_name='Активный')),
                ('is_staff',
                 models.BooleanField(default=False,
                                     verbose_name='Администратор')),
                ('first_name',
                 models.CharField(max_length=100, verbose_name='Имя')),
                ('second_name',
                 models.CharField(blank=True,
                                  default='',
                                  max_length=100,
                                  verbose_name='Отчество')),
                ('surname',
                 models.CharField(max_length=100, verbose_name='Фамилия')),
                ('registration_date',
                 models.DateField(auto_now_add=True,
                                  null=True,
                                  verbose_name='Дата регистрации')),
            ],
            options={
                'verbose_name':
                'Пользователь',
                'verbose_name_plural':
                'Пользователи',
                'permissions':
                [('edit_news', 'Может редактировать статьи в новостном блоке.')
                 ],
            },
            managers=[
                ('objects', apps.core.users.manager.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='AdminMessages',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('date',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Время отправки')),
                ('subject',
                 models.CharField(max_length=100,
                                  verbose_name='Тема сообщения')),
                ('content',
                 models.TextField(max_length=4000,
                                  verbose_name='Текст сообщения')),
                ('is_read',
                 models.BooleanField(default=False,
                                     verbose_name='Прочитанное')),
            ],
            options={
                'verbose_name': 'Сообщение администратору',
                'verbose_name_plural': 'Сообщения администратору',
                'ordering': ['date', 'subject'],
            },
        ),
        migrations.CreateModel(
            name='AverageValues',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('weights_x_values',
                 models.IntegerField(
                     verbose_name='Сумма произведений весов и значений оценок')
                 ),
                ('weights_sum',
                 models.IntegerField(verbose_name='Сумма весов оценок')),
                ('grades_number',
                 models.IntegerField(verbose_name='Количество оценок')),
                ('grades_sum',
                 models.IntegerField(verbose_name='Сумма значений оценок')),
                ('missed',
                 models.IntegerField(
                     default=0, verbose_name='Количество пропущенных уроков')),
            ],
            options={
                'verbose_name': 'Данные об оценках учеников',
            },
        ),
        migrations.CreateModel(
            name='Controls',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=150, verbose_name='Вид работы')),
                ('weight',
                 models.FloatField(default=1, verbose_name='Коэффицент')),
                ('notify',
                 models.BooleanField(default=False,
                                     verbose_name='Оповещать учеников')),
                ('default',
                 models.BooleanField(default=False,
                                     verbose_name='Вид работы по умолчанию')),
            ],
            options={
                'verbose_name': 'Вид работы',
                'verbose_name_plural': 'Виды работ',
            },
        ),
        migrations.CreateModel(
            name='Groups',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
            ],
            options={
                'verbose_name': 'Группа',
                'verbose_name_plural': 'Группы',
            },
        ),
        migrations.CreateModel(
            name='Homework',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('content', models.TextField(blank=True,
                                             verbose_name='Задание')),
            ],
            options={
                'verbose_name': 'Домашнее задание',
                'verbose_name_plural': 'Домашние задания',
            },
        ),
        migrations.CreateModel(
            name='Quarters',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('number',
                 models.IntegerField(choices=[(1, 'I'), (2, 'II'), (3, 'III'),
                                              (4, 'IV')],
                                     unique=True,
                                     verbose_name='Четверть')),
                ('begin', models.DateField(verbose_name='Начало четверти')),
                ('end', models.DateField(verbose_name='Конец четверти')),
            ],
            options={
                'verbose_name': 'Четверть',
                'verbose_name_plural': 'Четверти',
                'ordering': ['number'],
            },
        ),
        migrations.CreateModel(
            name='Subjects',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=100,
                                  unique=True,
                                  verbose_name='Название')),
                ('icon',
                 models.ImageField(blank=True,
                                   upload_to='subject_icons/',
                                   verbose_name='Иконка')),
            ],
            options={
                'verbose_name': 'Предмет',
                'verbose_name_plural': 'Предметы',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Admins',
            fields=[
                ('account',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     related_name='admin',
                     serialize=False,
                     to='core.users',
                     verbose_name='Пользователь')),
            ],
            options={
                'verbose_name': 'Администратор',
                'verbose_name_plural': 'Администраторы',
            },
        ),
        migrations.CreateModel(
            name='Students',
            fields=[
                ('account',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     related_name='student',
                     serialize=False,
                     to='core.users',
                     verbose_name='Пользователь')),
                ('president',
                 models.BooleanField(default=False, verbose_name='Староста')),
            ],
            options={
                'verbose_name': 'Ученик',
                'verbose_name_plural': 'Ученики',
                'ordering': ['klass'],
            },
        ),
        migrations.CreateModel(
            name='Teachers',
            fields=[
                ('account',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     related_name='teacher',
                     serialize=False,
                     to='core.users',
                     verbose_name='Пользователь')),
            ],
            options={
                'verbose_name': 'Учитель',
                'verbose_name_plural': 'Учителя',
            },
        ),
        migrations.CreateModel(
            name='Lessons',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('date', models.DateField(verbose_name='Дата')),
                ('theme',
                 models.CharField(blank=True,
                                  max_length=120,
                                  verbose_name='Тема')),
                ('is_planned',
                 models.BooleanField(default=False,
                                     verbose_name='Запланирован')),
                ('control',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   to='core.controls',
                                   verbose_name='Контроль')),
                ('group',
                 models.ForeignKey(default=None,
                                   null=True,
                                   on_delete=django.db.models.deletion.PROTECT,
                                   to='core.groups',
                                   verbose_name='Группа')),
                ('quarter',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   to='core.quarters',
                                   verbose_name='Четверть')),
            ],
            options={
                'verbose_name': 'Урок',
                'verbose_name_plural': 'Уроки',
                'ordering': ['date'],
            },
        ),
        migrations.CreateModel(
            name='Klasses',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('number',
                 models.IntegerField(choices=[(1, 1), (2, 2), (3, 3), (4, 4),
                                              (5, 5), (6, 6), (7, 7), (8, 8),
                                              (9, 9), (10, 10), (11, 11)],
                                     verbose_name='Класс')),
                ('letter',
                 models.CharField(choices=[('А', 'А'), ('Б', 'Б'), ('В', 'В'),
                                           ('Г', 'Г'), ('Д', 'Д'), ('Е', 'Е'),
                                           ('Ж', 'Ж'), ('З', 'З'), ('И', 'И'),
                                           ('К', 'К')],
                                  max_length=2,
                                  verbose_name='Буква')),
                ('subjects',
                 models.ManyToManyField(to='core.Subjects',
                                        verbose_name='Предметы')),
            ],
            options={
                'verbose_name': 'Класс',
                'verbose_name_plural': 'Классы',
                'ordering': ['number', 'letter'],
            },
        ),
        migrations.CreateModel(
            name='HomeworkFiles',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('file',
                 models.FileField(upload_to=apps.core.models.homework_upload,
                                  verbose_name='Файл')),
                ('homework',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='files',
                                   to='core.homework')),
            ],
        ),
        migrations.AddField(
            model_name='homework',
            name='lesson',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='core.lessons',
                verbose_name='Урок'),
        ),
        migrations.AddField(
            model_name='groups',
            name='klass',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='core.klasses',
                verbose_name='Класс'),
        ),
        migrations.AddField(
            model_name='groups',
            name='subject',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='core.subjects',
                verbose_name='Предмет'),
        ),
        migrations.CreateModel(
            name='Grades',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('amount',
                 models.IntegerField(default=None,
                                     null=True,
                                     verbose_name='Балл')),
                ('comment',
                 models.TextField(blank=True,
                                  default='',
                                  verbose_name='Комментарий')),
                ('lesson',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='core.lessons',
                                   verbose_name='Урок')),
            ],
            options={
                'verbose_name_plural': 'Оценки',
                'ordering': ['lesson'],
            },
        ),
        migrations.AddConstraint(
            model_name='controls',
            constraint=models.UniqueConstraint(
                condition=models.Q(default=True),
                fields=('default', ),
                name='unique_default_control'),
        ),
        migrations.AddField(
            model_name='averagevalues',
            name='subject',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='core.subjects'),
        ),
        migrations.AddField(
            model_name='adminmessages',
            name='sender',
            field=models.ForeignKey(
                default=None,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL,
                verbose_name='Отправитель'),
        ),
        migrations.AddField(
            model_name='users',
            name='groups',
            field=models.ManyToManyField(
                blank=True,
                help_text=
                'The groups this user belongs to. A user will get all permissions granted to each of their groups.',
                related_name='user_set',
                related_query_name='user',
                to='auth.Group',
                verbose_name='groups'),
        ),
        migrations.AddField(
            model_name='users',
            name='user_permissions',
            field=models.ManyToManyField(
                blank=True,
                help_text='Specific permissions for this user.',
                related_name='user_set',
                related_query_name='user',
                to='auth.Permission',
                verbose_name='user permissions'),
        ),
        migrations.AddField(
            model_name='teachers',
            name='subjects',
            field=models.ManyToManyField(to='core.Subjects',
                                         verbose_name='Предметы'),
        ),
        migrations.AddField(
            model_name='students',
            name='klass',
            field=models.ForeignKey(
                blank=True,
                default=None,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to='core.klasses',
                verbose_name='Класс'),
        ),
        migrations.AddField(
            model_name='klasses',
            name='head_teacher',
            field=models.OneToOneField(
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                related_name='klass',
                to='core.teachers',
                verbose_name='Классный руководитель'),
        ),
        migrations.AddField(
            model_name='klasses',
            name='teachers',
            field=models.ManyToManyField(related_name='klasses',
                                         to='core.Teachers',
                                         verbose_name='Учителя'),
        ),
        migrations.AddField(
            model_name='groups',
            name='students',
            field=models.ManyToManyField(to='core.Students',
                                         verbose_name='Отображаемые ученики'),
        ),
        migrations.AddField(
            model_name='grades',
            name='student',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='core.students',
                verbose_name='Ученик'),
        ),
        migrations.AddField(
            model_name='averagevalues',
            name='student',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='average',
                to='core.students'),
        ),
        migrations.AlterUniqueTogether(
            name='klasses',
            unique_together={('number', 'letter')},
        ),
        migrations.AlterUniqueTogether(
            name='groups',
            unique_together={('klass', 'subject')},
        ),
        migrations.AlterUniqueTogether(
            name='averagevalues',
            unique_together={('student', 'subject')},
        ),
    ]