diff --git a/draw/migrations/0001_initial.py b/draw/migrations/0001_initial.py index 288ee16..301a64d 100644 --- a/draw/migrations/0001_initial.py +++ b/draw/migrations/0001_initial.py @@ -1,5 +1,6 @@ -# Generated by Django 4.1.7 on 2023-03-22 15:27 +# 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 @@ -8,7 +9,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("participation", "0003_alter_team_trigram"), + ("participation", "0005_alter_team_options"), ] operations = [ @@ -24,6 +25,15 @@ class Migration(migrations.Migration): 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", @@ -44,16 +54,95 @@ class Migration(migrations.Migration): ), ( "letter", - models.CharField( - choices=[("A", "A"), ("B", "B"), ("C", "C")], - max_length=1, + 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( @@ -69,15 +158,36 @@ class Migration(migrations.Migration): ), ), ( - "index", + "passage_index", models.PositiveSmallIntegerField( - choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)], - verbose_name="index", + 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.IntegerField( + models.PositiveSmallIntegerField( choices=[ (1, "Problem #1"), (2, "Problem #2"), @@ -94,8 +204,8 @@ class Migration(migrations.Migration): ), ), ( - "last_dice", - models.IntegerField( + "passage_dice", + models.PositiveSmallIntegerField( choices=[ (1, 1), (2, 2), @@ -198,12 +308,124 @@ class Migration(migrations.Migration): (99, 99), (100, 100), ], - verbose_name="last dice", + 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.IntegerField( + models.PositiveSmallIntegerField( choices=[ (1, "Problem #1"), (2, "Problem #2"), @@ -234,58 +456,31 @@ class Migration(migrations.Migration): ( "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", - }, - ), - migrations.CreateModel( - name="Round", - fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), + "ordering": ( + "round__draw__tournament__name", + "round__number", + "pool__letter", + "passage_index", ), - ( - "number", - models.IntegerField( - choices=[(1, "Round 1"), (2, "Round 2")], verbose_name="number" - ), - ), - ( - "current_pool", - models.ForeignKey( - default=None, - 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", }, ), migrations.AddField( @@ -293,6 +488,7 @@ class Migration(migrations.Migration): 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="+", @@ -312,6 +508,7 @@ class Migration(migrations.Migration): 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="+", @@ -323,6 +520,7 @@ class Migration(migrations.Migration): 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", diff --git a/draw/migrations/0002_pool_size_alter_pool_letter_alter_round_number_and_more.py b/draw/migrations/0002_pool_size_alter_pool_letter_alter_round_number_and_more.py deleted file mode 100644 index 898455b..0000000 --- a/draw/migrations/0002_pool_size_alter_pool_letter_alter_round_number_and_more.py +++ /dev/null @@ -1,203 +0,0 @@ -# Generated by Django 4.1.7 on 2023-03-22 19:30 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - dependencies = [ - ("draw", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="pool", - name="size", - field=models.PositiveSmallIntegerField(default=3, verbose_name="size"), - preserve_default=False, - ), - migrations.AlterField( - model_name="pool", - name="letter", - field=models.PositiveSmallIntegerField( - choices=[(1, "A"), (2, "B"), (3, "C")], verbose_name="letter" - ), - ), - migrations.AlterField( - model_name="round", - name="number", - field=models.PositiveSmallIntegerField( - choices=[(1, "Round 1"), (2, "Round 2")], verbose_name="number" - ), - ), - migrations.AlterField( - model_name="teamdraw", - name="accepted", - field=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", - ), - ), - migrations.AlterField( - model_name="teamdraw", - name="index", - field=models.PositiveSmallIntegerField( - choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)], - default=None, - null=True, - verbose_name="index", - ), - ), - migrations.AlterField( - model_name="teamdraw", - name="last_dice", - field=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="last dice", - ), - ), - migrations.AlterField( - model_name="teamdraw", - name="pool", - field=models.ForeignKey( - default=None, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="draw.pool", - verbose_name="pool", - ), - ), - migrations.AlterField( - model_name="teamdraw", - name="purposed", - field=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", - ), - ), - ] diff --git a/draw/migrations/0003_teamdraw_round.py b/draw/migrations/0003_teamdraw_round.py deleted file mode 100644 index a34aed1..0000000 --- a/draw/migrations/0003_teamdraw_round.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 4.1.7 on 2023-03-22 21:39 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - dependencies = [ - ("draw", "0002_pool_size_alter_pool_letter_alter_round_number_and_more"), - ] - - operations = [ - migrations.AddField( - model_name="teamdraw", - name="round", - field=models.ForeignKey( - default=1, - on_delete=django.db.models.deletion.CASCADE, - to="draw.round", - verbose_name="round", - ), - preserve_default=False, - ), - ] diff --git a/draw/migrations/0004_remove_teamdraw_index_teamdraw_choose_index_and_more.py b/draw/migrations/0004_remove_teamdraw_index_teamdraw_choose_index_and_more.py deleted file mode 100644 index af904c3..0000000 --- a/draw/migrations/0004_remove_teamdraw_index_teamdraw_choose_index_and_more.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 4.1.7 on 2023-03-22 23:36 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("draw", "0003_teamdraw_round"), - ] - - operations = [ - migrations.RemoveField( - model_name="teamdraw", - name="index", - ), - migrations.AddField( - model_name="teamdraw", - name="choose_index", - field=models.PositiveSmallIntegerField( - choices=[(1, 1), (2, 2), (3, 3), (4, 4)], - default=None, - null=True, - verbose_name="choose index", - ), - ), - migrations.AddField( - model_name="teamdraw", - name="passage_index", - field=models.PositiveSmallIntegerField( - choices=[(1, 1), (2, 2), (3, 3), (4, 4)], - default=None, - null=True, - verbose_name="passage index", - ), - ), - ] diff --git a/draw/migrations/0005_draw_last_message.py b/draw/migrations/0005_draw_last_message.py deleted file mode 100644 index b559164..0000000 --- a/draw/migrations/0005_draw_last_message.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 4.1.7 on 2023-03-24 10:46 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("draw", "0004_remove_teamdraw_index_teamdraw_choose_index_and_more"), - ] - - operations = [ - migrations.AddField( - model_name="draw", - name="last_message", - field=models.TextField(blank=True, default="", verbose_name="last message"), - ), - ] diff --git a/draw/migrations/0006_pool_associated_pool.py b/draw/migrations/0006_pool_associated_pool.py deleted file mode 100644 index 9525bfa..0000000 --- a/draw/migrations/0006_pool_associated_pool.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 4.1.7 on 2023-03-25 07:22 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - dependencies = [ - ("participation", "0003_alter_team_trigram"), - ("draw", "0005_draw_last_message"), - ] - - operations = [ - migrations.AddField( - model_name="pool", - name="associated_pool", - field=models.OneToOneField( - default=None, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="draw_pool", - to="participation.pool", - verbose_name="associated pool", - ), - ), - ] diff --git a/draw/migrations/0007_remove_teamdraw_last_dice_teamdraw_choice_dice_and_more.py b/draw/migrations/0007_remove_teamdraw_last_dice_teamdraw_choice_dice_and_more.py deleted file mode 100644 index 832da99..0000000 --- a/draw/migrations/0007_remove_teamdraw_last_dice_teamdraw_choice_dice_and_more.py +++ /dev/null @@ -1,238 +0,0 @@ -# Generated by Django 4.1.7 on 2023-03-28 19:40 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("draw", "0006_pool_associated_pool"), - ] - - operations = [ - migrations.RemoveField( - model_name="teamdraw", - name="last_dice", - ), - migrations.AddField( - model_name="teamdraw", - name="choice_dice", - field=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", - ), - ), - migrations.AddField( - model_name="teamdraw", - name="passage_dice", - field=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", - ), - ), - ] diff --git a/draw/migrations/0008_alter_pool_letter.py b/draw/migrations/0008_alter_pool_letter.py deleted file mode 100644 index e26dee6..0000000 --- a/draw/migrations/0008_alter_pool_letter.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.1.7 on 2023-03-31 15:17 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("draw", "0007_remove_teamdraw_last_dice_teamdraw_choice_dice_and_more"), - ] - - operations = [ - migrations.AlterField( - model_name="pool", - name="letter", - field=models.PositiveSmallIntegerField( - choices=[(1, "A"), (2, "B"), (3, "C"), (4, "D")], verbose_name="letter" - ), - ), - ] diff --git a/draw/migrations/0009_alter_pool_options_alter_round_options_and_more.py b/draw/migrations/0009_alter_pool_options_alter_round_options_and_more.py deleted file mode 100644 index 05b311c..0000000 --- a/draw/migrations/0009_alter_pool_options_alter_round_options_and_more.py +++ /dev/null @@ -1,65 +0,0 @@ -# Generated by Django 4.1.7 on 2023-04-03 16:10 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("draw", "0008_alter_pool_letter"), - ] - - operations = [ - migrations.AlterModelOptions( - name="pool", - options={ - "ordering": ( - "round__draw__tournament__name", - "round__number", - "letter", - ), - "verbose_name": "pool", - "verbose_name_plural": "pools", - }, - ), - migrations.AlterModelOptions( - name="round", - options={ - "ordering": ("draw__tournament__name", "number"), - "verbose_name": "round", - "verbose_name_plural": "rounds", - }, - ), - migrations.AlterModelOptions( - name="teamdraw", - options={ - "ordering": ( - "round__draw__tournament__name", - "round__number", - "pool__letter", - "passage_index", - ), - "verbose_name": "team draw", - "verbose_name_plural": "team draws", - }, - ), - migrations.AlterField( - model_name="teamdraw", - name="choose_index", - field=models.PositiveSmallIntegerField( - choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)], - default=None, - null=True, - verbose_name="choose index", - ), - ), - migrations.AlterField( - model_name="teamdraw", - name="passage_index", - field=models.PositiveSmallIntegerField( - choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)], - default=None, - null=True, - verbose_name="passage index", - ), - ), - ]