Indicate if this is a final solution

This commit is contained in:
Yohann D'ANELLO 2021-04-29 15:46:38 +02:00
parent 9e885153c2
commit afde1d35d5
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
2 changed files with 223 additions and 53 deletions

View File

@ -560,13 +560,14 @@ class Solution(models.Model):
def __str__(self): def __str__(self):
return _("Solution of team {team} for problem {problem}")\ return _("Solution of team {team} for problem {problem}")\
.format(team=self.participation.team.name, problem=self.problem) .format(team=self.participation.team.name, problem=self.problem)\
+ (" " + _("for final") if self.final_solution else "")
class Meta: class Meta:
verbose_name = _("solution") verbose_name = _("solution")
verbose_name_plural = _("solutions") verbose_name_plural = _("solutions")
unique_together = (('participation', 'problem', 'final_solution', ), ) unique_together = (('participation', 'problem', 'final_solution', ), )
ordering = ('participation__team__trigram', 'problem',) ordering = ('participation__team__trigram', 'final_solution', 'problem',)
class Synthesis(models.Model): class Synthesis(models.Model):

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: 2021-04-10 10:02+0200\n" "POT-Creation-Date: 2021-04-29 15:45+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n" "Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -287,7 +287,7 @@ msgid "Participation of the team {name} ({trigram})"
msgstr "Participation de l'équipe {name} ({trigram})" msgstr "Participation de l'équipe {name} ({trigram})"
#: apps/participation/models.py:331 apps/participation/models.py:537 #: apps/participation/models.py:331 apps/participation/models.py:537
#: apps/participation/models.py:575 #: apps/participation/models.py:577
msgid "participation" msgid "participation"
msgstr "participation" msgstr "participation"
@ -359,11 +359,11 @@ msgstr "Problème n°{problem}"
msgid "defender" msgid "defender"
msgstr "défenseur" msgstr "défenseur"
#: apps/participation/models.py:431 apps/participation/models.py:587 #: apps/participation/models.py:431 apps/participation/models.py:589
msgid "opponent" msgid "opponent"
msgstr "opposant" msgstr "opposant"
#: apps/participation/models.py:438 apps/participation/models.py:588 #: apps/participation/models.py:438 apps/participation/models.py:590
msgid "reporter" msgid "reporter"
msgstr "rapporteur" msgstr "rapporteur"
@ -390,8 +390,8 @@ msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
msgid "Passage of {defender} for problem {problem}" msgid "Passage of {defender} for problem {problem}"
msgstr "Passage de {defender} pour le problème {problem}" msgstr "Passage de {defender} pour le problème {problem}"
#: apps/participation/models.py:520 apps/participation/models.py:582 #: apps/participation/models.py:520 apps/participation/models.py:584
#: apps/participation/models.py:625 #: apps/participation/models.py:628
msgid "passage" msgid "passage"
msgstr "passage" msgstr "passage"
@ -407,7 +407,7 @@ msgstr "numéro de problème"
msgid "solution for the final tournament" msgid "solution for the final tournament"
msgstr "solution pour la finale" msgstr "solution pour la finale"
#: apps/participation/models.py:554 apps/participation/models.py:593 #: apps/participation/models.py:554 apps/participation/models.py:595
msgid "file" msgid "file"
msgstr "fichier" msgstr "fichier"
@ -416,67 +416,71 @@ msgstr "fichier"
msgid "Solution of team {team} for problem {problem}" msgid "Solution of team {team} for problem {problem}"
msgstr "Solution de l'équipe {team} pour le problème {problem}" msgstr "Solution de l'équipe {team} pour le problème {problem}"
#: apps/participation/models.py:566 #: apps/participation/models.py:564
msgid "for final"
msgstr "pour la finale"
#: apps/participation/models.py:567
msgid "solution" msgid "solution"
msgstr "solution" msgstr "solution"
#: apps/participation/models.py:567 #: apps/participation/models.py:568
msgid "solutions" msgid "solutions"
msgstr "solutions" msgstr "solutions"
#: apps/participation/models.py:601 #: apps/participation/models.py:603
#, python-brace-format #, python-brace-format
msgid "Synthesis of {team} as {type} for problem {problem} of {defender}" msgid "Synthesis of {team} as {type} for problem {problem} of {defender}"
msgstr "" msgstr ""
"Note de synthèse de l'équipe {team} en tant que {type} pour le problème " "Note de synthèse de l'équipe {team} en tant que {type} pour le problème "
"{problem} de {defender}" "{problem} de {defender}"
#: apps/participation/models.py:609 #: apps/participation/models.py:611
msgid "synthesis" msgid "synthesis"
msgstr "note de synthèse" msgstr "note de synthèse"
#: apps/participation/models.py:610 #: apps/participation/models.py:612
msgid "syntheses" msgid "syntheses"
msgstr "notes de synthèse" msgstr "notes de synthèse"
#: apps/participation/models.py:618 #: apps/participation/models.py:621
msgid "jury" msgid "jury"
msgstr "jury" msgstr "jury"
#: apps/participation/models.py:630 #: apps/participation/models.py:633
msgid "defender writing note" msgid "defender writing note"
msgstr "note d'écrit du défenseur" msgstr "note d'écrit du défenseur"
#: apps/participation/models.py:636 #: apps/participation/models.py:639
msgid "defender oral note" msgid "defender oral note"
msgstr "note d'oral du défenseur" msgstr "note d'oral du défenseur"
#: apps/participation/models.py:642 #: apps/participation/models.py:645
msgid "opponent writing note" msgid "opponent writing note"
msgstr "note d'écrit de l'opposant" msgstr "note d'écrit de l'opposant"
#: apps/participation/models.py:648 #: apps/participation/models.py:651
msgid "opponent oral note" msgid "opponent oral note"
msgstr "note d'oral de l'opposant" msgstr "note d'oral de l'opposant"
#: apps/participation/models.py:654 #: apps/participation/models.py:657
msgid "reporter writing note" msgid "reporter writing note"
msgstr "not d'écrit du rapporteur" msgstr "not d'écrit du rapporteur"
#: apps/participation/models.py:660 #: apps/participation/models.py:663
msgid "reporter oral note" msgid "reporter oral note"
msgstr "note d'oral du rapporteur" msgstr "note d'oral du rapporteur"
#: apps/participation/models.py:669 #: apps/participation/models.py:672
#, python-brace-format #, python-brace-format
msgid "Notes of {jury} for {passage}" msgid "Notes of {jury} for {passage}"
msgstr "Notes de {jury} pour le {passage}" msgstr "Notes de {jury} pour le {passage}"
#: apps/participation/models.py:676 #: apps/participation/models.py:679
msgid "note" msgid "note"
msgstr "note" msgstr "note"
#: apps/participation/models.py:677 #: apps/participation/models.py:680
msgid "notes" msgid "notes"
msgstr "notes" msgstr "notes"
@ -541,12 +545,12 @@ msgstr ""
#: apps/participation/templates/participation/create_team.html:11 #: apps/participation/templates/participation/create_team.html:11
#: apps/participation/templates/participation/tournament_form.html:14 #: apps/participation/templates/participation/tournament_form.html:14
#: tfjm/templates/base.html:234 #: tfjm/templates/base.html:231
msgid "Create" msgid "Create"
msgstr "Créer" msgstr "Créer"
#: apps/participation/templates/participation/join_team.html:11 #: apps/participation/templates/participation/join_team.html:11
#: tfjm/templates/base.html:229 #: tfjm/templates/base.html:226
msgid "Join" msgid "Join"
msgstr "Rejoindre" msgstr "Rejoindre"
@ -908,7 +912,7 @@ msgid "Are you sure that you want to leave this team?"
msgstr "Êtes-vous sûr·e de vouloir quitter cette équipe ?" msgstr "Êtes-vous sûr·e de vouloir quitter cette équipe ?"
#: apps/participation/templates/participation/team_list.html:6 #: apps/participation/templates/participation/team_list.html:6
#: tfjm/templates/base.html:222 #: tfjm/templates/base.html:219
msgid "All teams" msgid "All teams"
msgstr "Toutes les équipes" msgstr "Toutes les équipes"
@ -974,7 +978,7 @@ msgid "Edit tournament"
msgstr "Modifier le tournoi" msgstr "Modifier le tournoi"
#: apps/participation/templates/participation/tournament_detail.html:71 #: apps/participation/templates/participation/tournament_detail.html:71
#: tfjm/templates/base.html:68 #: tfjm/templates/base.html:65
msgid "Teams" msgid "Teams"
msgstr "Équipes" msgstr "Équipes"
@ -991,7 +995,7 @@ msgid "Add pool"
msgstr "Ajouter une poule" msgstr "Ajouter une poule"
#: apps/participation/templates/participation/tournament_list.html:6 #: apps/participation/templates/participation/tournament_list.html:6
#: tfjm/templates/base.html:218 #: tfjm/templates/base.html:215
msgid "All tournaments" msgid "All tournaments"
msgstr "Tous les tournois" msgstr "Tous les tournois"
@ -1007,8 +1011,8 @@ msgstr "Retour aux détails de l'utilisateur"
msgid "Templates:" msgid "Templates:"
msgstr "Modèles :" msgstr "Modèles :"
#: apps/participation/views.py:43 tfjm/templates/base.html:74 #: apps/participation/views.py:43 tfjm/templates/base.html:71
#: tfjm/templates/base.html:233 #: tfjm/templates/base.html:230
msgid "Create team" msgid "Create team"
msgstr "Créer une équipe" msgstr "Créer une équipe"
@ -1020,8 +1024,8 @@ msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe."
msgid "You are already in a team." msgid "You are already in a team."
msgstr "Vous êtes déjà dans une équipe." msgstr "Vous êtes déjà dans une équipe."
#: apps/participation/views.py:88 tfjm/templates/base.html:79 #: apps/participation/views.py:88 tfjm/templates/base.html:76
#: tfjm/templates/base.html:228 #: tfjm/templates/base.html:225
msgid "Join team" msgid "Join team"
msgstr "Rejoindre une équipe" msgstr "Rejoindre une équipe"
@ -1113,11 +1117,11 @@ msgstr "L'équipe n'est pas encore validée."
msgid "Participation of team {trigram}" msgid "Participation of team {trigram}"
msgstr "Participation de l'équipe {trigram}" msgstr "Participation de l'équipe {trigram}"
#: apps/participation/views.py:579 #: apps/participation/views.py:580
msgid "You can't upload a solution after the deadline." msgid "You can't upload a solution after the deadline."
msgstr "Vous ne pouvez pas envoyer de solution après la date limite." msgstr "Vous ne pouvez pas envoyer de solution après la date limite."
#: apps/participation/views.py:765 #: apps/participation/views.py:766
msgid "You can't upload a synthesis after the deadline." msgid "You can't upload a synthesis after the deadline."
msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite." msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite."
@ -1449,8 +1453,8 @@ msgid "Your password has been set. You may go ahead and log in now."
msgstr "Votre mot de passe a été changé. Vous pouvez désormais vous connecter." msgstr "Votre mot de passe a été changé. Vous pouvez désormais vous connecter."
#: apps/registration/templates/registration/password_reset_complete.html:10 #: apps/registration/templates/registration/password_reset_complete.html:10
#: tfjm/templates/base.html:127 tfjm/templates/base.html:238 #: tfjm/templates/base.html:124 tfjm/templates/base.html:235
#: tfjm/templates/base.html:239 tfjm/templates/registration/login.html:7 #: tfjm/templates/base.html:236 tfjm/templates/registration/login.html:7
#: tfjm/templates/registration/login.html:8 #: tfjm/templates/registration/login.html:8
#: tfjm/templates/registration/login.html:25 #: tfjm/templates/registration/login.html:25
msgid "Log in" msgid "Log in"
@ -1830,55 +1834,55 @@ msgstr ""
"avec les détails de l'erreur. Vous pouvez désormais retourner chercher " "avec les détails de l'erreur. Vous pouvez désormais retourner chercher "
"d'autres solutions.." "d'autres solutions.."
#: tfjm/templates/base.html:56 #: tfjm/templates/base.html:53
msgid "Home" msgid "Home"
msgstr "Accueil" msgstr "Accueil"
#: tfjm/templates/base.html:60 #: tfjm/templates/base.html:57
msgid "Tournaments" msgid "Tournaments"
msgstr "Tournois" msgstr "Tournois"
#: tfjm/templates/base.html:65 #: tfjm/templates/base.html:62
msgid "Users" msgid "Users"
msgstr "Utilisateurs" msgstr "Utilisateurs"
#: tfjm/templates/base.html:85 #: tfjm/templates/base.html:82
msgid "My team" msgid "My team"
msgstr "Mon équipe" msgstr "Mon équipe"
#: tfjm/templates/base.html:90 #: tfjm/templates/base.html:87
msgid "My participation" msgid "My participation"
msgstr "Ma participation" msgstr "Ma participation"
#: tfjm/templates/base.html:97 #: tfjm/templates/base.html:94
msgid "Chat" msgid "Chat"
msgstr "Chat" msgstr "Chat"
#: tfjm/templates/base.html:101 #: tfjm/templates/base.html:98
msgid "Administration" msgid "Administration"
msgstr "Administration" msgstr "Administration"
#: tfjm/templates/base.html:109 #: tfjm/templates/base.html:106
msgid "Search..." msgid "Search..."
msgstr "Chercher ..." msgstr "Chercher ..."
#: tfjm/templates/base.html:118 #: tfjm/templates/base.html:115
msgid "Return to admin view" msgid "Return to admin view"
msgstr "Retourner à l'interface administrateur" msgstr "Retourner à l'interface administrateur"
#: tfjm/templates/base.html:123 #: tfjm/templates/base.html:120
msgid "Register" msgid "Register"
msgstr "S'inscrire" msgstr "S'inscrire"
#: tfjm/templates/base.html:139 #: tfjm/templates/base.html:136
msgid "My account" msgid "My account"
msgstr "Mon compte" msgstr "Mon compte"
#: tfjm/templates/base.html:142 #: tfjm/templates/base.html:139
msgid "Log out" msgid "Log out"
msgstr "Déconnexion" msgstr "Déconnexion"
#: tfjm/templates/base.html:159 #: tfjm/templates/base.html:156
#, python-format #, python-format
msgid "" msgid ""
"Your email address is not validated. Please click on the link you received " "Your email address is not validated. Please click on the link you received "
@ -1889,15 +1893,15 @@ msgstr ""
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a href=" "avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a href="
"\"%(send_email_url)s\">ce lien</a>." "\"%(send_email_url)s\">ce lien</a>."
#: tfjm/templates/base.html:183 #: tfjm/templates/base.html:180
msgid "Contact us" msgid "Contact us"
msgstr "Nous contacter" msgstr "Nous contacter"
#: tfjm/templates/base.html:202 #: tfjm/templates/base.html:199
msgid "About" msgid "About"
msgstr "À propos" msgstr "À propos"
#: tfjm/templates/base.html:225 #: tfjm/templates/base.html:222
msgid "Search results" msgid "Search results"
msgstr "Résultats de la recherche" msgstr "Résultats de la recherche"
@ -1933,3 +1937,168 @@ msgstr "Résultats"
#: tfjm/templates/search/search.html:25 #: tfjm/templates/search/search.html:25
msgid "No results found." msgid "No results found."
msgstr "Aucun résultat." msgstr "Aucun résultat."
#, fuzzy
#~| msgid "This name is already used."
#~ msgid "This field is required."
#~ msgstr "Ce nom est déjà utilisé."
#, fuzzy
#~| msgid "passages"
#~ msgid "Messages"
#~ msgstr "passages"
#, fuzzy
#~| msgid "responsible email address"
#~ msgid "Enter a valid email address."
#~ msgstr "adresse e-mail du responsable légal"
#, fuzzy
#~| msgid "phone number"
#~ msgid "Enter a number."
#~ msgstr "numéro de téléphone"
#, fuzzy
#~| msgid "end"
#~ msgid "and"
#~ msgstr "fin"
#, fuzzy
#~| msgid "phone number"
#~ msgid "Decimal number"
#~ msgstr "numéro de téléphone"
#, fuzzy
#~| msgid "action"
#~ msgid "Duration"
#~ msgstr "action"
#, fuzzy
#~| msgid "address"
#~ msgid "Email address"
#~ msgstr "adresse"
#, fuzzy
#~| msgid "phone number"
#~ msgid "Floating point number"
#~ msgstr "numéro de téléphone"
#, fuzzy
#~| msgid "IP Address"
#~ msgid "IPv4 address"
#~ msgstr "Adresse IP"
#, fuzzy
#~| msgid "IP Address"
#~ msgid "IP address"
#~ msgstr "Adresse IP"
#, fuzzy
#~| msgid "phone number"
#~ msgid "Enter a whole number."
#~ msgstr "numéro de téléphone"
#, fuzzy
#~| msgid "Not validated"
#~ msgid "Enter a valid date."
#~ msgstr "Non validée"
#, fuzzy
#~| msgid "Email validation"
#~ msgid "Enter a valid duration."
#~ msgstr "Validation de l'adresse mail"
#, fuzzy
#~| msgid "delete"
#~ msgid "Delete"
#~ msgstr "supprimer"
#, fuzzy
#~| msgid "changelog"
#~ msgid "Change"
#~ msgstr "changelog"
#, fuzzy
#~| msgid "yes,no,pending"
#~ msgid "yes,no,maybe"
#~ msgstr "oui,non,en attente"
#, fuzzy
#~| msgid "end"
#~ msgid "Wed"
#~ msgstr "fin"
#, fuzzy
#~| msgid "Search"
#~ msgid "March"
#~ msgstr "Chercher"
#, fuzzy
#~| msgid "any"
#~ msgid "May"
#~ msgstr "aucun·e"
#, fuzzy
#~| msgid "phone number"
#~ msgid "November"
#~ msgstr "numéro de téléphone"
#, fuzzy
#~| msgid "any"
#~ msgid "jan"
#~ msgstr "aucun·e"
#, fuzzy
#~| msgid "any"
#~ msgid "may"
#~ msgstr "aucun·e"
#, fuzzy
#~| msgid "Search"
#~ msgctxt "abbrev. month"
#~ msgid "March"
#~ msgstr "Chercher"
#, fuzzy
#~| msgid "any"
#~ msgctxt "abbrev. month"
#~ msgid "May"
#~ msgstr "aucun·e"
#, fuzzy
#~| msgid "Search"
#~ msgctxt "alt. month"
#~ msgid "March"
#~ msgstr "Chercher"
#, fuzzy
#~| msgid "any"
#~ msgctxt "alt. month"
#~ msgid "May"
#~ msgstr "aucun·e"
#, fuzzy
#~| msgid "phone number"
#~ msgctxt "alt. month"
#~ msgid "November"
#~ msgstr "numéro de téléphone"
#, fuzzy
#~| msgid "The team is not validated yet."
#~ msgid "This is not a valid IPv6 address."
#~ msgstr "L'équipe n'est pas encore validée."
#, fuzzy
#~| msgid "Search"
#~ msgid "Search In"
#~ msgstr "Chercher"
#, fuzzy
#~| msgid "Search results"
#~ msgid "Search Queries"
#~ msgstr "Résultats de la recherche"
#, fuzzy
#~| msgid "Contact us"
#~ msgid "Contents"
#~ msgstr "Nous contacter"