530 lines
19 KiB
Python
530 lines
19 KiB
Python
# Generated by Django 4.2 on 2023-04-04 17:54
|
|
|
|
import django.core.validators
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
initial = True
|
|
|
|
dependencies = [
|
|
("participation", "0005_alter_team_options"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name="Draw",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.AutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
(
|
|
"last_message",
|
|
models.TextField(
|
|
blank=True,
|
|
default="",
|
|
help_text="The last message that is displayed on the drawing interface.",
|
|
verbose_name="last message",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "draw",
|
|
"verbose_name_plural": "draws",
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name="Pool",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.AutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
(
|
|
"letter",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[(1, "A"), (2, "B"), (3, "C"), (4, "D")],
|
|
help_text="The letter of the pool: A, B, C or D.",
|
|
verbose_name="letter",
|
|
),
|
|
),
|
|
(
|
|
"size",
|
|
models.PositiveSmallIntegerField(
|
|
help_text="The number of teams in this pool, between 3 and 5.",
|
|
validators=[
|
|
django.core.validators.MinValueValidator(3),
|
|
django.core.validators.MaxValueValidator(5),
|
|
],
|
|
verbose_name="size",
|
|
),
|
|
),
|
|
(
|
|
"associated_pool",
|
|
models.OneToOneField(
|
|
default=None,
|
|
help_text="The full pool instance.",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="draw_pool",
|
|
to="participation.pool",
|
|
verbose_name="associated pool",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "pool",
|
|
"verbose_name_plural": "pools",
|
|
"ordering": (
|
|
"round__draw__tournament__name",
|
|
"round__number",
|
|
"letter",
|
|
),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name="Round",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.AutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
(
|
|
"number",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[(1, "Round 1"), (2, "Round 2")],
|
|
help_text="The number of the round, 1 or 2",
|
|
validators=[
|
|
django.core.validators.MinValueValidator(1),
|
|
django.core.validators.MaxValueValidator(2),
|
|
],
|
|
verbose_name="number",
|
|
),
|
|
),
|
|
(
|
|
"current_pool",
|
|
models.ForeignKey(
|
|
default=None,
|
|
help_text="The current pool where teams select their problems.",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="+",
|
|
to="draw.pool",
|
|
verbose_name="current pool",
|
|
),
|
|
),
|
|
(
|
|
"draw",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
to="draw.draw",
|
|
verbose_name="draw",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "round",
|
|
"verbose_name_plural": "rounds",
|
|
"ordering": ("draw__tournament__name", "number"),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name="TeamDraw",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.AutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
(
|
|
"passage_index",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)],
|
|
default=None,
|
|
help_text="The passage order in the pool, between 0 and the size of the pool minus 1.",
|
|
null=True,
|
|
validators=[
|
|
django.core.validators.MinValueValidator(0),
|
|
django.core.validators.MaxValueValidator(4),
|
|
],
|
|
verbose_name="passage index",
|
|
),
|
|
),
|
|
(
|
|
"choose_index",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)],
|
|
default=None,
|
|
help_text="The choice order in the pool, between 0 and the size of the pool minus 1.",
|
|
null=True,
|
|
validators=[
|
|
django.core.validators.MinValueValidator(0),
|
|
django.core.validators.MaxValueValidator(4),
|
|
],
|
|
verbose_name="choose index",
|
|
),
|
|
),
|
|
(
|
|
"accepted",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[
|
|
(1, "Problem #1"),
|
|
(2, "Problem #2"),
|
|
(3, "Problem #3"),
|
|
(4, "Problem #4"),
|
|
(5, "Problem #5"),
|
|
(6, "Problem #6"),
|
|
(7, "Problem #7"),
|
|
(8, "Problem #8"),
|
|
],
|
|
default=None,
|
|
null=True,
|
|
verbose_name="accepted problem",
|
|
),
|
|
),
|
|
(
|
|
"passage_dice",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[
|
|
(1, 1),
|
|
(2, 2),
|
|
(3, 3),
|
|
(4, 4),
|
|
(5, 5),
|
|
(6, 6),
|
|
(7, 7),
|
|
(8, 8),
|
|
(9, 9),
|
|
(10, 10),
|
|
(11, 11),
|
|
(12, 12),
|
|
(13, 13),
|
|
(14, 14),
|
|
(15, 15),
|
|
(16, 16),
|
|
(17, 17),
|
|
(18, 18),
|
|
(19, 19),
|
|
(20, 20),
|
|
(21, 21),
|
|
(22, 22),
|
|
(23, 23),
|
|
(24, 24),
|
|
(25, 25),
|
|
(26, 26),
|
|
(27, 27),
|
|
(28, 28),
|
|
(29, 29),
|
|
(30, 30),
|
|
(31, 31),
|
|
(32, 32),
|
|
(33, 33),
|
|
(34, 34),
|
|
(35, 35),
|
|
(36, 36),
|
|
(37, 37),
|
|
(38, 38),
|
|
(39, 39),
|
|
(40, 40),
|
|
(41, 41),
|
|
(42, 42),
|
|
(43, 43),
|
|
(44, 44),
|
|
(45, 45),
|
|
(46, 46),
|
|
(47, 47),
|
|
(48, 48),
|
|
(49, 49),
|
|
(50, 50),
|
|
(51, 51),
|
|
(52, 52),
|
|
(53, 53),
|
|
(54, 54),
|
|
(55, 55),
|
|
(56, 56),
|
|
(57, 57),
|
|
(58, 58),
|
|
(59, 59),
|
|
(60, 60),
|
|
(61, 61),
|
|
(62, 62),
|
|
(63, 63),
|
|
(64, 64),
|
|
(65, 65),
|
|
(66, 66),
|
|
(67, 67),
|
|
(68, 68),
|
|
(69, 69),
|
|
(70, 70),
|
|
(71, 71),
|
|
(72, 72),
|
|
(73, 73),
|
|
(74, 74),
|
|
(75, 75),
|
|
(76, 76),
|
|
(77, 77),
|
|
(78, 78),
|
|
(79, 79),
|
|
(80, 80),
|
|
(81, 81),
|
|
(82, 82),
|
|
(83, 83),
|
|
(84, 84),
|
|
(85, 85),
|
|
(86, 86),
|
|
(87, 87),
|
|
(88, 88),
|
|
(89, 89),
|
|
(90, 90),
|
|
(91, 91),
|
|
(92, 92),
|
|
(93, 93),
|
|
(94, 94),
|
|
(95, 95),
|
|
(96, 96),
|
|
(97, 97),
|
|
(98, 98),
|
|
(99, 99),
|
|
(100, 100),
|
|
],
|
|
default=None,
|
|
null=True,
|
|
verbose_name="passage dice",
|
|
),
|
|
),
|
|
(
|
|
"choice_dice",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[
|
|
(1, 1),
|
|
(2, 2),
|
|
(3, 3),
|
|
(4, 4),
|
|
(5, 5),
|
|
(6, 6),
|
|
(7, 7),
|
|
(8, 8),
|
|
(9, 9),
|
|
(10, 10),
|
|
(11, 11),
|
|
(12, 12),
|
|
(13, 13),
|
|
(14, 14),
|
|
(15, 15),
|
|
(16, 16),
|
|
(17, 17),
|
|
(18, 18),
|
|
(19, 19),
|
|
(20, 20),
|
|
(21, 21),
|
|
(22, 22),
|
|
(23, 23),
|
|
(24, 24),
|
|
(25, 25),
|
|
(26, 26),
|
|
(27, 27),
|
|
(28, 28),
|
|
(29, 29),
|
|
(30, 30),
|
|
(31, 31),
|
|
(32, 32),
|
|
(33, 33),
|
|
(34, 34),
|
|
(35, 35),
|
|
(36, 36),
|
|
(37, 37),
|
|
(38, 38),
|
|
(39, 39),
|
|
(40, 40),
|
|
(41, 41),
|
|
(42, 42),
|
|
(43, 43),
|
|
(44, 44),
|
|
(45, 45),
|
|
(46, 46),
|
|
(47, 47),
|
|
(48, 48),
|
|
(49, 49),
|
|
(50, 50),
|
|
(51, 51),
|
|
(52, 52),
|
|
(53, 53),
|
|
(54, 54),
|
|
(55, 55),
|
|
(56, 56),
|
|
(57, 57),
|
|
(58, 58),
|
|
(59, 59),
|
|
(60, 60),
|
|
(61, 61),
|
|
(62, 62),
|
|
(63, 63),
|
|
(64, 64),
|
|
(65, 65),
|
|
(66, 66),
|
|
(67, 67),
|
|
(68, 68),
|
|
(69, 69),
|
|
(70, 70),
|
|
(71, 71),
|
|
(72, 72),
|
|
(73, 73),
|
|
(74, 74),
|
|
(75, 75),
|
|
(76, 76),
|
|
(77, 77),
|
|
(78, 78),
|
|
(79, 79),
|
|
(80, 80),
|
|
(81, 81),
|
|
(82, 82),
|
|
(83, 83),
|
|
(84, 84),
|
|
(85, 85),
|
|
(86, 86),
|
|
(87, 87),
|
|
(88, 88),
|
|
(89, 89),
|
|
(90, 90),
|
|
(91, 91),
|
|
(92, 92),
|
|
(93, 93),
|
|
(94, 94),
|
|
(95, 95),
|
|
(96, 96),
|
|
(97, 97),
|
|
(98, 98),
|
|
(99, 99),
|
|
(100, 100),
|
|
],
|
|
default=None,
|
|
null=True,
|
|
verbose_name="choice dice",
|
|
),
|
|
),
|
|
(
|
|
"purposed",
|
|
models.PositiveSmallIntegerField(
|
|
choices=[
|
|
(1, "Problem #1"),
|
|
(2, "Problem #2"),
|
|
(3, "Problem #3"),
|
|
(4, "Problem #4"),
|
|
(5, "Problem #5"),
|
|
(6, "Problem #6"),
|
|
(7, "Problem #7"),
|
|
(8, "Problem #8"),
|
|
],
|
|
default=None,
|
|
null=True,
|
|
verbose_name="accepted problem",
|
|
),
|
|
),
|
|
(
|
|
"rejected",
|
|
models.JSONField(default=list, verbose_name="rejected problems"),
|
|
),
|
|
(
|
|
"participation",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
to="participation.participation",
|
|
verbose_name="participation",
|
|
),
|
|
),
|
|
(
|
|
"pool",
|
|
models.ForeignKey(
|
|
default=None,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
to="draw.pool",
|
|
verbose_name="pool",
|
|
),
|
|
),
|
|
(
|
|
"round",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
to="draw.round",
|
|
verbose_name="round",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "team draw",
|
|
"verbose_name_plural": "team draws",
|
|
"ordering": (
|
|
"round__draw__tournament__name",
|
|
"round__number",
|
|
"pool__letter",
|
|
"passage_index",
|
|
),
|
|
},
|
|
),
|
|
migrations.AddField(
|
|
model_name="pool",
|
|
name="current_team",
|
|
field=models.ForeignKey(
|
|
default=None,
|
|
help_text="The current team that is selecting its problem.",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="+",
|
|
to="draw.teamdraw",
|
|
verbose_name="current team",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="pool",
|
|
name="round",
|
|
field=models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE, to="draw.round"
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="draw",
|
|
name="current_round",
|
|
field=models.ForeignKey(
|
|
default=None,
|
|
help_text="The current round where teams select their problems.",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="+",
|
|
to="draw.round",
|
|
verbose_name="current round",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="draw",
|
|
name="tournament",
|
|
field=models.OneToOneField(
|
|
help_text="The associated tournament.",
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
to="participation.tournament",
|
|
verbose_name="tournament",
|
|
),
|
|
),
|
|
]
|