You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

101 lines
5.0 KiB

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('account', '0001_initial'),
('course', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='QuizRankUser',
fields=[
],
options={
'verbose_name': 'Rank Quiz',
'verbose_name_plural': 'Rank Quizzes',
'proxy': True,
'indexes': [],
'constraints': [],
},
bases=('account.user',),
),
migrations.CreateModel(
name='Quiz',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(help_text='Quiz Title', max_length=255, verbose_name='title')),
('description', models.CharField(blank=True, max_length=55, null=True, verbose_name='Description')),
('each_question_timing', models.PositiveIntegerField()),
('status', models.BooleanField(default=True)),
('lesson', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quizzes', to='course.lesson', verbose_name='lesson')),
],
options={
'verbose_name': 'Quiz',
'verbose_name_plural': 'Quizzes',
'ordering': ('-id',),
},
),
migrations.CreateModel(
name='Question',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('question', models.CharField(max_length=255)),
('option1', models.CharField(max_length=255, verbose_name='option 1')),
('option2', models.CharField(max_length=255, verbose_name='option 2')),
('option3', models.CharField(max_length=255, verbose_name='option 3')),
('option4', models.CharField(max_length=255, verbose_name='option 4')),
('correct_answer', models.PositiveSmallIntegerField(choices=[(1, 'Option 1'), (2, 'Option 2'), (3, 'Option 3'), (4, 'Option 4')])),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')),
('priority', models.IntegerField(blank=True, null=True)),
('quiz', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='questions', to='quiz.quiz', verbose_name='quiz')),
],
options={
'verbose_name': 'Question',
'verbose_name_plural': 'Questions',
'ordering': ('-priority', '-id'),
},
),
migrations.CreateModel(
name='QuizParticipant',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('started_at', models.DateTimeField(verbose_name='started at')),
('ended_at', models.DateTimeField(verbose_name='ended at')),
('total_timing', models.PositiveIntegerField(help_text='Seconds take to finish the quiz')),
('question_score', models.PositiveIntegerField()),
('timing_score', models.PositiveIntegerField()),
('total_score', models.PositiveIntegerField()),
('quiz', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='participants', to='quiz.quiz')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='uquizzes', to=settings.AUTH_USER_MODEL, verbose_name='user')),
],
options={
'verbose_name': 'Participant',
'verbose_name_plural': 'Participants',
'ordering': ('-id',),
},
),
migrations.CreateModel(
name='ParticipantAnswer',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('option_num', models.PositiveSmallIntegerField(choices=[(1, 'Option 1'), (2, 'Option 2'), (3, 'Option 3'), (4, 'Option 4')], verbose_name='selected option')),
('at_time', models.DateTimeField()),
('answer_timing', models.PositiveSmallIntegerField(default=0, verbose_name='seconds take to answer')),
('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='quiz.question')),
('participant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='quiz.quizparticipant')),
],
options={
'verbose_name': 'User Quiz Answer',
'verbose_name_plural': 'User Quiz Answers',
'ordering': ('-id',),
},
),
]