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

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Assignment',
            fields=[
                ('id',
                 models.UUIDField(default=uuid.uuid4,
                                  editable=False,
                                  primary_key=True,
                                  serialize=False)),
                ('title', models.CharField(max_length=200)),
                ('description', models.CharField(max_length=600)),
                ('date', models.DateTimeField(auto_now_add=True)),
                ('deadline', models.DateField()),
                ('by_teacher',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ('-date', ),
            },
        ),
        migrations.CreateModel(
            name='UploadedAssignment',
            fields=[
                ('id',
                 models.UUIDField(default=uuid.uuid4,
                                  editable=False,
                                  primary_key=True,
                                  serialize=False)),
                ('upload_file',
                 models.FileField(
                     upload_to=assignments.models.user_directory_path,
                     validators=[
                         django.core.validators.FileExtensionValidator(
                             allowed_extensions=['pdf', 'docx'])
                     ])),
                ('uploaded_date',
                 models.DateField(auto_now_add=True, db_index=True)),
                ('assignment',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='assignment',
                                   to='assignments.Assignment')),
                ('student',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='assignment_uploaded',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ('-uploaded_date', ),
            },
        ),
    ]
Example #2
0
class Migration(migrations.Migration):

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('assignments', '0003_auto_20201203_1016'),
    ]

    operations = [
        migrations.CreateModel(
            name='UploadAssignment',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('upload_file', models.FileField(upload_to=assignments.models.user_directory_path, validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf', 'docx'])])),
                ('uploaded_date', models.DateField(auto_now_add=True, db_index=True)),
                ('assignment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='upload_assignment', to='assignments.giveassignment')),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='upload_by_student', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ('-uploaded_date',),
            },
        ),
        migrations.DeleteModel(
            name='UploadedAssignment',
        ),
    ]
Example #3
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Exercise',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('file',
                 models.FileField(
                     upload_to=assignments.models.get_exercise_filepath)),
                ('feedback_text',
                 models.TextField(blank=True, max_length=1500, null=True)),
                ('approved', models.BooleanField(blank=True, null=True)),
                ('course',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='exercise_uploads',
                                   to='booking.Course')),
                ('feedback_by',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.DO_NOTHING,
                     related_name='reviews',
                     to=settings.AUTH_USER_MODEL)),
                ('student',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='exercises',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['approved'],
            },
        ),
    ]
class Migration(migrations.Migration):

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

    operations = [
        migrations.RemoveField(
            model_name='assignment',
            name='grade',
        ),
        migrations.AddField(
            model_name='assignment',
            name='assignment_file',
            field=models.FileField(
                blank=True, upload_to=assignments.models.user_directory_path),
        ),
        migrations.AddField(
            model_name='assignment',
            name='course',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to='courses.Course'),
        ),
        migrations.AddField(
            model_name='assignment',
            name='score',
            field=models.FloatField(blank=True, default=0.0),
        ),
        migrations.AlterField(
            model_name='assignment',
            name='description',
            field=models.CharField(blank=True, max_length=500),
        ),
    ]
Example #5
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Enrollment',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('enrollment_status', models.CharField(choices=[('NOT-STARTED', 'NOT STARTED'), ('IN-REVIEW', 'IN REVIEW'), ('RE-SUBMIT', 'RE SUBMIT'), ('IN-PROGRESS', 'IN PROGRESS'), ('COMPLETED', 'COMPLETED'), ('NEXT-MODULE', 'NEXT MODULE')], default=None, max_length=30)),
                ('enrollment_method', models.CharField(choices=[('AUTOMATIC', 'AUTOMATIC ENROLLMENT'), ('MANUAL', 'MANUAL ENROLLMENT'), ('SETDATE', 'SET DATE')], default=None, max_length=30)),
                ('total_tasks', models.IntegerField(default=0)),
                ('tasks_completed', models.IntegerField(default=0)),
                ('rejected_count', models.PositiveIntegerField(default=0)),
                ('date_set', models.DateTimeField(blank=True, null=True)),
                ('date_to_start', models.DateTimeField(blank=True, null=True)),
                ('date_due', models.DateTimeField(blank=True, null=True)),
                ('date_completed', models.DateTimeField(blank=True, null=True)),
            ],
            options={
                'verbose_name': 'Enrollment',
                'verbose_name_plural': 'Enrollements',
            },
        ),
        migrations.CreateModel(
            name='Module',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=255)),
                ('description', ckeditor.fields.RichTextField()),
                ('status', models.CharField(blank=True, choices=[('DRAFT', 'Draft'), ('PUBLISHED', 'Published')], default='DRAFT', max_length=255, null=True)),
                ('short_title', models.CharField(blank=True, max_length=255, null=True)),
                ('cover_image', models.FileField(blank=True, null=True, upload_to='module-cover-image')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Module',
                'verbose_name_plural': 'Modules',
            },
        ),
        migrations.CreateModel(
            name='ModuleCategory',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('category_type', models.CharField(max_length=255, unique=True)),
                ('category_description', models.TextField()),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Module Category',
                'verbose_name_plural': 'Module Categories',
            },
        ),
        migrations.CreateModel(
            name='ModuleLesson',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('lesson_name', models.CharField(max_length=255)),
                ('completed', models.BooleanField(default=False)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('module', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lessons', to='assignments.Module')),
            ],
            options={
                'verbose_name': 'Module Lesson',
                'verbose_name_plural': 'Module Lessons',
            },
        ),
        migrations.CreateModel(
            name='QuizQuestion',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('question', models.TextField()),
                ('question_type', models.CharField(choices=[('MC', 'Multiple Choice'), ('SC', 'Single Choice')], default='MC', max_length=2)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('updated', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Quiz Question',
                'verbose_name_plural': 'Quiz Questions',
            },
        ),
        migrations.CreateModel(
            name='Task',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('task_name', models.CharField(max_length=255)),
                ('task_description', ckeditor.fields.RichTextField(blank=True, null=True)),
                ('duration', models.TimeField(blank=True, null=True)),
                ('content_type', models.CharField(choices=[('TXT', 'RICH TEXT'), ('IMG', 'IMAGE'), ('TXT-IMG', 'TEXT AND IMAGE'), ('PDF', 'PDF'), ('SCREENSHARE', 'Video Screenshare'), ('TALKINGHEAD', 'Video Talking Head'), ('QUIZ', 'QUIZ'), ('FILE', 'UPLOAD FILE - DOWNLOAD FILE'), ('INPUT-FIELD', 'INPUT FIELD')], default='TXT', max_length=30)),
                ('response_type', models.CharField(choices=[('NONE', 'NONE'), ('TXT', 'RICH TEXT'), ('FILE', 'FILE'), ('QUIZ', 'QUIZ')], default='NONE', max_length=30)),
                ('task_file', models.FileField(blank=True, max_length=255, null=True, upload_to=assignments.models._update_filename)),
                ('completed', models.BooleanField(default=False)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('lesson', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='assignments.ModuleLesson')),
            ],
            options={
                'verbose_name': 'Task',
                'verbose_name_plural': 'Tasks',
            },
        ),
        migrations.CreateModel(
            name='TaskProgressStatus',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('enrollment_updated', models.BooleanField(default=False)),
                ('task_response_text', ckeditor.fields.RichTextField(blank=True, null=True)),
                ('task_response_file', models.FileField(blank=True, null=True, upload_to='task-response-files/')),
                ('rejected_count', models.PositiveIntegerField(default=0)),
                ('date_started', models.DateTimeField(auto_now_add=True)),
                ('date_completed', models.DateTimeField(blank=True, null=True)),
                ('enrollment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='task_progress', to='assignments.Enrollment')),
                ('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='task_progress_statuses', to='assignments.Task')),
            ],
            options={
                'verbose_name': 'Task Progress Status',
                'verbose_name_plural': 'Task Progress status',
            },
        ),
        migrations.CreateModel(
            name='StudentDetail',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('roll_number', models.CharField(max_length=255)),
                ('student_type', models.CharField(max_length=20)),
                ('user', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='student_detail', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Student Detail',
                'verbose_name_plural': 'Student Details',
            },
        ),
        migrations.CreateModel(
            name='StaffDetail',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('staff_id', models.CharField(max_length=255, unique=True)),
                ('staff_role', models.CharField(choices=[('MAN', 'Manager'), ('CC', 'Content Creator'), ('MOD', 'Moderator')], max_length=3)),
                ('assigned_modules', models.ManyToManyField(blank=True, null=True, related_name='staff_details', to='assignments.Module')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='staff_detail', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Staff Detail',
                'verbose_name_plural': 'Staff Details',
            },
        ),
        migrations.CreateModel(
            name='Resource',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('resource_title', models.CharField(max_length=255)),
                ('resource_short_title', models.CharField(blank=True, max_length=20, null=True)),
                ('resource_description', ckeditor.fields.RichTextField()),
                ('suggested_student_type', models.CharField(blank=True, max_length=255, null=True)),
                ('file_type', models.CharField(choices=[('TXT', 'TEXT'), ('IMG', 'IMAGE'), ('PDF', 'PDF')], default='PDF', max_length=255)),
                ('can_be_downloaded', models.BooleanField(default=False)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('resource_cover_image', models.FileField(upload_to='resource-cover-image/')),
                ('resource_text', ckeditor.fields.RichTextField(blank=True, null=True)),
                ('resource_media_file', models.FileField(blank=True, null=True, upload_to='resource-media-files/')),
                ('users', models.ManyToManyField(related_name='resources', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Resource',
                'verbose_name_plural': 'Resources',
            },
        ),
        migrations.CreateModel(
            name='QuizQuestionOption',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('option_content', models.TextField()),
                ('weightage', models.IntegerField()),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='options', to='assignments.QuizQuestion')),
            ],
            options={
                'verbose_name': 'Quiz Question Option',
                'verbose_name_plural': 'Quiz Question Options',
            },
        ),
        migrations.AddField(
            model_name='quizquestion',
            name='quiz_task',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='questions', to='assignments.Task'),
        ),
        migrations.CreateModel(
            name='QuizAnswer',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('rejected_count', models.IntegerField(default=0)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('options', models.ManyToManyField(related_name='quiz_answers', to='assignments.QuizQuestionOption')),
                ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quiz_answers', to='assignments.QuizQuestion')),
                ('task_progress_status', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quiz_answers', to='assignments.TaskProgressStatus')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quiz_answers', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Quiz Answer',
                'verbose_name_plural': 'Quiz Answers',
            },
        ),
        migrations.AddField(
            model_name='module',
            name='module_category',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='modules', to='assignments.ModuleCategory'),
        ),
        migrations.CreateModel(
            name='EnrollmentFeedback',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('enrollment_status', models.CharField(choices=[('COM', 'COMPLETED'), ('RES', 'RE-SUBMIT')], max_length=10)),
                ('comment', ckeditor.fields.RichTextField()),
                ('feedback_file', models.FileField(blank=True, upload_to='feedback-documents/')),
                ('enrollment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enrollments', to='assignments.Enrollment')),
            ],
            options={
                'verbose_name': 'Enrollment Feedback',
                'verbose_name_plural': 'Enrollment Feedbacks',
            },
        ),
        migrations.AddField(
            model_name='enrollment',
            name='module',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enrollments', to='assignments.Module'),
        ),
        migrations.AddField(
            model_name='enrollment',
            name='student',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enrollments', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterUniqueTogether(
            name='enrollment',
            unique_together={('student', 'module')},
        ),
    ]