mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-10-31 22:24:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			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",
 | |
|             ),
 | |
|         ),
 | |
|     ]
 |