# Generated by Django 5.1.3 on 2024-11-25 18:17 import django.db.models.deletion from django.db import migrations, models import quiz.helpers class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="Candidate", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=16, verbose_name="name")), ], options={ "verbose_name": "candidate", "verbose_name_plural": "candidates", }, ), migrations.CreateModel( name="Question", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("question", models.CharField(max_length=256, verbose_name="question")), ("enabled", models.BooleanField(default=True, verbose_name="enabled")), ], options={ "verbose_name": "question", "verbose_name_plural": "questions", }, ), migrations.CreateModel( name="Quiz", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=64, verbose_name="name")), ], options={ "verbose_name": "quiz", "verbose_name_plural": "quizzes", }, ), migrations.CreateModel( name="Answer", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("text", models.CharField(max_length=64, verbose_name="text")), ( "is_right_answer", models.BooleanField(verbose_name="is right answer"), ), ( "candidates", models.ManyToManyField( blank=True, to="quiz.candidate", verbose_name="candidates" ), ), ( "question", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="answers", to="quiz.question", verbose_name="question", ), ), ], options={ "verbose_name": "answer", "verbose_name_plural": "answers", "order_with_respect_to": "question", }, ), migrations.AddField( model_name="question", name="quiz", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="questions", to="quiz.quiz", verbose_name="quiz", ), ), migrations.CreateModel( name="GivenAnswer", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("created", models.DateTimeField(auto_now_add=True)), ( "answer", models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, to="quiz.answer", verbose_name="answer", ), ), ( "candidate", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="answers", to="quiz.candidate", verbose_name="candidate", ), ), ( "quiz", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="+", to="quiz.quiz", verbose_name="quiz", ), ), ], options={ "verbose_name": "given answer", "verbose_name_plural": "given answers", "ordering": ("quiz", "candidate"), }, ), migrations.CreateModel( name="Season", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=64, verbose_name="name")), ( "season_code", models.CharField( default=quiz.helpers.generate_season_code, max_length=5, verbose_name="season code", ), ), ( "preregister_candidates", models.BooleanField( default=True, verbose_name="preregister candidates" ), ), ( "active_quiz", models.ForeignKey( blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to="quiz.quiz", verbose_name="active quiz", ), ), ], options={ "verbose_name": "season", "verbose_name_plural": "seasons", }, ), migrations.AddField( model_name="quiz", name="season", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="quizzes", to="quiz.season", verbose_name="season", ), ), migrations.AddField( model_name="candidate", name="season", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="candidates", to="quiz.season", verbose_name="season", ), ), migrations.AlterOrderWithRespectTo( name="question", order_with_respect_to="quiz", ), migrations.CreateModel( name="Correction", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "candidate", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="corrections_used", to="quiz.candidate", verbose_name="candidate", ), ), ( "quiz", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="corrections_used", to="quiz.quiz", verbose_name="quiz", ), ), ], options={ "verbose_name": "correction", "verbose_name_plural": "corrections", "unique_together": {("candidate", "quiz")}, }, ), migrations.AddIndex( model_name="candidate", index=models.Index( fields=["season", "name"], name="quiz_candid_season__d83118_idx" ), ), migrations.AlterUniqueTogether( name="candidate", unique_together={("season", "name")}, ), ]