Esempio n. 1
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=120)),
                ('description', models.TextField()),
                ('image',
                 models.ImageField(
                     blank=True,
                     null=True,
                     upload_to=courses.models.upload_image_path)),
            ],
        ),
    ]
Esempio n. 2
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0009_auto_20200514_0951'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='thumbnail',
            field=models.ImageField(blank=True, null=True, upload_to=courses.models.course_upload_location),
        ),
        migrations.AlterField(
            model_name='video',
            name='video_file',
            field=models.FileField(null=True, upload_to=courses.models.upload_location),
        ),
        migrations.AlterUniqueTogether(
            name='course',
            unique_together={('title', 'slug')},
        ),
        migrations.AlterUniqueTogether(
            name='lesson',
            unique_together={('title', 'slug')},
        ),
        migrations.AlterUniqueTogether(
            name='video',
            unique_together={('title', 'slug')},
        ),
    ]
Esempio n. 3
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0027_remove_course_step_detail'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='step',
            options={},
        ),
        migrations.RenameField(
            model_name='step',
            old_name='course',
            new_name='related_course',
        ),
        migrations.RenameField(
            model_name='step',
            old_name='description',
            new_name='related_title',
        ),
        migrations.RemoveField(
            model_name='step',
            name='contents',
        ),
        migrations.RemoveField(
            model_name='step',
            name='created_by',
        ),
        migrations.RemoveField(
            model_name='step',
            name='title',
        ),
        migrations.AddField(
            model_name='step',
            name='related_created_at',
            field=models.DateTimeField(auto_now=True),
        ),
        migrations.AddField(
            model_name='step',
            name='related_description',
            field=models.TextField(default=django.utils.timezone.now),
            preserve_default=False,
        ),
        migrations.AddField(
            model_name='step',
            name='related_image',
            field=models.ImageField(default='media/default.png',
                                    upload_to=courses.models.get_image_path),
        ),
        migrations.AddField(
            model_name='step',
            name='related_title_html',
            field=models.TextField(default=django.utils.timezone.now,
                                   editable=False),
            preserve_default=False,
        ),
    ]
Esempio n. 4
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0018_auto_20170207_2336'),
    ]

    operations = [
        migrations.AddField(
            model_name='course',
            name='image',
            field=models.ImageField(blank=True, height_field='image_height', null=True, upload_to=courses.models.handle_upload, width_field='image_width'),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0004_auto_20190626_1611'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='image',
            field=models.ImageField(upload_to=courses.models.content_file_name),
        ),
    ]
Esempio n. 6
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Subject',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=50)),
                ('description', models.CharField(max_length=500)),
                ('pub_date', models.DateTimeField(auto_now=True)),
                ('slug', models.SlugField(max_length=200, unique=True)),
            ],
            options={
                'verbose_name': 'Subject',
                'ordering': ('title', ),
            },
        ),
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=50)),
                ('image',
                 models.ImageField(
                     blank=True, upload_to=courses.models.upload_image_path)),
                ('description', models.CharField(max_length=500)),
                ('pub_date', models.DateTimeField(auto_now=True)),
                ('slug', models.SlugField(max_length=200, unique=True)),
                ('subject',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='products',
                                   to='courses.Subject')),
            ],
            options={
                'ordering': ('title', ),
                'index_together': {('id', 'slug')},
            },
        ),
    ]
Esempio n. 7
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0005_auto_20190518_1806'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='image',
            field=models.ImageField(upload_to=courses.models.upload_to_path,
                                    verbose_name='封面图'),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0007_remove_vehicle_default'),
    ]

    operations = [
        migrations.AlterField(
            model_name='coursescreenshot',
            name='shot',
            field=models.ImageField(
                max_length=255, upload_to=courses.models.screenshot_location),
        ),
    ]
Esempio n. 9
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0021_course_image'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='image',
            field=models.ImageField(default='media/default.png',
                                    upload_to=courses.models.get_image_path),
        ),
    ]
Esempio n. 10
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0002_course_image'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='image',
            field=models.ImageField(
                default='/media/ml.jpg',
                upload_to=courses.models.content_file_name),
        ),
    ]
Esempio n. 11
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
            model_name='course',
            name='image',
            field=models.ImageField(
                default=1, upload_to=courses.models.content_file_name),
            preserve_default=False,
        ),
    ]
Esempio n. 12
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0003_auto_20190626_1610'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='image',
            field=models.ImageField(
                default='/media/defaultImg.jpg',
                upload_to=courses.models.content_file_name),
        ),
    ]
Esempio n. 13
0
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0015_auto_20200115_1055'),
    ]

    operations = [
        migrations.AddField(
            model_name='course',
            name='cover',
            field=models.ImageField(
                default='courses/default.png',
                upload_to='courses/',
                validators=[courses.models.validate_image_size]),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0024_auto_20190305_1923'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='course_image',
            field=models.ImageField(
                default='course/default_image/course_default.jpg',
                max_length=500,
                upload_to=courses.models.get_upload_course_image_path,
                verbose_name='课程图片'),
        ),
    ]
Esempio n. 15
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('main', '0023_auto_20170731_1841'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='CbCourses',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=255)),
                ('content', models.TextField()),
                ('image',
                 models.ImageField(
                     default='courses_image.png',
                     upload_to=courses.models.upload_courses_image)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('meta_data',
                 django.contrib.postgres.fields.jsonb.JSONField()),
                ('is_visible', models.BooleanField(default=True)),
                ('category',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='category_courses',
                     to='main.CbCategory')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='user_courses',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'cb_courses',
            },
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='CourseDetail',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('subject', models.CharField(max_length=120)),
                ('description', models.TextField()),
                ('image', models.ImageField(blank=True, null=True, upload_to=courses.models.upload_image_path)),
                ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Course')),
            ],
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0005_auto_20190331_0313'),
    ]

    operations = [
        migrations.AddField(
            model_name='course',
            name='certificate',
            field=models.ImageField(blank=True, null=True, upload_to=courses.models.course_directory_path),
        ),
        migrations.AlterField(
            model_name='topic',
            name='course',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='topics', to='courses.Course'),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0016_course_cover'),
    ]

    operations = [
        migrations.AddField(
            model_name='courseenrollment',
            name='_grade',
            field=models.IntegerField(db_column='grade', null=True),
        ),
        migrations.AlterField(
            model_name='course',
            name='cover',
            field=models.ImageField(default='courses/default.png', upload_to=courses.models.course_cover_path, validators=[courses.models.validate_image_size]),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0004_auto_20180817_1056'),
    ]

    operations = [
        migrations.AlterField(
            model_name='course',
            name='image',
            field=models.ImageField(blank=True,
                                    null=True,
                                    upload_to=courses.models.upload_to_dir),
        ),
        migrations.AlterField(
            model_name='document',
            name='file',
            field=models.FileField(blank=True,
                                   null=True,
                                   upload_to=courses.models.upload_to_dir,
                                   validators=[
                                       courses.validators.FileValidator(
                                           allowed_extensions='pdf',
                                           allowed_mimetypes='application/pdf',
                                           max_size=104857600)
                                   ]),
        ),
        migrations.AlterField(
            model_name='video',
            name='file',
            field=models.FileField(blank=True,
                                   null=True,
                                   upload_to=courses.models.upload_to_dir,
                                   validators=[
                                       courses.validators.FileValidator(
                                           allowed_extensions=('mp4', 'ogg',
                                                               'webm'),
                                           allowed_mimetypes=('media/mp4',
                                                              'media/ogg',
                                                              'media/webm'),
                                           max_size=104857600)
                                   ]),
        ),
    ]
Esempio n. 20
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('title', models.CharField(max_length=500)),
                ('description', models.TextField()),
                ('image', models.ImageField(upload_to=courses.models.get_image_dir)),
                ('price', models.DecimalField(decimal_places=2, max_digits=9)),
                ('enrollees', models.ManyToManyField(to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Esempio n. 21
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=120)),
                ('content', models.TextField()),
                ('image',
                 models.ImageField(blank=True,
                                   null=True,
                                   upload_to=courses.models.uploded_location)),
                ('publish', models.DateField()),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('video',
                 models.FileField(blank=True,
                                  null=True,
                                  upload_to=courses.models.uploded_location)),
                ('user',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=True,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('courses', '0015_course_secondary'),
    ]

    operations = [
        migrations.AddField(
            model_name='course',
            name='image',
            field=models.ImageField(blank=True, height_field=models.IntegerField(blank=True, null=True), null=True, upload_to=courses.models.handle_upload, width_field=models.IntegerField(blank=True, null=True)),
        ),
        migrations.AddField(
            model_name='course',
            name='image_height',
            field=models.IntegerField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='course',
            name='image_width',
            field=models.IntegerField(blank=True, null=True),
        ),
    ]
Esempio n. 23
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('orgs', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='CourseInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('image', models.ImageField(max_length=200, upload_to='course/', verbose_name='课程封面')),
                ('name', models.CharField(max_length=20, verbose_name='课程名称')),
                ('study_time', models.IntegerField(default=0, verbose_name='学习时长')),
                ('study_num', models.IntegerField(default=0, verbose_name='学习人数')),
                ('level', models.CharField(choices=[('gj', '高级'), ('zj', '中级'), ('cj', '初级')], default='cj', max_length=20, verbose_name='课程难度')),
                ('love_num', models.IntegerField(default=0, verbose_name='收藏数')),
                ('click_num', models.IntegerField(default=0, verbose_name='点击数')),
                ('desc', models.CharField(max_length=200, verbose_name='简介')),
                ('detail', models.TextField(verbose_name='课程详情')),
                ('category', models.CharField(choices=[('qd', '前端开发'), ('hd', '后端开发')], max_length=20, verbose_name='课程类别')),
                ('course_notice', models.CharField(max_length=200, verbose_name='课程公告')),
                ('course_need', models.CharField(max_length=100, verbose_name='课程须知')),
                ('course_tell', models.CharField(max_length=100, verbose_name='老师教导')),
                ('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='添加时间')),
                ('orginfo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orgs.OrgInfo', verbose_name='所属机构')),
                ('teacherinfo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orgs.TeacherInfo', verbose_name='所属讲师')),
            ],
            options={
                'verbose_name': '课程信息',
                'verbose_name_plural': '课程信息',
            },
        ),
        migrations.CreateModel(
            name='LessonInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, verbose_name='章节名称')),
                ('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='添加时间')),
                ('courseInfo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.CourseInfo', verbose_name='所属课程')),
            ],
            options={
                'verbose_name': '课程信息',
                'verbose_name_plural': '课程信息',
            },
        ),
        migrations.CreateModel(
            name='SourceInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, verbose_name='资源名称')),
                ('down_load', models.FileField(max_length=200, upload_to='source/', verbose_name='下载路径')),
                ('所属课程', models.FileField(upload_to='', verbose_name=courses.models.CourseInfo)),
                ('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='添加时间')),
            ],
            options={
                'verbose_name': '资源信息',
                'verbose_name_plural': '资源信息',
            },
        ),
        migrations.CreateModel(
            name='VideoInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, verbose_name='视频名称')),
                ('study_time', models.IntegerField(default=0, verbose_name='视频时长')),
                ('url', models.URLField(default='http://www.atguigu.com', verbose_name='视频链接')),
                ('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='添加时间')),
                ('lessoninfo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.LessonInfo', verbose_name='所属章节')),
            ],
            options={
                'verbose_name': '视频信息',
                'verbose_name_plural': '视频信息',
            },
        ),
    ]
Esempio n. 24
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('orgnization', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Chapter',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('chapter_order', models.IntegerField(default=0, verbose_name='章节序号')),
                ('chapter_title', models.CharField(max_length=128, verbose_name='章节标题')),
                ('chapter_desc', models.CharField(max_length=1024, verbose_name='章节介绍')),
                ('add_time', models.DateField(default=datetime.datetime.now, verbose_name='添加时间')),
            ],
        ),
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, verbose_name='课程名')),
                ('desc', models.CharField(max_length=300, verbose_name='课程描述')),
                ('detail', models.TextField(verbose_name='课程详情')),
                ('degree', models.CharField(choices=[('cj', '初级'), ('zj', '中级'), ('gj', '高级')], max_length=2, verbose_name='难度')),
                ('score', models.IntegerField(default=0, verbose_name='课程评分')),
                ('total_duration_study', models.IntegerField(default=0, verbose_name='学习时长(分钟)')),
                ('students_nums', models.IntegerField(default=0, verbose_name='学习人数')),
                ('fav_nums', models.IntegerField(default=0, verbose_name='收藏人数')),
                ('image', models.ImageField(upload_to='courses/%Y/%m', verbose_name='课程封面')),
                ('click_nums', models.IntegerField(default=0, verbose_name='点击数')),
                ('category', models.CharField(default='理论知识', max_length=20, verbose_name='课程类别')),
                ('tag', models.CharField(default='', max_length=10, verbose_name='课程标签')),
                ('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='添加时间')),
                ('course_org', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='orgnization.CourseOrg', verbose_name='课程机构')),
                ('teacher', models.ManyToManyField(blank=True, null=True, to='orgnization.Teacher', verbose_name='授课教师')),
            ],
            options={
                'verbose_name': '课程',
                'verbose_name_plural': '课程',
            },
        ),
        migrations.CreateModel(
            name='CourseResource',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='名称')),
                ('download', models.FileField(upload_to='course/resource/%Y/%m', verbose_name='资源文件')),
                ('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='添加时间')),
                ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Course', verbose_name='课程')),
            ],
            options={
                'verbose_name': '课程资源',
                'verbose_name_plural': '课程资源',
            },
        ),
        migrations.CreateModel(
            name='Lesson',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('lesson_order', models.IntegerField(default=0, verbose_name='小节序号')),
                ('lesson_name', models.CharField(max_length=128, verbose_name='小节标题')),
                ('lesson_time_duration', models.CharField(max_length=10, verbose_name='视频时长')),
                ('add_time', models.DateField(default=datetime.datetime.now, verbose_name='添加时间')),
                ('chapter', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Chapter', verbose_name='小节')),
            ],
            options={
                'verbose_name': '章节',
                'verbose_name_plural': '章节',
            },
        ),
        migrations.CreateModel(
            name='Video',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='视频名')),
                ('video_source', models.FileField(upload_to=courses.models.Video.upload_to)),
                ('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='添加时间')),
                ('lesson', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Lesson', verbose_name='章节')),
            ],
            options={
                'verbose_name': '视频',
                'verbose_name_plural': '视频',
            },
        ),
        migrations.AddField(
            model_name='chapter',
            name='course',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Course', verbose_name='章节'),
        ),
    ]
Esempio n. 25
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=50,
                                  verbose_name='\u8ab2\u7a0b\u540d')),
                ('desc',
                 models.CharField(max_length=300,
                                  verbose_name='\u8ab2\u7a0b\u63cf\u8ff0')),
                ('detail',
                 models.TextField(verbose_name='\u8ab2\u7a0b\u8a73\u60c5')),
                ('instructor',
                 models.CharField(blank=True,
                                  max_length=50,
                                  null=True,
                                  verbose_name='\u6307\u5c0e\u8001\u5e2b')),
                ('image',
                 models.ImageField(blank=True,
                                   default='img/course/default_course.jpg',
                                   null=True,
                                   upload_to=courses.models.get_image_path)),
                ('add_time',
                 models.DateTimeField(
                     default=datetime.datetime.now,
                     verbose_name='\u6dfb\u52a0\u6642\u9593')),
            ],
            options={
                'verbose_name': '\u8ab2\u7a0b',
                'verbose_name_plural': '\u8ab2\u7a0b',
            },
        ),
        migrations.CreateModel(
            name='CourseHomework',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=100,
                                  verbose_name='\u6a19\u984c')),
                ('desc',
                 models.CharField(blank=True,
                                  max_length=200,
                                  null=True,
                                  verbose_name='\u63cf\u8ff0')),
                ('detail',
                 models.CharField(blank=True,
                                  max_length=500,
                                  null=True,
                                  verbose_name='\u5167\u5bb9')),
                ('uploadFile',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=courses.models.get_courseHw_image_path,
                     verbose_name='\u7bc4\u4f8b\u6a94\u6848')),
                ('limit_time',
                 models.DateTimeField(
                     default=datetime.datetime(2017, 3, 31, 0, 37, 25, 707845),
                     verbose_name='\u7e73\u4ea4\u6642\u9593')),
                ('add_time',
                 models.DateTimeField(
                     default=datetime.datetime.now,
                     verbose_name='\u6dfb\u52a0\u6642\u9593')),
            ],
            options={
                'verbose_name': '\u8ab2\u7a0b\u4f5c\u696d',
                'verbose_name_plural': '\u8ab2\u7a0b\u4f5c\u696d',
            },
        ),
        migrations.CreateModel(
            name='CourseResource',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=100,
                                  verbose_name='\u540d\u7a31')),
                ('detail',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name='\u6587\u4ef6\u63cf\u8ff0')),
                ('download',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=courses.models.get_courseResource_image_path,
                     verbose_name='\u8cc7\u6e90\u6587\u4ef6')),
                ('add_time',
                 models.DateTimeField(
                     default=datetime.datetime.now,
                     verbose_name='\u6dfb\u52a0\u6642\u9593')),
            ],
            options={
                'verbose_name': '\u8ab2\u7a0b\u8cc7\u6e90',
                'verbose_name_plural': '\u8ab2\u7a0b\u8cc7\u6e90',
            },
        ),
        migrations.CreateModel(
            name='Lesson',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=100,
                                  verbose_name='\u7ae0\u7bc0\u540d')),
                ('add_time',
                 models.DateTimeField(
                     default=datetime.datetime.now,
                     verbose_name='\u6dfb\u52a0\u6642\u9593')),
            ],
            options={
                'verbose_name': '\u7ae0\u7bc0',
                'verbose_name_plural': '\u7ae0\u7bc0',
            },
        ),
        migrations.CreateModel(
            name='StudentHomework',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('add_time',
                 models.DateTimeField(
                     default=datetime.datetime.now,
                     verbose_name='\u6dfb\u52a0\u6642\u9593')),
                ('course',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='courses.Course',
                                   verbose_name='\u8ab2\u7a0b')),
                ('homework',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='courses.CourseHomework',
                                   verbose_name='\u4f5c\u696d')),
            ],
            options={
                'verbose_name': '\u5b78\u751f\u4f5c\u696d\u4e0a\u50b3',
                'verbose_name_plural': '\u5b78\u751f\u4f5c\u696d\u4e0a\u50b3',
            },
        ),
    ]
Esempio n. 26
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('taggit', '0002_auto_20150616_2121'),
    ]

    operations = [
        migrations.CreateModel(
            name='Alternative',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('description', models.TextField(max_length=500)),
                ('is_correct', models.BooleanField(default=False)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Category',
                'verbose_name_plural': 'Categories',
            },
        ),
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('description', models.TextField(max_length=300)),
                ('image',
                 models.ImageField(blank=True,
                                   null=True,
                                   upload_to='images/courses')),
                ('category',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='categories',
                                   to='courses.Category')),
            ],
        ),
        migrations.CreateModel(
            name='Document',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('uri',
                 models.FileField(upload_to=courses.models.upload_to_dir)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
        ),
        migrations.CreateModel(
            name='Enrollment',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('course',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='enrollments',
                                   to='courses.Course')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='+',
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Exam',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=100)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
        ),
        migrations.CreateModel(
            name='Instructor',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('contact', models.EmailField(max_length=100)),
                ('about', models.TextField(max_length=200)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
        ),
        migrations.CreateModel(
            name='Question',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('statement', models.TextField(max_length=500)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('exam',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='questions',
                                   to='courses.Exam')),
            ],
        ),
        migrations.CreateModel(
            name='Unit',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('description', models.CharField(max_length=100)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('course',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='units',
                                   to='courses.Course')),
            ],
        ),
        migrations.CreateModel(
            name='Video',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('uri', models.URLField(max_length=2000)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('unit',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='videos',
                                   to='courses.Unit')),
            ],
        ),
        migrations.AddField(
            model_name='exam',
            name='unit',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name='exams',
                to='courses.Unit'),
        ),
        migrations.AddField(
            model_name='document',
            name='unit',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='documents',
                to='courses.Unit'),
        ),
        migrations.AddField(
            model_name='course',
            name='instructor',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name='instructors',
                to='courses.Instructor'),
        ),
        migrations.AddField(
            model_name='course',
            name='keywords',
            field=taggit.managers.TaggableManager(
                help_text='A comma-separated list of tags.',
                through='taggit.TaggedItem',
                to='taggit.Tag',
                verbose_name='keywords'),
        ),
        migrations.AddField(
            model_name='alternative',
            name='question',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='alternatives',
                to='courses.Question'),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='ConnectionPlatform',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(blank=True, max_length=150)),
                ('url_link', models.URLField(blank=True)),
                ('deleted', models.BooleanField(default=False)),
            ],
        ),
        migrations.CreateModel(
            name='Event',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('is_recurrent', models.BooleanField(default=False, null=True)),
                ('is_recorded', models.BooleanField(default=False, null=True)),
                ('event_type', models.CharField(blank=True, choices=[('COURSE', 'Course'), ('EVENT', 'Event')], max_length=50)),
                ('image', models.ImageField(blank=True, null=True, upload_to=courses.models.upload_event_picture)),
                ('title', models.CharField(blank=True, max_length=150)),
                ('description', models.CharField(blank=True, max_length=10000)),
                ('other_platform', models.CharField(blank=True, max_length=150)),
                ('reference_price', models.FloatField(blank=True, default=0, null=True)),
                ('date_created', models.DateTimeField(auto_now_add=True)),
                ('date_start', models.DateTimeField(blank=True, null=True)),
                ('date_end', models.DateTimeField(blank=True, null=True)),
                ('date_recorded', models.DateTimeField(blank=True, null=True)),
                ('schedule_description', models.CharField(blank=True, max_length=1000)),
                ('owner', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
                ('platform', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='courses.ConnectionPlatform')),
            ],
        ),
        migrations.CreateModel(
            name='CertificateRequest',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateTimeField(auto_now_add=True, null=True)),
                ('accepted', models.BooleanField(blank=True, default=None, null=True)),
                ('deleted', models.BooleanField(blank=True, default=False, null=True)),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Event')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Certificate',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date_created', models.DateTimeField(auto_now_add=True)),
                ('event', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='courses.Event')),
                ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Bookmark',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateTimeField(auto_now_add=True, null=True)),
                ('deleted', models.BooleanField(blank=True, default=False, null=True)),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Event')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Esempio n. 28
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('categories', '0001_initial'),
        ('videos', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=150)),
                ('slug', models.SlugField(blank=True)),
                ('image', models.ImageField(blank=True, null=True, upload_to=courses.models.course_directory_path)),
                ('order', courses.fields.PositionField(default=-1)),
                ('description', models.TextField()),
                ('price', models.DecimalField(blank=True, decimal_places=2, help_text='Si existe un descuento especial agrega una cantidad al precio neto, de lo contrario deja este campo vacío y utiliza solo el precio de lista.', max_digits=6, null=True, verbose_name='Precio Neto')),
                ('list_price', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True, verbose_name='Precio de lista o precio regular')),
                ('active', models.BooleanField(default=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='primary_category', to='categories.Category')),
                ('secondary', models.ManyToManyField(blank=True, related_name='secondary_category', to='categories.Category')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Lecture',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=120)),
                ('order', courses.fields.PositionField(default=-1)),
                ('slug', models.SlugField(blank=True)),
                ('free', models.BooleanField(default=False)),
                ('description', models.TextField(blank=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('course', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='courses.Course')),
                ('video', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='videos.Video')),
            ],
            options={
                'ordering': ['order', 'title'],
            },
        ),
        migrations.CreateModel(
            name='MyCourses',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('courses', models.ManyToManyField(blank=True, related_name='owned', to='courses.Course')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'My courses',
                'verbose_name_plural': 'My courses',
            },
        ),
        migrations.AlterUniqueTogether(
            name='lecture',
            unique_together=set([('slug', 'course')]),
        ),
    ]
Esempio n. 29
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Courses',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('deleted', models.DateTimeField(editable=False, null=True)),
                ('name', models.CharField(max_length=100,
                                          verbose_name='name')),
                ('slug', models.CharField(max_length=100,
                                          verbose_name='slug')),
                ('short_description',
                 models.TextField(max_length=300,
                                  verbose_name='short description')),
                ('description', models.TextField(verbose_name='description')),
                ('course_fee', models.FloatField(verbose_name='course fee')),
                ('image',
                 models.ImageField(upload_to=courses.models.course_image_path,
                                   verbose_name='image')),
                ('is_active',
                 models.BooleanField(default=True, verbose_name='is active')),
                ('created_at',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='created at')),
            ],
            options={
                'verbose_name': 'course',
                'verbose_name_plural': 'courses',
            },
        ),
        migrations.CreateModel(
            name='Enrolled',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('payment_status',
                 models.CharField(choices=[('unpaid', 'Unpaid'),
                                           ('partly', 'Part Payment'),
                                           ('paid', 'Fully Paid')],
                                  max_length=50)),
                ('date_enrolled',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='created at')),
            ],
        ),
        migrations.CreateModel(
            name='Modules',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('deleted', models.DateTimeField(editable=False, null=True)),
                ('name', models.CharField(max_length=100,
                                          verbose_name='name')),
                ('description', models.TextField(verbose_name='description')),
                ('order', models.IntegerField(verbose_name='order')),
                ('date_created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='date created')),
            ],
            options={
                'verbose_name': 'module',
                'verbose_name_plural': 'modules',
            },
        ),
        migrations.CreateModel(
            name='UserModules',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('deleted', models.DateTimeField(editable=False, null=True)),
                ('date_activated',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='date activated')),
                ('expires', models.DateTimeField(verbose_name='date expires')),
                ('course',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='user_modules',
                                   to='courses.Courses')),
                ('module',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='courses.Modules')),
            ],
        ),
    ]
Esempio n. 30
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Course',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=255,
                                  verbose_name='Course title')),
                ('description',
                 models.TextField(blank=True,
                                  verbose_name='Course description')),
                ('price',
                 models.PositiveIntegerField(
                     verbose_name='Course full price')),
            ],
            bases=(courses.models.MetaMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Lecturer',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('first_name',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='First name')),
                ('last_name',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='Last name')),
                ('photo',
                 models.ImageField(blank=True,
                                   upload_to='persons',
                                   verbose_name='Lecturers photo')),
                ('bio',
                 models.TextField(blank=True, verbose_name='Lecturer bio')),
                ('user',
                 models.OneToOneField(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='lecturer',
                     to=settings.AUTH_USER_MODEL)),
            ],
            bases=(courses.models.MetaMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Lesson',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=255,
                                  verbose_name='Lesson title')),
                ('description',
                 models.TextField(blank=True,
                                  verbose_name='Lesson description')),
                ('date',
                 models.DateTimeField(blank=True, verbose_name='Lesson date')),
                ('homework',
                 models.TextField(blank=True, verbose_name='Lesson homework')),
                ('course',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='lessons',
                     to='courses.Course',
                     verbose_name='Course')),
                ('lecturer',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='lections',
                     to='courses.Lecturer',
                     verbose_name='Lesson speaker')),
            ],
            bases=(courses.models.MetaMixin, models.Model),
        ),
        migrations.CreateModel(
            name='UserProperty',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('verified',
                 models.BooleanField(default=False,
                                     verbose_name='Is verified')),
                ('avatar',
                 models.ImageField(blank=True,
                                   null=True,
                                   upload_to='images/user/avatar',
                                   verbose_name='User avatar')),
                ('birthdate',
                 models.DateField(blank=True,
                                  null=True,
                                  verbose_name='User birthdate')),
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='user_property',
                     to=settings.AUTH_USER_MODEL)),
            ],
            bases=(courses.models.MetaMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Score',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('rate',
                 models.PositiveIntegerField(choices=[(0, '0'), (1, '1'),
                                                      (2, '2'), (3, '3'),
                                                      (4, '4'), (5, '5')],
                                             verbose_name='Score')),
                ('lecturer',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='scores',
                                   to='courses.Lecturer',
                                   verbose_name='Lecturer')),
                ('lesson',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='scores',
                                   to='courses.Lesson')),
                ('student',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='scores',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            bases=(courses.models.MetaMixin, models.Model),
        ),
        migrations.AddField(
            model_name='course',
            name='lecturers',
            field=models.ManyToManyField(related_name='courses',
                                         to='courses.Lecturer',
                                         verbose_name='Course lecturers'),
        ),
        migrations.AddField(
            model_name='course',
            name='students',
            field=models.ManyToManyField(blank=True,
                                         related_name='courses',
                                         to=settings.AUTH_USER_MODEL,
                                         verbose_name='Course students'),
        ),
    ]