Update database models and translations

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2023-03-22 16:35:59 +01:00
parent 9aa19ad3ca
commit 88823b5252
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
3 changed files with 475 additions and 31 deletions

View File

@ -0,0 +1,331 @@
# Generated by Django 4.1.7 on 2023-03-22 15:27
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
("participation", "0003_alter_team_trigram"),
]
operations = [
migrations.CreateModel(
name="Draw",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
],
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.CharField(
choices=[("A", "A"), ("B", "B"), ("C", "C")],
max_length=1,
verbose_name="letter",
),
),
],
options={
"verbose_name": "pool",
"verbose_name_plural": "pools",
},
),
migrations.CreateModel(
name="TeamDraw",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"index",
models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)],
verbose_name="index",
),
),
(
"accepted",
models.IntegerField(
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",
),
),
(
"last_dice",
models.IntegerField(
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),
],
verbose_name="last dice",
),
),
(
"purposed",
models.IntegerField(
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(
on_delete=django.db.models.deletion.CASCADE,
to="draw.pool",
verbose_name="pool",
),
),
],
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",
),
),
(
"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(
model_name="pool",
name="current_team",
field=models.ForeignKey(
default=None,
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,
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(
on_delete=django.db.models.deletion.CASCADE,
to="participation.tournament",
verbose_name="tournament",
),
),
]

View File

@ -15,6 +15,15 @@ class Draw(models.Model):
verbose_name=_('tournament'), verbose_name=_('tournament'),
) )
current_round = models.ForeignKey(
'Round',
on_delete=models.CASCADE,
null=True,
default=None,
related_name='+',
verbose_name=_('current round'),
)
class Meta: class Meta:
verbose_name = _('draw') verbose_name = _('draw')
verbose_name_plural = _('draws') verbose_name_plural = _('draws')
@ -35,6 +44,15 @@ class Round(models.Model):
verbose_name=_('number'), verbose_name=_('number'),
) )
current_pool = models.ForeignKey(
'Pool',
on_delete=models.CASCADE,
null=True,
default=None,
related_name='+',
verbose_name=_('current pool'),
)
def __str__(self): def __str__(self):
return self.get_number_display() return self.get_number_display()
@ -59,6 +77,15 @@ class Pool(models.Model):
verbose_name=_('letter'), verbose_name=_('letter'),
) )
current_team = models.ForeignKey(
'TeamDraw',
on_delete=models.CASCADE,
null=True,
default=None,
related_name='+',
verbose_name=_('current team'),
)
def __str__(self): def __str__(self):
return f"{self.letter}{self.round}" return f"{self.letter}{self.round}"
@ -74,6 +101,17 @@ class TeamDraw(models.Model):
verbose_name=_('participation'), verbose_name=_('participation'),
) )
pool = models.ForeignKey(
Pool,
on_delete=models.CASCADE,
verbose_name=_('pool'),
)
index = models.PositiveSmallIntegerField(
choices=zip(range(1, 6), range(1, 6)),
verbose_name=_('index'),
)
accepted = models.IntegerField( accepted = models.IntegerField(
choices=[ choices=[
(i, format_lazy(_("Problem #{problem}"), problem=i)) for i in range(1, settings.PROBLEM_COUNT + 1) (i, format_lazy(_("Problem #{problem}"), problem=i)) for i in range(1, settings.PROBLEM_COUNT + 1)
@ -83,6 +121,11 @@ class TeamDraw(models.Model):
verbose_name=_("accepted problem"), verbose_name=_("accepted problem"),
) )
last_dice = models.IntegerField(
choices=zip(range(1, 101), range(1, 101)),
verbose_name=_("last dice"),
)
purposed = models.IntegerField( purposed = models.IntegerField(
choices=[ choices=[
(i, format_lazy(_("Problem #{problem}"), problem=i)) for i in range(1, settings.PROBLEM_COUNT + 1) (i, format_lazy(_("Problem #{problem}"), problem=i)) for i in range(1, settings.PROBLEM_COUNT + 1)
@ -93,7 +136,7 @@ class TeamDraw(models.Model):
) )
rejected = models.JSONField( rejected = models.JSONField(
default=[], default=list,
verbose_name=_('rejected problems'), verbose_name=_('rejected problems'),
) )

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: TFJM\n" "Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-22 11:12+0100\n" "POT-Creation-Date: 2023-03-22 16:27+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n" "Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,6 +21,103 @@ msgstr ""
msgid "API" msgid "API"
msgstr "API" msgstr "API"
#: draw/apps.py:10
msgid "Draw"
msgstr "Tirage au sort"
#: draw/models.py:15 participation/models.py:288 participation/models.py:312
#: participation/models.py:344
msgid "tournament"
msgstr "tournoi"
#: draw/models.py:24
msgid "current round"
msgstr "tour actuel"
#: draw/models.py:28 draw/models.py:36
msgid "draw"
msgstr "tirage au sort"
#: draw/models.py:29
msgid "draws"
msgstr "tirages au sort"
#: draw/models.py:41
msgid "Round 1"
msgstr "Tour 1"
#: draw/models.py:42
msgid "Round 2"
msgstr "Tour 2"
#: draw/models.py:44
msgid "number"
msgstr "numéro"
#: draw/models.py:53
msgid "current pool"
msgstr "poule actuelle"
#: draw/models.py:60 participation/models.py:348
msgid "round"
msgstr "tour"
#: draw/models.py:61
msgid "rounds"
msgstr "tours"
#: draw/models.py:77
msgid "letter"
msgstr "lettre"
#: draw/models.py:86
msgid "current team"
msgstr "équipe actuelle"
#: draw/models.py:93 draw/models.py:107 participation/models.py:400
#: participation/models.py:408
msgid "pool"
msgstr "poule"
#: draw/models.py:94 participation/models.py:401
msgid "pools"
msgstr "poules"
#: draw/models.py:101 participation/models.py:335 participation/models.py:532
#: participation/models.py:562 participation/models.py:600
msgid "participation"
msgstr "participation"
#: draw/models.py:112
msgid "index"
msgstr "position"
#: draw/models.py:117 draw/models.py:131 participation/models.py:415
#: participation/models.py:569
#, python-brace-format
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
#: draw/models.py:121 draw/models.py:135
msgid "accepted problem"
msgstr "problème accepté"
#: draw/models.py:126
msgid "last dice"
msgstr "dernier dé"
#: draw/models.py:140
msgid "rejected problems"
msgstr "problèmes rejetés"
#: draw/models.py:144
msgid "team draw"
msgstr "tirage d'équipe"
#: draw/models.py:145
msgid "team draws"
msgstr "tirages d'équipe"
#: logs/apps.py:11 #: logs/apps.py:11
msgid "Logs" msgid "Logs"
msgstr "Logs" msgstr "Logs"
@ -272,11 +369,6 @@ msgstr "organisateur⋅rices"
msgid "final" msgid "final"
msgstr "finale" msgstr "finale"
#: participation/models.py:288 participation/models.py:312
#: participation/models.py:344
msgid "tournament"
msgstr "tournoi"
#: participation/models.py:289 #: participation/models.py:289
msgid "tournaments" msgid "tournaments"
msgstr "tournois" msgstr "tournois"
@ -298,19 +390,10 @@ msgstr "L'équipe est sélectionnée pour la finale."
msgid "Participation of the team {name} ({trigram})" msgid "Participation of the team {name} ({trigram})"
msgstr "Participation de l'équipe {name} ({trigram})" msgstr "Participation de l'équipe {name} ({trigram})"
#: participation/models.py:335 participation/models.py:532
#: participation/models.py:562 participation/models.py:600
msgid "participation"
msgstr "participation"
#: participation/models.py:336 participation/models.py:358 #: participation/models.py:336 participation/models.py:358
msgid "participations" msgid "participations"
msgstr "participations" msgstr "participations"
#: participation/models.py:348
msgid "round"
msgstr "tour"
#: participation/models.py:350 participation/models.py:351 #: participation/models.py:350 participation/models.py:351
#, python-brace-format #, python-brace-format
msgid "Round {round}" msgid "Round {round}"
@ -346,23 +429,10 @@ msgstr ""
msgid "Pool of day {round} for tournament {tournament} with teams {teams}" msgid "Pool of day {round} for tournament {tournament} with teams {teams}"
msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}" msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}"
#: participation/models.py:400 participation/models.py:408
msgid "pool"
msgstr "poule"
#: participation/models.py:401
msgid "pools"
msgstr "poules"
#: participation/models.py:413 #: participation/models.py:413
msgid "defended solution" msgid "defended solution"
msgstr "solution défendue" msgstr "solution défendue"
#: participation/models.py:415 participation/models.py:569
#, python-brace-format
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
#: participation/models.py:422 participation/tables.py:102 #: participation/models.py:422 participation/tables.py:102
msgid "defender" msgid "defender"
msgstr "défenseur" msgstr "défenseur"
@ -1867,11 +1937,11 @@ msgstr "Autorisation parentale de {student}.{ext}"
msgid "Scholarship attestation of {user}.{ext}" msgid "Scholarship attestation of {user}.{ext}"
msgstr "Notification de bourse de {user}.{ext}" msgstr "Notification de bourse de {user}.{ext}"
#: tfjm/settings.py:159 #: tfjm/settings.py:164
msgid "English" msgid "English"
msgstr "Anglais" msgstr "Anglais"
#: tfjm/settings.py:160 #: tfjm/settings.py:165
msgid "French" msgid "French"
msgstr "Français" msgstr "Français"