class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('taggit', '0003_taggeditem_add_unique_index'), ] operations = [ migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, verbose_name='分类')), ], options={ 'verbose_name': '分类', 'verbose_name_plural': '分类', }, ), migrations.CreateModel( name='UserDetail', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30, verbose_name='本名')), ('length', models.IntegerField(verbose_name='身高')), ('sex', models.CharField(max_length=2, verbose_name='性别')), ('detail', models.TextField(verbose_name='用户简介')), ('email', models.CharField(max_length=50, verbose_name='邮箱')), ('img', models.ImageField(upload_to='user', verbose_name='头像')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='作者')), ], options={ 'verbose_name': '个人简介', 'verbose_name_plural': '个人简介', }, ), migrations.CreateModel( name='Article', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=50, verbose_name='文章标题')), ('img', models.ImageField(blank=True, null=True, upload_to=course.models.article_img_path, verbose_name='文章配图')), ('content', markdownx.models.MarkdownxField(verbose_name='内容')), ('abstract', markdownx.models.MarkdownxField(max_length=255, null=True, verbose_name='摘要')), ('visited', models.PositiveIntegerField(default=0, verbose_name='访问量')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')), ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='作者')), ('category', models.ManyToManyField(to='course.Category', verbose_name='文章分类')), ('tags', taggit.managers.TaggableManager(help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='标签')), ], options={ 'verbose_name': '文章内容', 'verbose_name_plural': '文章内容', 'ordering': ['-created_at'], }, ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0002_auto_20190803_0938'), ] operations = [ migrations.AlterModelOptions( name='category', options={'verbose_name': '课程种类表', 'verbose_name_plural': '课程种类表'}, ), migrations.AlterModelOptions( name='course', options={'verbose_name': '课程表', 'verbose_name_plural': '课程表'}, ), migrations.AlterField( model_name='course', name='createDatetime', field=models.DateTimeField(blank=True, default=datetime.datetime(2019, 8, 3, 17, 0, 51, 393018), verbose_name='创建时间'), ), migrations.AlterField( model_name='course', name='fileName', field=models.FileField(upload_to=course.models.save_file, verbose_name='文件名称'), ), migrations.AlterField( model_name='course', name='imgName', field=models.ImageField(upload_to=course.models.save_img, verbose_name='课程图片'), ), migrations.AlterField( model_name='course', name='price', field=models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, verbose_name='售价'), ), migrations.AlterField( model_name='course', name='status', field=models.PositiveSmallIntegerField(blank=True, choices=[(0, '收费'), (1, '免费')], default=0, verbose_name='状态'), ), migrations.AlterField( model_name='course', name='summary', field=models.CharField(blank=True, default='', max_length=1000, verbose_name='课程介绍'), ), migrations.AlterField( model_name='course', name='userBuyer', field=models.ManyToManyField(blank=True, related_name='userBuyer', to='user.User', verbose_name='购买用户'), ), migrations.AlterField( model_name='course', name='userShoppingcart', field=models.ManyToManyField(blank=True, related_name='userShoppingcart_set', to='user.User', verbose_name='加入购物车用户'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('technology', '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(blank=True, max_length=255, null=True)), ('slug', models.SlugField(blank=True, unique=True)), ('url', models.URLField(blank=True, default='')), ('detail', ckeditor_uploader.fields.RichTextUploadingField()), ('logo', models.ImageField(blank=True, upload_to=course.models.course_logo)), ('logo_url', models.URLField(blank=True, default='')), ('upvotes', models.IntegerField(blank=True, null=True)), ('free', models.BooleanField(default=True)), ('level', models.CharField(choices=[('BEGINNER', 'Beginner'), ('INTERMEDIATE', 'Intermediate'), ('ADVANCED', 'Advanced')], default='Select', max_length=20)), ('submitter', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='submitter', to=settings.AUTH_USER_MODEL)), ('tech', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='technology.Technology')), ('tutor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tutor', to=settings.AUTH_USER_MODEL)), ], ), ]
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=50, unique=True)), ('description', models.CharField(default='No description provide by teacher', max_length=1000)), ('image', models.ImageField( upload_to=course.models.get_upload_location)), ('tutor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='hosted_courses', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='EnrolledCourse', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='students', to='course.Course')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enrolled_courses', to=settings.AUTH_USER_MODEL)), ], options={ 'unique_together': {('user', 'course')}, }, ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0005_auto_20160504_1744'), ] operations = [ migrations.AddField( model_name='course', name='logo', field=models.ImageField(blank=True, upload_to=course.models.resource_file_name), ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0003_auto_20200423_0942'), ] operations = [ migrations.AddField( model_name='course', name='image', field=models.ImageField( null=True, upload_to=course.models.custom_upload_path), ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0003_auto_20210417_1316'), ] operations = [ migrations.AlterField( model_name='subject', name='pic', field=models.ImageField( default='nopic.jpg', upload_to=course.models.Subject.subject_pic_path), ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0001_initial'), ] operations = [ migrations.AlterField( model_name='course', name='banner', field=models.ImageField(blank=True, null=True, upload_to=course.models.gen_pic_path), ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0006_remove_stepcontent_picture'), ] operations = [ migrations.CreateModel( name='CourseImage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('image', models.ImageField(upload_to=course.models.CourseImage.get_upload_to)), ('date_created', models.DateTimeField(auto_now_add=True)), ('last_modified', models.DateTimeField(auto_now=True)), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='course.course')), ], options={ 'ordering': ('-date_created',), }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('account', '0001_initial'), ] operations = [ migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('course_name', models.CharField(default=None, max_length=300)), ('course_description', models.TextField(null=True)), ('course_cover', models.ImageField( blank=True, null=True, upload_to=course.models.Course.upload_location)), ('created_at', models.DateField(default=datetime.date(2020, 11, 17))), ('author', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='account.TeacherProfile')), ], ), migrations.CreateModel( name='Subject', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('subject_name', models.CharField(max_length=200, null=True)), ('subject_cover', models.ImageField( blank=True, null=True, upload_to=course.models.Subject.upload_location)), ('duration', models.CharField(blank=True, max_length=20, null=True)), ('description', models.CharField(blank=True, max_length=255, null=True)), ('author', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='account.TeacherProfile')), ], ), migrations.CreateModel( name='Module', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('module_name', models.CharField(max_length=100)), ('module_content', models.CharField(max_length=100)), ('file', models.FileField( null=True, upload_to=course.models.Module.upload_location)), ('course', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='modules', to='course.Course')), ], ), migrations.CreateModel( name='Enrollment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('enroll_key', models.CharField(default='Text here', max_length=100, null=True)), ('course', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='enrollment', to='course.Course')), ('student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='account.StudentProfile')), ], ), migrations.AddField( model_name='course', name='subject', field=models.ForeignKey( default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='course.Subject'), ), migrations.CreateModel( name='Coupon', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('coupon_key', models.CharField(max_length=100, null=True)), ('isValid', models.BooleanField(default=True)), ('isIssued', models.BooleanField(default=False)), ('expire_date', models.DateField(null=True, verbose_name='expire_date')), ('course', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='course.Course')), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0001_initial'), ] operations = [ migrations.RemoveField( model_name='coupon', name='expire_date', ), migrations.RemoveField( model_name='module', name='file', ), migrations.RemoveField( model_name='subject', name='duration', ), migrations.AddField( model_name='course', name='duration', field=models.CharField(blank=True, max_length=20, null=True), ), migrations.AddField( model_name='course', name='price', field=models.IntegerField(blank=True, default=0, null=True), ), migrations.AddField( model_name='subject', name='class_type', field=models.CharField(blank=True, max_length=10, null=True), ), migrations.AddField( model_name='subject', name='created_at', field=models.DateTimeField(default=django.utils.timezone.now), ), migrations.AddField( model_name='subject', name='short_description', field=models.CharField(blank=True, max_length=300, null=True), ), migrations.AddField( model_name='subject', name='subject_type', field=models.CharField(blank=True, max_length=100, null=True), ), migrations.AlterField( model_name='course', name='course_cover', field=models.ImageField( blank=True, default='course_images/default.png', null=True, upload_to=course.models.Course.upload_location), ), migrations.AlterField( model_name='course', name='created_at', field=models.DateTimeField(default=django.utils.timezone.now), ), migrations.AlterField( model_name='subject', name='description', field=models.CharField(blank=True, max_length=500, null=True), ), migrations.AlterField( model_name='subject', name='subject_cover', field=models.ImageField( blank=True, default='subject_images/default.png', null=True, upload_to=course.models.Subject.upload_location), ), migrations.CreateModel( name='ModuleFile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file', models.FileField( null=True, upload_to=course.models.ModuleFile.upload_location)), ('module', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='course.Module')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('category', models.CharField(max_length=30)), ('image', models.ImageField(upload_to=course.models.uploadImage)), ], options={ 'verbose_name_plural': 'Categories', }, ), migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=100)), ('description', models.TextField(max_length=2000, null=True)), ('create_at', models.DateTimeField(auto_now_add=True)), ('cover', models.ImageField(upload_to=course.models.uploadImage)), ('price', models.FloatField()), ('rate', models.FloatField(default=0.0)), ('numReviewers', models.IntegerField(default=0)), ('category', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='course.Category')), ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='Course_owner', to=settings.AUTH_USER_MODEL)), ('students', models.ManyToManyField(blank=True, related_name='Course_students', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='Rater', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('stars', models.FloatField(default=0.0)), ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('rate_on', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Course')), ], ), migrations.CreateModel( name='Video', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=100)), ('video', models.FileField(upload_to=course.models.uploadVideo)), ('thumbnail', models.ImageField(null=True, upload_to=course.models.uploadThumbnail)), ('lessonNum', models.IntegerField(default=1)), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Course')), ], ), migrations.CreateModel( name='Reviewer', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('comment', models.CharField(max_length=200)), ('comment_on', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Course')), ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('rate', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='course.Rater')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('user', '0001_initial'), ('base', '0003_auto_20190722_1659'), ] operations = [ migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(db_index=1, max_length=128, verbose_name='课程名称')), ('detail', models.TextField(verbose_name='课程详情')), ('degree', models.IntegerField(choices=[(0, '无'), (1, '本科')], default=0, verbose_name='参考学历')), ('click_count', models.IntegerField(default=0, verbose_name='点击数')), ('per', models.FloatField(verbose_name='完成的金币反馈率')), ('putaway_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='上架时间')), ('poster', models.ImageField(blank=1, upload_to=course.models.get_uploadto, verbose_name='预览图')), ('require_course', models.ForeignKey(blank=1, null=1, on_delete=django.db.models.deletion.CASCADE, to='course.Course', verbose_name='前置课程')), ], options={ 'verbose_name': '课程信息', 'verbose_name_plural': '课程表', 'ordering': ['name'], }, ), migrations.CreateModel( name='Tree', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, verbose_name='课程树名称')), ('describe', models.TextField(verbose_name='课程树描述')), ], options={ 'verbose_name': '课程天赋', 'verbose_name_plural': '课程天赋表', }, ), migrations.CreateModel( name='ProblemSet', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('describe', models.TextField(verbose_name='问题描述')), ('answer', models.IntegerField(choices=[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')], verbose_name='问题答案')), ('course', models.ForeignKey(blank=1, null=1, on_delete=django.db.models.deletion.CASCADE, to='course.Course', verbose_name='哪个课程的习题')), ('user', models.ManyToManyField(blank=1, to='user.User', verbose_name='完成习题的用户')), ], options={ 'verbose_name': '习题集', 'verbose_name_plural': '习题表', }, ), migrations.CreateModel( name='CourseVideo', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('index', models.IntegerField(verbose_name='视频顺序')), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Course')), ('video', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Video')), ], options={ 'db_table': 'course_video_relationship', }, ), migrations.AddField( model_name='course', name='tree', field=models.ForeignKey( blank=1, null=1, on_delete=django.db.models.deletion.CASCADE, to='course.Tree', verbose_name='课程天赋树表'), ), migrations.AddField( model_name='course', name='user', field=models.ManyToManyField(blank=1, to='user.User', verbose_name='完成课程的用户'), ), migrations.AddField( model_name='course', name='video', field=models.ManyToManyField(blank=1, through='course.CourseVideo', to='base.Video', verbose_name='包含视频'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Chapter', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sort_index', models.IntegerField(null=True, verbose_name='章节')), ('title', models.CharField(max_length=256)), ], options={ 'verbose_name_plural': '章节列表', }, ), migrations.CreateModel( name='CourseData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('course_classification', models.IntegerField(choices=[(0, '普通课程'), (1, '微课'), (2, 'Demo'), (3, '总量')], verbose_name='课程类型')), ], options={ 'verbose_name': '课程数据', }, ), migrations.CreateModel( name='Tag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('content', models.CharField(max_length=64, verbose_name='标签')), ], options={ 'verbose_name': '标签', }, ), migrations.CreateModel( name='Lecture', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=256, verbose_name='标题')), ('sort_index', models.IntegerField(null=True, verbose_name='课时')), ('is_video', models.BooleanField(default=True, null=True, verbose_name='是否为视频')), ('video', models.CharField(blank=True, max_length=128, null=True, verbose_name='课程视频')), ('video_length', models.CharField(blank=True, max_length=16, null=True, verbose_name='视频长度')), ('content', models.TextField(blank=True, null=True, verbose_name='图文内容(markdown)')), ('is_free', models.BooleanField(default=False, verbose_name='是否免费')), ('chapter', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lectures', to='course.Chapter')), ], options={ 'verbose_name_plural': '课时列表', }, ), migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('target', models.CharField(choices=[('course', '课程'), ('micro', '微课'), ('demo', 'Demo')], default='course', max_length=12, verbose_name='课程类型')), ('user', models.IntegerField(verbose_name='上传用户ID')), ('title', models.CharField(max_length=128, null=True, verbose_name='标题')), ('brief', models.TextField(default='', verbose_name='课程简介')), ('desc', models.TextField(blank=True, null=True, verbose_name='课程介绍')), ('thumbnail', models.CharField(blank=True, max_length=256, null=True, verbose_name='课程图')), ('is_video', models.BooleanField(default=True, null=True, verbose_name='视频课程')), ('video', models.CharField(blank=True, default='', max_length=128, verbose_name='视频地址')), ('video_length', models.CharField(blank=True, default='', max_length=16, verbose_name='视频长度')), ('content', models.TextField(blank=True, default='', verbose_name='图文内容(markdown)')), ('original_price', models.DecimalField(decimal_places=2, default=0, max_digits=10, null=True, verbose_name='原价')), ('current_price', models.DecimalField(decimal_places=2, default=0, max_digits=10, null=True, verbose_name='现价')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='上传时间')), ('status', models.BooleanField(blank=True, default=False, null=True, verbose_name='是否上架')), ('sale_earnings', models.DecimalField(decimal_places=2, default=0.8, max_digits=10, null=True, verbose_name='分销收益')), ('share_earnings', models.DecimalField(decimal_places=2, default=0.05, max_digits=10, null=True, verbose_name='分享收益')), ('share_discount', models.DecimalField(decimal_places=2, default=0.6, max_digits=10, null=True, verbose_name='分享折扣')), ('promotion_expire', models.DateTimeField(blank=True, null=True, verbose_name='优惠到期时间')), ('is_promoted', models.BooleanField(default=False, verbose_name='是否加入促销')), ('display_hot', models.IntegerField(default=300, null=True, verbose_name='显示热度')), ('real_hot', models.IntegerField(default=0, null=True, verbose_name='真实热度')), ('display_rank', models.DecimalField(decimal_places=2, default=4.0, max_digits=10, verbose_name='显示评分')), ('real_rank', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='真实评分')), ('study_count', models.IntegerField(default=0, verbose_name='学习人数')), ('favour_count', models.IntegerField(default=0, verbose_name='收藏人数')), ('comment_count', models.IntegerField(default=0, verbose_name='评论人数')), ('lecture_count', models.IntegerField(default=0, verbose_name='课时数')), ('tech', models.CharField(blank=True, default='', max_length=256, null=True, verbose_name='技术栈')), ('env', models.CharField(blank=True, default='', max_length=256, null=True, verbose_name='运行环境')), ('banner', models.CharField(blank=True, max_length=256, null=True, verbose_name='课程横幅')), ('video_status', models.BooleanField(default=False, verbose_name='转码完成')), ('upload_thumbnail', models.ImageField( blank=True, null=True, upload_to=course.models.UploadTo('thumbnail/'), verbose_name='上传课程图')), ('upload_banner', models.ImageField(blank=True, null=True, upload_to=course.models.UploadTo('banner/'), verbose_name='banner')), ('tag', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='courses', to='course.Tag', verbose_name='标签')), ], options={ 'verbose_name_plural': '课程列表', }, ), migrations.AddField( model_name='chapter', name='course', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='chapters', to='course.Course'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ 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)), ], ), migrations.CreateModel( name='UserProfile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('avatar', models.ImageField( upload_to=course.models.user_directory_path)), ('user', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=200)), ('image', models.ImageField( upload_to=course.models.course_directory_path)), ('start_date', models.DateTimeField(default=django.utils.timezone.now)), ('end_date', models.DateTimeField(default=django.utils.timezone.now)), ('slug', models.SlugField(max_length=250)), ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='blog_posts', to=settings.AUTH_USER_MODEL)), ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.category', verbose_name='Category')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Author', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ], ), migrations.CreateModel( name='Book', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=200)), ('subtitle', models.CharField(blank=True, max_length=200, null=True)), ('description', models.TextField(default='None')), ('doc_path', models.CharField(default='Documents', max_length=200)), ('author', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='course.author')), ], ), migrations.CreateModel( name='Chapter', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('order', models.IntegerField()), ('title', models.CharField(max_length=200)), ('markdown', models.TextField()), ('html', models.TextField()), ('document', models.CharField(max_length=200)), ('book', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='course.book')), ], ), migrations.CreateModel( name='Image', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('folder', models.CharField(default='book', max_length=100)), ('image', models.ImageField(blank=True, null=True, upload_to=course.models.get_upload)), ('title', models.CharField(max_length=200)), ], ), migrations.CreateModel( name='Note', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=200)), ('text', models.TextField()), ('author', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='course.author')), ('chapter', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='course.chapter')), ], ), migrations.AddField( model_name='author', name='photo', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='course.image'), ), migrations.AddField( model_name='author', name='user', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Lesson', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)), ('title', models.CharField(blank=True, default='', max_length=255)), ('description', models.TextField()), ('lesson_index', models.PositiveSmallIntegerField()), ('content', models.TextField()), ('audio', models.FileField(upload_to=course.models.scramble_uploaded_filename, verbose_name='Uploaded Audio')), ('video_url', models.CharField(blank=True, default='', max_length=1000)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], ), migrations.CreateModel( name='LessonComplete', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)), ('completed', models.BooleanField(default=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('current_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_who_complete', to=settings.AUTH_USER_MODEL)), ('lesson', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lesson_to_complete', to='course.Lesson')), ], ), migrations.CreateModel( name='Session', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)), ('image', models.ImageField(upload_to=course.models.scramble_uploaded_filename, verbose_name='Uploaded image')), ('title', models.CharField(blank=True, default='', max_length=255)), ('description', models.TextField()), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], ), migrations.CreateModel( name='Unit', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)), ('title', models.CharField(blank=True, default='', max_length=255)), ('description', models.TextField()), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], ), migrations.AddField( model_name='session', name='unit', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='unit_sessions', to='course.Unit'), ), migrations.AddField( model_name='lesson', name='session', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='session_lessons', to='course.Session'), ), ]
class Migration(migrations.Migration): dependencies = [ ('userprofile', '0006_auto_20210812_1536'), ('course', '0050_enrollment_roles'), ] operations = [ migrations.AlterModelOptions( name='course', options={ 'verbose_name': 'MODEL_NAME_COURSE', 'verbose_name_plural': 'MODEL_NAME_COURSE_PLURAL' }, ), migrations.AlterModelOptions( name='coursehook', options={ 'verbose_name': 'MODEL_NAME_COURSE_HOOK', 'verbose_name_plural': 'MODEL_NAME_COURSE_HOOK_PLURAL' }, ), migrations.AlterModelOptions( name='courseinstance', options={ 'verbose_name': 'MODEL_NAME_COURSE_INSTANCE', 'verbose_name_plural': 'MODEL_NAME_COURSE_INSTANCE_PLURAL' }, ), migrations.AlterModelOptions( name='coursemodule', options={ 'ordering': ['order', 'closing_time', 'id'], 'verbose_name': 'MODEL_NAME_COURSE_MODULE', 'verbose_name_plural': 'MODEL_NAME_COURSE_MODULE_PLURAL' }, ), migrations.AlterModelOptions( name='enrollment', options={ 'verbose_name': 'MODEL_NAME_ENROLLMENT', 'verbose_name_plural': 'MODEL_NAME_ENROLLMENT_PLURAL' }, ), migrations.AlterModelOptions( name='hardcodedusertag', options={ 'verbose_name': 'MODEL_NAME_HARDCODED_USER_TAG', 'verbose_name_plural': 'MODEL_NAME_HARDCODED_USER_TAG_PLURAL' }, ), migrations.AlterModelOptions( name='learningobjectcategory', options={ 'verbose_name': 'MODEL_NAME_LEARNING_OBJECT_CATEGORY', 'verbose_name_plural': 'MODEL_NAME_LEARNING_OBJECT_CATEGORY_PLURAL' }, ), migrations.AlterModelOptions( name='studentgroup', options={ 'ordering': ['course_instance', 'timestamp'], 'verbose_name': 'MODEL_NAME_STUDENT_GROUP', 'verbose_name_plural': 'MODEL_NAME_STUDENT_GROUP_PLURAL' }, ), migrations.AlterModelOptions( name='usertag', options={ 'ordering': ['course_instance', 'name'], 'verbose_name': 'MODEL_NAME_USER_TAG', 'verbose_name_plural': 'MODEL_NAME_USER_TAG_PLURAL' }, ), migrations.AlterModelOptions( name='usertagging', options={ 'ordering': ['tag'], 'verbose_name': 'MODEL_NAME_USER_TAGGING', 'verbose_name_plural': 'MODEL_NAME_USER_TAGGING_PLURAL' }, ), migrations.AlterField( model_name='course', name='code', field=models.CharField(max_length=255, verbose_name='LABEL_CODE'), ), migrations.AlterField( model_name='course', name='name', field=models.CharField(max_length=255, verbose_name='LABEL_NAME'), ), migrations.AlterField( model_name='course', name='url', field=models.CharField( help_text='COURSE_URL_IDENTIFIER_HELPTEXT', max_length=255, unique=True, validators=[ django.core.validators.RegexValidator( message='URL_KEY_MAY_CONSIST_OF', regex=re.compile('^\\w[\\w\\-\\.]*$')) ], verbose_name='LABEL_URL'), ), migrations.AlterField( model_name='coursehook', name='course_instance', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='course_hooks', to='course.courseinstance', verbose_name='LABEL_COURSE_INSTANCE'), ), migrations.AlterField( model_name='coursehook', name='hook_type', field=models.CharField(choices=[('post-grading', 'Post grading')], default='post-grading', max_length=12, verbose_name='LABEL_HOOK_TYPE'), ), migrations.AlterField( model_name='coursehook', name='hook_url', field=models.URLField(verbose_name='LABEL_HOOK_URL'), ), migrations.AlterField( model_name='courseinstance', name='archive_time', field=models.DateTimeField(blank=True, null=True, verbose_name='LABEL_ARCHIVE_TIME'), ), migrations.AlterField( model_name='courseinstance', name='content_numbering', field=models.IntegerField(choices=[(0, 'NUMBERING_NONE'), (1, 'NUMBERING_ARABIC'), (2, 'NUMBERING_ROMAN'), (3, 'NUMBERING_HIDDEN_ARABIC')], default=1, verbose_name='LABEL_CONTENT_NUMBERING'), ), migrations.AlterField( model_name='courseinstance', name='course', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='instances', to='course.course', verbose_name='LABEL_COURSE'), ), migrations.AlterField( model_name='courseinstance', name='description', field=models.TextField(blank=True, verbose_name='LABEL_DESCRIPTION'), ), migrations.AlterField( model_name='courseinstance', name='ending_time', field=models.DateTimeField(verbose_name='LABEL_ENDING_TIME'), ), migrations.AlterField( model_name='courseinstance', name='enrollment_audience', field=models.IntegerField( choices=[(1, 'INTERNAL_USERS'), (2, 'EXTERNAL_USERS'), (3, 'ALL_USERS')], default=1, verbose_name='LABEL_ENROLLMENT_AUDIENCE'), ), migrations.AlterField( model_name='courseinstance', name='enrollment_ending_time', field=models.DateTimeField( blank=True, null=True, verbose_name='LABEL_ENROLLMENT_ENDING_TIME'), ), migrations.AlterField( model_name='courseinstance', name='enrollment_starting_time', field=models.DateTimeField( blank=True, null=True, verbose_name='LABEL_ENROLLMENT_STARTING_TIME'), ), migrations.AlterField( model_name='courseinstance', name='footer', field=models.TextField(blank=True, verbose_name='LABEL_FOOTER'), ), migrations.AlterField( model_name='courseinstance', name='head_urls', field=models.TextField( blank=True, help_text= 'COURSE_INSTANCE_EXTERNAL_CSS_AND_JS_FOR_ALL_PAGES_HELPTEXT', verbose_name='LABEL_HEAD_URLS'), ), migrations.AlterField( model_name='courseinstance', name='image', field=models.ImageField(blank=True, null=True, upload_to=course.models.build_upload_dir, verbose_name='LABEL_IMAGE'), ), migrations.AlterField( model_name='courseinstance', name='index_mode', field=models.IntegerField( choices=[(0, 'USER_RESULTS'), (1, 'TABLE_OF_CONTENTS'), (2, 'LAST_VISITED_LINK'), (10, 'EXPERIMENTAL_SETUP')], default=0, help_text='COURSE_INSTANCE_INDEX_CONTENT_SELECTION_HELPTEXT', verbose_name='LABEL_INDEX_MODE'), ), migrations.AlterField( model_name='courseinstance', name='instance_name', field=models.CharField(max_length=255, verbose_name='LABEL_INSTANCE_NAME'), ), migrations.AlterField( model_name='courseinstance', name='language', field=models.CharField(blank=True, default='', max_length=255, verbose_name='LABEL_LANGUAGE'), ), migrations.AlterField( model_name='courseinstance', name='lifesupport_time', field=models.DateTimeField(blank=True, null=True, verbose_name='LABEL_LIFESUPPORT_TIME'), ), migrations.AlterField( model_name='courseinstance', name='module_numbering', field=models.IntegerField(choices=[(0, 'NUMBERING_NONE'), (1, 'NUMBERING_ARABIC'), (2, 'NUMBERING_ROMAN'), (3, 'NUMBERING_HIDDEN_ARABIC')], default=1, verbose_name='LABEL_MODULE_NUMBERING'), ), migrations.AlterField( model_name='courseinstance', name='starting_time', field=models.DateTimeField(verbose_name='LABEL_STARTING_TIME'), ), migrations.AlterField( model_name='courseinstance', name='technical_error_emails', field=models.CharField( blank=True, help_text= 'COURSE_INSTANCE_EXERCISE_ERROR_EMAIL_RECIPIENT_OVERRIDE_HELPTEXT', max_length=255, verbose_name='LABEL_TECHNICAL_ERROR_EMAILS'), ), migrations.AlterField( model_name='courseinstance', name='url', field=models.CharField( help_text='COURSE_INSTANCE_URL_IDENTIFIER_HELPTEXT', max_length=255, validators=[ django.core.validators.RegexValidator( message='URL_KEY_MAY_CONSIST_OF', regex=re.compile('^\\w[\\w\\-\\.]*$')) ], verbose_name='LABEL_URL'), ), migrations.AlterField( model_name='courseinstance', name='view_content_to', field=models.IntegerField(choices=[(1, 'ENROLLED_STUDENTS'), (2, 'ENROLLMENT_AUDIENCE'), (3, 'ALL_REGISTERED_USERS'), (4, 'PUBLIC')], default=1, verbose_name='LABEL_VIEW_CONTENT_TO'), ), migrations.AlterField( model_name='courseinstance', name='visible_to_students', field=models.BooleanField( default=True, verbose_name='LABEL_VISIBLE_TO_STUDENTS'), ), migrations.AlterField( model_name='coursemodule', name='closing_time', field=models.DateTimeField( default=django.utils.timezone.now, help_text='MODULE_CLOSING_TIME_HELPTEXT', verbose_name='LABEL_CLOSING_TIME'), ), migrations.AlterField( model_name='coursemodule', name='course_instance', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='course_modules', to='course.courseinstance', verbose_name='LABEL_COURSE_INSTANCE'), ), migrations.AlterField( model_name='coursemodule', name='introduction', field=models.TextField(blank=True, verbose_name='LABEL_INTRODUCTION'), ), migrations.AlterField( model_name='coursemodule', name='late_submission_deadline', field=models.DateTimeField( default=django.utils.timezone.now, verbose_name='LABEL_LATE_SUBMISSION_DEADLINE'), ), migrations.AlterField( model_name='coursemodule', name='late_submission_penalty', field=lib.fields.PercentField( default=0.5, help_text='MODULE_LATE_SUBMISSION_PENALTY_HELPTEXT', verbose_name='LABEL_LATE_SUBMISSION_PENALTY'), ), migrations.AlterField( model_name='coursemodule', name='late_submissions_allowed', field=models.BooleanField( default=False, verbose_name='LABEL_LATE_SUBMISSIONS_ALLOWED'), ), migrations.AlterField( model_name='coursemodule', name='name', field=models.CharField(max_length=255, verbose_name='LABEL_NAME'), ), migrations.AlterField( model_name='coursemodule', name='opening_time', field=models.DateTimeField( default=django.utils.timezone.now, verbose_name='LABEL_EXERCISE_OPENING_TIME'), ), migrations.AlterField( model_name='coursemodule', name='order', field=models.IntegerField(default=1, verbose_name='LABEL_ORDER'), ), migrations.AlterField( model_name='coursemodule', name='points_to_pass', field=models.PositiveIntegerField( default=0, verbose_name='LABEL_POINTS_TO_PASS'), ), migrations.AlterField( model_name='coursemodule', name='reading_opening_time', field=models.DateTimeField( blank=True, help_text='MODULE_READING_OPENING_TIME_HELPTEXT', null=True, verbose_name='LABEL_READING_OPENING_TIME'), ), migrations.AlterField( model_name='coursemodule', name='status', field=models.CharField(choices=[('hidden', 'STATUS_HIDDEN'), ('maintenance', 'STATUS_MAINTENANCE'), ('ready', 'STATUS_READY'), ('unlisted', 'STATUS_UNLISTED')], default='ready', max_length=32, verbose_name='LABEL_STATUS'), ), migrations.AlterField( model_name='coursemodule', name='url', field=models.CharField( help_text='MODULE_URL_IDENTIFIER_HELPTEXT', max_length=255, validators=[ django.core.validators.RegexValidator( message='URL_KEY_MAY_CONSIST_OF', regex=re.compile('^\\w[\\w\\-\\.]*$')) ], verbose_name='LABEL_URL'), ), migrations.AlterField( model_name='enrollment', name='anon_id', field=models.CharField(blank=True, max_length=50, null=True, unique=True, verbose_name='LABEL_ANON_ID'), ), migrations.AlterField( model_name='enrollment', name='anon_name', field=models.CharField(blank=True, default='', max_length=50, verbose_name='LABEL_ANON_NAME'), ), migrations.AlterField( model_name='enrollment', name='course_instance', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='course.courseinstance', verbose_name='LABEL_COURSE_INSTANCE'), ), migrations.AlterField( model_name='enrollment', name='language', field=models.CharField(blank=True, default='', max_length=5, verbose_name='LABEL_LANGUAGE'), ), migrations.AlterField( model_name='enrollment', name='personal_code', field=models.CharField(blank=True, default='', max_length=10, verbose_name='LABEL_PERSONAL_CODE'), ), migrations.AlterField( model_name='enrollment', name='role', field=models.IntegerField(choices=[(1, 'STUDENT'), (2, 'ASSISTANT'), (3, 'TEACHER')], default=1, verbose_name='LABEL_ROLE'), ), migrations.AlterField( model_name='enrollment', name='selected_group', field=models.ForeignKey( blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='course.studentgroup', verbose_name='LABEL_SELECTED_GROUP'), ), migrations.AlterField( model_name='enrollment', name='status', field=models.IntegerField(choices=[(1, 'ACTIVE'), (2, 'REMOVED'), (3, 'BANNED')], default=1, verbose_name='LABEL_STATUS'), ), migrations.AlterField( model_name='enrollment', name='timestamp', field=models.DateTimeField(auto_now_add=True, verbose_name='LABEL_TIMESTAMP'), ), migrations.AlterField( model_name='enrollment', name='user_profile', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='userprofile.userprofile', verbose_name='LABEL_USER_PROFILE'), ), migrations.AlterField( model_name='learningobjectcategory', name='accept_unofficial_submits', field=models.BooleanField( default=False, help_text= 'LEARNING_OBJECT_CATEGORY_ACCEPT_UNOFFICIAL_SUBMISSIONS_HELPTEXT', verbose_name='LABEL_ACCEPT_UNOFFICIAL_SUBMITS'), ), migrations.AlterField( model_name='learningobjectcategory', name='confirm_the_level', field=models.BooleanField( default=False, help_text= 'LEARNING_OBJECT_CATEGORY_LEVEL_CONFIRMATION_EXERCISE_HELPTEXT', verbose_name='LABEL_CONFIRM_THE_LEVEL'), ), migrations.AlterField( model_name='learningobjectcategory', name='course_instance', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='categories', to='course.courseinstance', verbose_name='LABEL_COURSE_INSTANCE'), ), migrations.AlterField( model_name='learningobjectcategory', name='description', field=models.TextField(blank=True, verbose_name='LABEL_DESCRIPTION'), ), migrations.AlterField( model_name='learningobjectcategory', name='name', field=models.CharField(max_length=255, verbose_name='LABEL_NAME'), ), migrations.AlterField( model_name='learningobjectcategory', name='points_to_pass', field=models.PositiveIntegerField( default=0, verbose_name='LABEL_POINTS_TO_PASS'), ), migrations.AlterField( model_name='learningobjectcategory', name='status', field=models.CharField(choices=[('hidden', 'STATUS_HIDDEN'), ('nototal', 'STATUS_NO_TOTAL_POINTS'), ('ready', 'STATUS_READY')], default='ready', max_length=32, verbose_name='LABEL_STATUS'), ), migrations.AlterField( model_name='studentgroup', name='course_instance', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='groups', to='course.courseinstance', verbose_name='LABEL_COURSE_INSTANCE'), ), migrations.AlterField( model_name='studentgroup', name='members', field=models.ManyToManyField(related_name='groups', to='userprofile.UserProfile', verbose_name='LABEL_MEMBERS'), ), migrations.AlterField( model_name='studentgroup', name='timestamp', field=models.DateTimeField(auto_now_add=True, verbose_name='LABEL_TIMESTAMP'), ), migrations.AlterField( model_name='usertag', name='course_instance', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='usertags', to='course.courseinstance', verbose_name='LABEL_COURSE_INSTANCE'), ), migrations.AlterField( model_name='usertag', name='visible_to_students', field=models.BooleanField( default=False, verbose_name='LABEL_VISIBLE_TO_STUDENTS'), ), migrations.AlterField( model_name='usertagging', name='course_instance', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='taggings', to='course.courseinstance', verbose_name='LABEL_COURSE_INSTANCE'), ), migrations.AlterField( model_name='usertagging', name='tag', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='taggings', to='course.usertag', verbose_name='LABEL_TAG'), ), migrations.AlterField( model_name='usertagging', name='user', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='taggings', to='userprofile.userprofile', verbose_name='LABEL_USER'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ 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)), ], ), migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=500)), ('poster', models.ImageField( help_text= 'Please upload a cover picture for your lecture slides.', upload_to='poster/')), ('skills', models.CharField(choices=[('beginner', 'Beginner'), ('intermidate', 'Intermidate'), ('advance', 'Advance')], max_length=25)), ('powerpoint_slides', models.FileField( blank=True, help_text='Please upload your powerpoint slides here.', null=True, upload_to='powerpoint/')), ('powerpoint_url', models.URLField( blank=True, help_text='Please upload your powerpoint slides here.', null=True)), ('price', models.IntegerField( blank=True, help_text= 'Leave the table blank if the course is free of cost.', null=True)), ('created', models.DateTimeField(auto_now_add=True, null=True)), ('modified', models.DateTimeField(auto_now=True, null=True)), ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Category')), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='Verification', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('qualification', models.FileField( help_text= 'Upload a proof for your verification to become an instructor.', null=True, upload_to='documents/')), ('verify', models.BooleanField(default=False)), ('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')), ('lecture_title', models.CharField( help_text='eg: Lecture 1: Introduction to computer', max_length=500)), ('lecture_content', models.FileField( blank=True, null=True, upload_to='lecture video/', validators=[course.models.validate_file_size])), ('youtube_url', models.URLField( blank=True, help_text='Link of youtube url that you want to upload', null=True)), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Course')), ], ), migrations.CreateModel( name='Comment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('comment', models.TextField(max_length=200)), ('timestamp', models.DateTimeField(auto_now_add=True)), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Course')), ('reply', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='replies', to='course.Comment')), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('course', '0044_auto_20190415_1807'), ] operations = [ migrations.AlterField( model_name='courseinstance', name='archive_time', field=models.DateTimeField(blank=True, null=True, verbose_name='归档时间'), ), migrations.AlterField( model_name='courseinstance', name='assistants', field=models.ManyToManyField(blank=True, related_name='assisting_courses', to='userprofile.UserProfile', verbose_name='选择助教'), ), migrations.AlterField( model_name='courseinstance', name='content_numbering', field=models.IntegerField(choices=[(0, 'No numbering'), (1, 'Arabic'), (2, 'Roman'), (3, 'Hidden arabic')], default=1, verbose_name='章节编号'), ), migrations.AlterField( model_name='courseinstance', name='description', field=models.TextField(blank=True, verbose_name='描述'), ), migrations.AlterField( model_name='courseinstance', name='ending_time', field=models.DateTimeField(verbose_name='结课时间'), ), migrations.AlterField( model_name='courseinstance', name='enrollment_audience', field=models.IntegerField(choices=[(1, 'Internal users'), (2, 'External users'), (3, 'Internal and external users')], default=1, verbose_name='注册对象'), ), migrations.AlterField( model_name='courseinstance', name='enrollment_ending_time', field=models.DateTimeField(blank=True, null=True, verbose_name='关闭注册时间'), ), migrations.AlterField( model_name='courseinstance', name='enrollment_starting_time', field=models.DateTimeField(blank=True, null=True, verbose_name='开放注册时间'), ), migrations.AlterField( model_name='courseinstance', name='footer', field=models.TextField(blank=True, verbose_name='页脚'), ), migrations.AlterField( model_name='courseinstance', name='head_urls', field=models.TextField(blank=True, help_text='External CSS and JS resources that are included on all course pages. Separate with white space.', verbose_name='资源URLs'), ), migrations.AlterField( model_name='courseinstance', name='image', field=models.ImageField(blank=True, null=True, upload_to=course.models.build_upload_dir, verbose_name='缩略图'), ), migrations.AlterField( model_name='courseinstance', name='index_mode', field=models.IntegerField(choices=[(0, 'User results'), (1, 'Table of contents'), (2, 'Link to last visited content'), (10, 'Experimental setup (hard-coded)')], default=0, help_text='Select content for the course index page.', verbose_name='Index mode'), ), migrations.AlterField( model_name='courseinstance', name='instance_name', field=models.CharField(max_length=255, verbose_name='课程实例'), ), migrations.AlterField( model_name='courseinstance', name='language', field=models.CharField(blank=True, default='zh-hans', max_length=255, verbose_name='语言'), ), migrations.AlterField( model_name='courseinstance', name='lifesupport_time', field=models.DateTimeField(blank=True, null=True, verbose_name='结业时间'), ), migrations.AlterField( model_name='courseinstance', name='module_numbering', field=models.IntegerField(choices=[(0, 'No numbering'), (1, 'Arabic'), (2, 'Roman'), (3, 'Hidden arabic')], default=1, verbose_name='模块编号'), ), migrations.AlterField( model_name='courseinstance', name='starting_time', field=models.DateTimeField(verbose_name='开课时间'), ), migrations.AlterField( model_name='courseinstance', name='technical_error_emails', field=models.CharField(blank=True, help_text='By default exercise errors are reported to teacher email addresses. Set this field as comma separated emails to override the recipients.', max_length=255, verbose_name='错误邮箱'), ), migrations.AlterField( model_name='courseinstance', name='url', field=models.CharField(help_text='Input an URL identifier for this course instance.', max_length=255, validators=[django.core.validators.RegexValidator(message='URL keys may consist of alphanumeric characters, hyphen and period.', regex=re.compile('^\\w[\\w\\-\\.]*$'))], verbose_name='URL标识'), ), migrations.AlterField( model_name='courseinstance', name='view_content_to', field=models.IntegerField(choices=[(1, 'Enrolled students'), (2, 'Enrollment audience'), (3, 'All registered users'), (4, 'Public to internet')], default=1, verbose_name='内容可见'), ), migrations.AlterField( model_name='courseinstance', name='visible_to_students', field=models.BooleanField(default=True, verbose_name='公开课程'), ), ]