|
| 1 | +# Generated by Django 4.2.11 on 2026-02-20 05:56 |
| 2 | + |
| 3 | +import django.core.validators |
| 4 | +from django.db import migrations, models |
| 5 | +import django.db.models.deletion |
| 6 | + |
| 7 | + |
| 8 | +class Migration(migrations.Migration): |
| 9 | + |
| 10 | + initial = True |
| 11 | + |
| 12 | + dependencies = [ |
| 13 | + ('partner_programs', '0016_partnerprogram_is_distributed_evaluation'), |
| 14 | + ('files', '0007_auto_20230929_1727'), |
| 15 | + ] |
| 16 | + |
| 17 | + operations = [ |
| 18 | + migrations.CreateModel( |
| 19 | + name='Course', |
| 20 | + fields=[ |
| 21 | + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
| 22 | + ('title', models.CharField(max_length=45, verbose_name='Название курса')), |
| 23 | + ('description', models.TextField(blank=True, default='', validators=[django.core.validators.MaxLengthValidator(600)], verbose_name='Описание')), |
| 24 | + ('access_type', models.CharField(choices=[('all_users', 'Для всех пользователей'), ('program_members', 'Для участников программы'), ('subscription_stub', 'По подписке')], default='all_users', max_length=32, verbose_name='Тип доступа')), |
| 25 | + ('start_date', models.DateField(blank=True, null=True, verbose_name='Дата старта')), |
| 26 | + ('end_date', models.DateField(blank=True, null=True, verbose_name='Дата окончания')), |
| 27 | + ('status', models.CharField(choices=[('draft', 'Черновик'), ('published', 'Опубликован'), ('completed', 'Завершен')], default='draft', max_length=16, verbose_name='Статус курса')), |
| 28 | + ('is_completed', models.BooleanField(default=False, verbose_name='Курс завершен')), |
| 29 | + ('completed_at', models.DateTimeField(blank=True, null=True, verbose_name='Дата завершения')), |
| 30 | + ('datetime_created', models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')), |
| 31 | + ('datetime_updated', models.DateTimeField(auto_now=True, verbose_name='Дата обновления')), |
| 32 | + ('avatar_file', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='course_avatars', to='files.userfile', verbose_name='Аватар курса')), |
| 33 | + ('card_cover_file', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='course_card_covers', to='files.userfile', verbose_name='Обложка карточки курса')), |
| 34 | + ('header_cover_file', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='course_header_covers', to='files.userfile', verbose_name='Обложка шапки курса')), |
| 35 | + ('partner_program', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='courses', to='partner_programs.partnerprogram', verbose_name='Программа')), |
| 36 | + ], |
| 37 | + options={ |
| 38 | + 'verbose_name': 'Курс', |
| 39 | + 'verbose_name_plural': 'Курсы', |
| 40 | + 'ordering': ('-datetime_created',), |
| 41 | + }, |
| 42 | + ), |
| 43 | + ] |
0 commit comments