class Migration(migrations.Migration):

    dependencies = [
        ('contentcuration', '0088_auto_20180705_2007'),
    ]

    operations = [
        migrations.AlterField(
            model_name='contentnode',
            name='aggregator',
            field=models.CharField(
                blank=True,
                default=b'',
                help_text='Who gathered this content together?',
                max_length=200,
                null=True),
        ),
        migrations.AlterField(
            model_name='contentnode',
            name='provider',
            field=models.CharField(blank=True,
                                   default=b'',
                                   help_text='Who distributed this content?',
                                   max_length=200,
                                   null=True),
        ),
    ]
예제 #2
0
class Migration(migrations.Migration):
    dependencies = [
        ('contentcuration', '0096_merge_20181222_0008'),
    ]

    operations = [
        migrations.CreateModel(
            name='Task',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('task_type', models.CharField(max_length=50)),
                ('created',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('status', models.CharField(max_length=10)),
                ('is_progress_tracking', models.BooleanField(default=False)),
                ('metadata', django.contrib.postgres.fields.jsonb.JSONField()),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='task',
                                   to=settings.AUTH_USER_MODEL)),
                ('task_id',
                 contentcuration.models.UUIDField(db_index=True,
                                                  default=uuid.uuid4,
                                                  max_length=32)),
            ],
        ),
        migrations.AlterField(
            model_name='formatpreset',
            name='id',
            field=models.CharField(choices=[
                (b'high_res_video', b'High Resolution'),
                (b'low_res_video', b'Low Resolution'),
                (b'video_thumbnail', b'Thumbnail'),
                (b'video_subtitle', b'Subtitle'),
                (b'video_dependency', b'Video (dependency)'),
                (b'audio', b'Audio'), (b'audio_thumbnail', b'Thumbnail'),
                (b'document', b'Document'), (b'epub', b'ePub Document'),
                (b'document_thumbnail', b'Thumbnail'),
                (b'exercise', b'Exercise'),
                (b'exercise_thumbnail', b'Thumbnail'),
                (b'exercise_image', b'Exercise Image'),
                (b'exercise_graphie', b'Exercise Graphie'),
                (b'channel_thumbnail', b'Channel Thumbnail'),
                (b'topic_thumbnail', b'Thumbnail'),
                (b'html5_zip', b'HTML5 Zip'),
                (b'html5_dependency', b'HTML5 Dependency (Zip format)'),
                (b'html5_thumbnail', b'HTML5 Thumbnail')
            ],
                                   max_length=150,
                                   primary_key=True,
                                   serialize=False),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('contentcuration', '0057_auto_20170223_1558'),
    ]

    operations = [
        migrations.AlterField(
            model_name='channel',
            name='deleted',
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.AlterField(
            model_name='channel',
            name='public',
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.AlterField(
            model_name='contentnode',
            name='changed',
            field=models.BooleanField(db_index=True, default=True),
        ),
        migrations.AlterField(
            model_name='contentnode',
            name='original_channel_id',
            field=contentcuration.models.UUIDField(db_index=True, editable=False, max_length=32, null=True),
        ),
        migrations.AlterField(
            model_name='file',
            name='checksum',
            field=models.CharField(blank=True, db_index=True, max_length=400),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('contentcuration', '0084_auto_20180329_1051'),
    ]

    operations = [
        migrations.AddField(
            model_name='contentnode',
            name='aggregator',
            field=models.CharField(
                blank=True,
                help_text='Who gathered this content together?',
                max_length=200,
                null=True),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='provider',
            field=models.CharField(blank=True,
                                   help_text='Who distributed this content?',
                                   max_length=200,
                                   null=True),
        ),
        migrations.AlterField(
            model_name='channel',
            name='content_defaults',
            field=jsonfield.fields.JSONField(
                default={
                    b'aggregator': None,
                    b'author': None,
                    b'auto_derive_audio_thumbnail': True,
                    b'auto_derive_document_thumbnail': True,
                    b'auto_derive_exercise_thumbnail': True,
                    b'auto_derive_html5_thumbnail': True,
                    b'auto_derive_video_thumbnail': True,
                    b'auto_randomize_questions': True,
                    b'copyright_holder': None,
                    b'language': None,
                    b'license': None,
                    b'license_description': None,
                    b'm_value': 5,
                    b'mastery_model': b'num_correct_in_a_row_5',
                    b'n_value': 5,
                    b'provider': None
                }),
        ),
        migrations.AlterField(
            model_name='channel',
            name='preferences',
            field=models.TextField(
                default=
                b'{"auto_derive_exercise_thumbnail": true, "auto_derive_video_thumbnail": true, "m_value": 5, "language": null, "license": null, "author": null, "aggregator": null, "auto_randomize_questions": true, "auto_derive_document_thumbnail": true, "copyright_holder": null, "auto_derive_html5_thumbnail": true, "provider": null, "auto_derive_audio_thumbnail": true, "license_description": null, "n_value": 5, "mastery_model": "num_correct_in_a_row_5"}'
            ),
        ),
        migrations.AlterField(
            model_name='contentnode',
            name='author',
            field=models.CharField(blank=True,
                                   default=b'',
                                   help_text='Who created this content?',
                                   max_length=200,
                                   null=True),
        ),
        migrations.AlterField(
            model_name='user',
            name='content_defaults',
            field=jsonfield.fields.JSONField(
                default={
                    b'aggregator': None,
                    b'author': None,
                    b'auto_derive_audio_thumbnail': True,
                    b'auto_derive_document_thumbnail': True,
                    b'auto_derive_exercise_thumbnail': True,
                    b'auto_derive_html5_thumbnail': True,
                    b'auto_derive_video_thumbnail': True,
                    b'auto_randomize_questions': True,
                    b'copyright_holder': None,
                    b'language': None,
                    b'license': None,
                    b'license_description': None,
                    b'm_value': 5,
                    b'mastery_model': b'num_correct_in_a_row_5',
                    b'n_value': 5,
                    b'provider': None
                }),
        ),
        migrations.AlterField(
            model_name='user',
            name='preferences',
            field=models.TextField(
                default=
                b'{"auto_derive_exercise_thumbnail": true, "auto_derive_video_thumbnail": true, "m_value": 5, "language": null, "license": null, "author": null, "aggregator": null, "auto_randomize_questions": true, "auto_derive_document_thumbnail": true, "copyright_holder": null, "auto_derive_html5_thumbnail": true, "provider": null, "auto_derive_audio_thumbnail": true, "license_description": null, "n_value": 5, "mastery_model": "num_correct_in_a_row_5"}'
            ),
        ),
    ]
예제 #5
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('password',
                 models.CharField(max_length=128, verbose_name='password')),
                ('last_login',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name='last login')),
                ('email', models.EmailField(max_length=100, unique=True)),
                ('first_name', models.CharField(max_length=100)),
                ('last_name', models.CharField(max_length=100)),
                ('is_admin', models.BooleanField(default=False)),
                ('is_active', models.BooleanField(default=False)),
            ],
            options={
                'verbose_name': 'User',
                'verbose_name_plural': 'Users',
            },
        ),
        migrations.CreateModel(
            name='AssessmentItem',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('type',
                 models.CharField(default=b'multiplechoice', max_length=50)),
                ('question', models.TextField(blank=True)),
                ('answers', models.TextField(default=b'[]')),
            ],
        ),
        migrations.CreateModel(
            name='Channel',
            fields=[
                ('id',
                 contentcuration.models.UUIDField(default=uuid.uuid4,
                                                  max_length=32,
                                                  primary_key=True,
                                                  serialize=False)),
                ('name', models.CharField(max_length=200)),
                ('description', models.CharField(blank=True, max_length=400)),
                ('version', models.IntegerField(default=0)),
                ('thumbnail', models.TextField(blank=True)),
                ('deleted', models.BooleanField(default=False)),
                ('public', models.BooleanField(default=False)),
                ('bookmarked_by',
                 models.ManyToManyField(related_name='bookmarked_channels',
                                        to=settings.AUTH_USER_MODEL,
                                        verbose_name='bookmarked by')),
            ],
            options={
                'verbose_name': 'Channel',
                'verbose_name_plural': 'Channels',
            },
        ),
        migrations.CreateModel(
            name='ContentKind',
            fields=[
                ('kind',
                 models.CharField(choices=[(b'topic', 'Topic'),
                                           (b'video', 'Video'),
                                           (b'audio', 'Audio'),
                                           (b'exercise', 'Exercise'),
                                           (b'document', 'Document'),
                                           (b'image', 'Image')],
                                  max_length=200,
                                  primary_key=True,
                                  serialize=False)),
            ],
        ),
        migrations.CreateModel(
            name='ContentNode',
            fields=[
                ('id',
                 contentcuration.models.UUIDField(default=uuid.uuid4,
                                                  max_length=32,
                                                  primary_key=True,
                                                  serialize=False)),
                ('content_id',
                 contentcuration.models.UUIDField(default=uuid.uuid4,
                                                  editable=False,
                                                  max_length=32)),
                ('title', models.CharField(max_length=200)),
                ('description', models.CharField(blank=True, max_length=400)),
                ('sort_order',
                 models.FloatField(
                     default=0,
                     help_text='Ascending, lowest number shown first',
                     max_length=50,
                     verbose_name='sort order')),
                ('license_owner',
                 models.CharField(
                     blank=True,
                     help_text=
                     'Organization of person who holds the essential rights',
                     max_length=200)),
                ('author',
                 models.CharField(blank=True,
                                  help_text='Person who created content',
                                  max_length=200)),
                ('created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='created')),
                ('modified',
                 models.DateTimeField(auto_now=True, verbose_name='modified')),
                ('changed', models.BooleanField(default=True)),
                ('lft',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('rght',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('tree_id',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('level',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('cloned_source',
                 mptt.fields.TreeForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='clones',
                     to='contentcuration.ContentNode')),
            ],
            options={
                'verbose_name': 'Topic',
                'verbose_name_plural': 'Topics',
            },
            managers=[
                ('_default_manager', django.db.models.manager.Manager()),
            ],
        ),
        migrations.CreateModel(
            name='ContentTag',
            fields=[
                ('id',
                 contentcuration.models.UUIDField(default=uuid.uuid4,
                                                  max_length=32,
                                                  primary_key=True,
                                                  serialize=False)),
                ('tag_name', models.CharField(max_length=30)),
                ('channel',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='tags',
                                   to='contentcuration.Channel')),
            ],
        ),
        migrations.CreateModel(
            name='Exercise',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title',
                 models.CharField(default='Title',
                                  help_text='Title of the content item',
                                  max_length=50,
                                  verbose_name='title')),
                ('description',
                 models.TextField(
                     default='Description',
                     help_text='Brief description of what this content item is',
                     max_length=200,
                     verbose_name='description')),
            ],
        ),
        migrations.CreateModel(
            name='File',
            fields=[
                ('id',
                 contentcuration.models.UUIDField(default=uuid.uuid4,
                                                  max_length=32,
                                                  primary_key=True,
                                                  serialize=False)),
                ('checksum', models.CharField(blank=True, max_length=400)),
                ('file_size', models.IntegerField(blank=True, null=True)),
                ('file_on_disk',
                 models.FileField(
                     blank=True,
                     max_length=500,
                     storage=contentcuration.models.FileOnDiskStorage(),
                     upload_to=contentcuration.models.file_on_disk_name)),
                ('original_filename',
                 models.CharField(blank=True, max_length=255)),
                ('contentnode',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='files',
                                   to='contentcuration.ContentNode')),
            ],
        ),
        migrations.CreateModel(
            name='FileFormat',
            fields=[
                ('extension',
                 models.CharField(choices=[(b'mp4', 'mp4'), (b'vtt', 'vtt'),
                                           (b'srt', 'srt'), (b'mp3', 'mp3'),
                                           (b'pdf', 'pdf')],
                                  max_length=40,
                                  primary_key=True,
                                  serialize=False)),
                ('mimetype', models.CharField(blank=True, max_length=200)),
            ],
        ),
        migrations.CreateModel(
            name='FormatPreset',
            fields=[
                ('id',
                 models.CharField(choices=[
                     (b'high_res_video', 'High resolution video'),
                     (b'low_res_video', 'Low resolution video'),
                     (b'vector_video', 'Vertor video'),
                     (b'thumbnail', 'Thumbnail'), (b'thumbnail', 'Thumbnail'),
                     (b'caption', 'Caption')
                 ],
                                  max_length=150,
                                  primary_key=True,
                                  serialize=False)),
                ('readable_name', models.CharField(max_length=400)),
                ('multi_language', models.BooleanField(default=False)),
                ('supplementary', models.BooleanField(default=False)),
                ('order', models.IntegerField()),
                ('allowed_formats',
                 models.ManyToManyField(blank=True,
                                        to='contentcuration.FileFormat')),
                ('kind',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='format_presets',
                                   to='contentcuration.ContentKind')),
            ],
        ),
        migrations.CreateModel(
            name='Invitation',
            fields=[
                ('id',
                 contentcuration.models.UUIDField(default=uuid.uuid4,
                                                  max_length=32,
                                                  primary_key=True,
                                                  serialize=False)),
                ('email', models.EmailField(max_length=100)),
                ('first_name',
                 models.CharField(default=b'Guest', max_length=100)),
                ('last_name',
                 models.CharField(blank=True, max_length=100, null=True)),
                ('channel',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='pending_editors',
                                   to='contentcuration.Channel')),
                ('invited',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='sent_to',
                                   to=settings.AUTH_USER_MODEL)),
                ('sender',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='sent_by',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Invitation',
                'verbose_name_plural': 'Invitations',
            },
        ),
        migrations.CreateModel(
            name='Language',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('lang_code', models.CharField(db_index=True, max_length=2)),
                ('lang_subcode', models.CharField(db_index=True,
                                                  max_length=2)),
            ],
        ),
        migrations.CreateModel(
            name='License',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('license_name', models.CharField(max_length=50)),
                ('license_url', models.URLField(blank=True)),
                ('license_description', models.TextField(blank=True)),
                ('exists',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Tells whether or not a content item is licensed to share',
                     verbose_name='license exists')),
            ],
        ),
        migrations.CreateModel(
            name='PrerequisiteContentRelationship',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('prerequisite',
                 models.ForeignKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name=
                     'contentcuration_prerequisitecontentrelationship_prerequisite',
                     to='contentcuration.ContentNode')),
                ('target_node',
                 models.ForeignKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name=
                     'contentcuration_prerequisitecontentrelationship_target_node',
                     to='contentcuration.ContentNode')),
            ],
        ),
        migrations.CreateModel(
            name='RelatedContentRelationship',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('contentnode_1',
                 models.ForeignKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name=
                     'contentcuration_relatedcontentrelationship_1',
                     to='contentcuration.ContentNode')),
                ('contentnode_2',
                 models.ForeignKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name=
                     'contentcuration_relatedcontentrelationship_2',
                     to='contentcuration.ContentNode')),
            ],
        ),
        migrations.AddField(
            model_name='file',
            name='file_format',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='files',
                to='contentcuration.FileFormat'),
        ),
        migrations.AddField(
            model_name='file',
            name='lang',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='contentcuration.Language'),
        ),
        migrations.AddField(
            model_name='file',
            name='preset',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='files',
                to='contentcuration.FormatPreset'),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='is_related',
            field=models.ManyToManyField(
                blank=True,
                related_name='relate_to',
                through='contentcuration.RelatedContentRelationship',
                to='contentcuration.ContentNode'),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='kind',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='contentnodes',
                to='contentcuration.ContentKind'),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='license',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='contentcuration.License'),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='original_node',
            field=mptt.fields.TreeForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name='duplicates',
                to='contentcuration.ContentNode'),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='parent',
            field=mptt.fields.TreeForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='children',
                to='contentcuration.ContentNode'),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='prerequisite',
            field=models.ManyToManyField(
                blank=True,
                related_name='is_prerequisite_of',
                through='contentcuration.PrerequisiteContentRelationship',
                to='contentcuration.ContentNode'),
        ),
        migrations.AddField(
            model_name='contentnode',
            name='tags',
            field=models.ManyToManyField(blank=True,
                                         related_name='tagged_content',
                                         to='contentcuration.ContentTag'),
        ),
        migrations.AddField(
            model_name='channel',
            name='clipboard_tree',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='channel_clipboard',
                to='contentcuration.ContentNode'),
        ),
        migrations.AddField(
            model_name='channel',
            name='editors',
            field=models.ManyToManyField(help_text='Users with edit rights',
                                         related_name='editable_channels',
                                         to=settings.AUTH_USER_MODEL,
                                         verbose_name='editors'),
        ),
        migrations.AddField(
            model_name='channel',
            name='main_tree',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='channel_main',
                to='contentcuration.ContentNode'),
        ),
        migrations.AddField(
            model_name='channel',
            name='trash_tree',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='channel_trash',
                to='contentcuration.ContentNode'),
        ),
        migrations.AddField(
            model_name='assessmentitem',
            name='exercise',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='all_assessment_items',
                to='contentcuration.Exercise'),
        ),
        migrations.AlterUniqueTogether(
            name='relatedcontentrelationship',
            unique_together=set([('contentnode_1', 'contentnode_2')]),
        ),
        migrations.AlterUniqueTogether(
            name='prerequisitecontentrelationship',
            unique_together=set([('target_node', 'prerequisite')]),
        ),
        migrations.AlterUniqueTogether(
            name='contenttag',
            unique_together=set([('tag_name', 'channel')]),
        ),
    ]