mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 11:52:20 +01:00 
			
		
		
		
	Support penalties
This commit is contained in:
		@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					# Generated by Django 3.1.7 on 2021-04-03 19:57
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import migrations, models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('participation', '0003_tournament_remote'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AddField(
 | 
				
			||||||
 | 
					            model_name='passage',
 | 
				
			||||||
 | 
					            name='defender_penalties',
 | 
				
			||||||
 | 
					            field=models.PositiveSmallIntegerField(default=0, help_text='Number of penalties for the defender. The defender will loose a 0.5 coefficient per penalty.', verbose_name='penalties'),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -432,6 +432,13 @@ class Passage(models.Model):
 | 
				
			|||||||
        related_name="+",
 | 
					        related_name="+",
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    defender_penalties = models.PositiveSmallIntegerField(
 | 
				
			||||||
 | 
					        verbose_name=_("penalties"),
 | 
				
			||||||
 | 
					        default=0,
 | 
				
			||||||
 | 
					        help_text=_("Number of penalties for the defender. "
 | 
				
			||||||
 | 
					                    "The defender will loose a 0.5 coefficient per penalty."),
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def defended_solution(self) -> "Solution":
 | 
					    def defended_solution(self) -> "Solution":
 | 
				
			||||||
        return Solution.objects.get(
 | 
					        return Solution.objects.get(
 | 
				
			||||||
@@ -439,44 +446,44 @@ class Passage(models.Model):
 | 
				
			|||||||
            problem=self.solution_number,
 | 
					            problem=self.solution_number,
 | 
				
			||||||
            final_solution=self.pool.tournament.final)
 | 
					            final_solution=self.pool.tournament.final)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def avg(self, iterator) -> int:
 | 
					    def avg(self, iterator) -> float:
 | 
				
			||||||
        items = [i for i in iterator if i]
 | 
					        items = [i for i in iterator if i]
 | 
				
			||||||
        return sum(items) / len(items) if items else 0
 | 
					        return sum(items) / len(items) if items else 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_defender_writing(self) -> int:
 | 
					    def average_defender_writing(self) -> float:
 | 
				
			||||||
        return self.avg(note.defender_writing for note in self.notes.all())
 | 
					        return self.avg(note.defender_writing for note in self.notes.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_defender_oral(self) -> int:
 | 
					    def average_defender_oral(self) -> float:
 | 
				
			||||||
        return self.avg(note.defender_oral for note in self.notes.all())
 | 
					        return self.avg(note.defender_oral for note in self.notes.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_defender(self) -> int:
 | 
					    def average_defender(self) -> float:
 | 
				
			||||||
        return self.average_defender_writing + 2 * self.average_defender_oral
 | 
					        return self.average_defender_writing + (2 - 0.5 * self.defender_penalties) * self.average_defender_oral
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_opponent_writing(self) -> int:
 | 
					    def average_opponent_writing(self) -> float:
 | 
				
			||||||
        return self.avg(note.opponent_writing for note in self.notes.all())
 | 
					        return self.avg(note.opponent_writing for note in self.notes.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_opponent_oral(self) -> int:
 | 
					    def average_opponent_oral(self) -> float:
 | 
				
			||||||
        return self.avg(note.opponent_oral for note in self.notes.all())
 | 
					        return self.avg(note.opponent_oral for note in self.notes.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_opponent(self) -> int:
 | 
					    def average_opponent(self) -> float:
 | 
				
			||||||
        return self.average_opponent_writing + 2 * self.average_opponent_oral
 | 
					        return self.average_opponent_writing + 2 * self.average_opponent_oral
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_reporter_writing(self) -> int:
 | 
					    def average_reporter_writing(self) -> float:
 | 
				
			||||||
        return self.avg(note.reporter_writing for note in self.notes.all())
 | 
					        return self.avg(note.reporter_writing for note in self.notes.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_reporter_oral(self) -> int:
 | 
					    def average_reporter_oral(self) -> float:
 | 
				
			||||||
        return self.avg(note.reporter_oral for note in self.notes.all())
 | 
					        return self.avg(note.reporter_oral for note in self.notes.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def average_reporter(self) -> int:
 | 
					    def average_reporter(self) -> float:
 | 
				
			||||||
        return self.average_reporter_writing + self.average_reporter_oral
 | 
					        return self.average_reporter_writing + self.average_reporter_oral
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def average(self, participation):
 | 
					    def average(self, participation):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,9 @@
 | 
				
			|||||||
                <dt class="col-sm-3">{% trans "Place:" %}</dt>
 | 
					                <dt class="col-sm-3">{% trans "Place:" %}</dt>
 | 
				
			||||||
                <dd class="col-sm-9">{{ passage.place }}</dd>
 | 
					                <dd class="col-sm-9">{{ passage.place }}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <dt class="col-sm-3">{% trans "Defender penalties count:" %}</dt>
 | 
				
			||||||
 | 
					                <dd class="col-sm-9">{{ passage.defender_penalties }}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <dt class="col-sm-3">{% trans "Syntheses:" %}</dt>
 | 
					                <dt class="col-sm-3">{% trans "Syntheses:" %}</dt>
 | 
				
			||||||
                <dd class="col-sm-9">
 | 
					                <dd class="col-sm-9">
 | 
				
			||||||
                    {% for synthesis in passage.syntheses.all %}
 | 
					                    {% for synthesis in passage.syntheses.all %}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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-03-15 10:16+0100\n"
 | 
					"POT-Creation-Date: 2021-04-03 21:58+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"
 | 
				
			||||||
@@ -286,8 +286,8 @@ 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})"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:331 apps/participation/models.py:523
 | 
					#: apps/participation/models.py:331 apps/participation/models.py:530
 | 
				
			||||||
#: apps/participation/models.py:561
 | 
					#: apps/participation/models.py:568
 | 
				
			||||||
msgid "participation"
 | 
					msgid "participation"
 | 
				
			||||||
msgstr "participation"
 | 
					msgstr "participation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -337,7 +337,7 @@ msgstr "Où est-ce que les solutions sont défendues ?"
 | 
				
			|||||||
msgid "defended solution"
 | 
					msgid "defended solution"
 | 
				
			||||||
msgstr "solution défendue"
 | 
					msgstr "solution défendue"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:410 apps/participation/models.py:530
 | 
					#: apps/participation/models.py:410 apps/participation/models.py:537
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Problem #{problem}"
 | 
					msgid "Problem #{problem}"
 | 
				
			||||||
msgstr "Problème n°{problem}"
 | 
					msgstr "Problème n°{problem}"
 | 
				
			||||||
@@ -346,110 +346,122 @@ msgstr "Problème n°{problem}"
 | 
				
			|||||||
msgid "defender"
 | 
					msgid "defender"
 | 
				
			||||||
msgstr "défenseur"
 | 
					msgstr "défenseur"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:424 apps/participation/models.py:573
 | 
					#: apps/participation/models.py:424 apps/participation/models.py:580
 | 
				
			||||||
msgid "opponent"
 | 
					msgid "opponent"
 | 
				
			||||||
msgstr "opposant"
 | 
					msgstr "opposant"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:431 apps/participation/models.py:574
 | 
					#: apps/participation/models.py:431 apps/participation/models.py:581
 | 
				
			||||||
msgid "reporter"
 | 
					msgid "reporter"
 | 
				
			||||||
msgstr "rapporteur"
 | 
					msgstr "rapporteur"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:491 apps/participation/models.py:494
 | 
					#: apps/participation/models.py:436
 | 
				
			||||||
#: apps/participation/models.py:497
 | 
					msgid "penalties"
 | 
				
			||||||
 | 
					msgstr "pénalités"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: apps/participation/models.py:438
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"Number of penalties for the defender. The defender will loose a 0.5 "
 | 
				
			||||||
 | 
					"coefficient per penalty."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Nombre de pénalités pour le défenseur. Le défenseur perd un coefficient 0.5 "
 | 
				
			||||||
 | 
					"sur sa solution écrite par pénalité."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: apps/participation/models.py:498 apps/participation/models.py:501
 | 
				
			||||||
 | 
					#: apps/participation/models.py:504
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Team {trigram} is not registered in the pool."
 | 
					msgid "Team {trigram} is not registered in the pool."
 | 
				
			||||||
msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
 | 
					msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:502
 | 
					#: apps/participation/models.py:509
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
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:506 apps/participation/models.py:568
 | 
					#: apps/participation/models.py:513 apps/participation/models.py:575
 | 
				
			||||||
#: apps/participation/models.py:606
 | 
					#: apps/participation/models.py:613
 | 
				
			||||||
msgid "passage"
 | 
					msgid "passage"
 | 
				
			||||||
msgstr "passage"
 | 
					msgstr "passage"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:507
 | 
					#: apps/participation/models.py:514
 | 
				
			||||||
msgid "passages"
 | 
					msgid "passages"
 | 
				
			||||||
msgstr "passages"
 | 
					msgstr "passages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:528
 | 
					#: apps/participation/models.py:535
 | 
				
			||||||
msgid "problem"
 | 
					msgid "problem"
 | 
				
			||||||
msgstr "numéro de problème"
 | 
					msgstr "numéro de problème"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:535
 | 
					#: apps/participation/models.py:542
 | 
				
			||||||
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:540 apps/participation/models.py:579
 | 
					#: apps/participation/models.py:547 apps/participation/models.py:586
 | 
				
			||||||
msgid "file"
 | 
					msgid "file"
 | 
				
			||||||
msgstr "fichier"
 | 
					msgstr "fichier"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:548
 | 
					#: apps/participation/models.py:555
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
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:552
 | 
					#: apps/participation/models.py:559
 | 
				
			||||||
msgid "solution"
 | 
					msgid "solution"
 | 
				
			||||||
msgstr "solution"
 | 
					msgstr "solution"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:553
 | 
					#: apps/participation/models.py:560
 | 
				
			||||||
msgid "solutions"
 | 
					msgid "solutions"
 | 
				
			||||||
msgstr "solutions"
 | 
					msgstr "solutions"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:587
 | 
					#: apps/participation/models.py:594
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Synthesis for the {type} of the {passage}"
 | 
					msgid "Synthesis for the {type} of the {passage}"
 | 
				
			||||||
msgstr "Synthèse pour {type} du {passage}"
 | 
					msgstr "Synthèse pour {type} du {passage}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:590
 | 
					#: apps/participation/models.py:597
 | 
				
			||||||
msgid "synthesis"
 | 
					msgid "synthesis"
 | 
				
			||||||
msgstr "note de synthèse"
 | 
					msgstr "note de synthèse"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:591
 | 
					#: apps/participation/models.py:598
 | 
				
			||||||
msgid "syntheses"
 | 
					msgid "syntheses"
 | 
				
			||||||
msgstr "notes de synthèse"
 | 
					msgstr "notes de synthèse"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:599
 | 
					#: apps/participation/models.py:606
 | 
				
			||||||
msgid "jury"
 | 
					msgid "jury"
 | 
				
			||||||
msgstr "jury"
 | 
					msgstr "jury"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:611
 | 
					#: apps/participation/models.py:618
 | 
				
			||||||
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:617
 | 
					#: apps/participation/models.py:624
 | 
				
			||||||
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:623
 | 
					#: apps/participation/models.py:630
 | 
				
			||||||
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:629
 | 
					#: apps/participation/models.py:636
 | 
				
			||||||
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:635
 | 
					#: apps/participation/models.py:642
 | 
				
			||||||
msgid "reporter writing note"
 | 
					msgid "reporter writing note"
 | 
				
			||||||
msgstr "not d'écrit du rapporteur"
 | 
					msgstr "not d'écrit du rapporteur"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:641
 | 
					#: apps/participation/models.py:648
 | 
				
			||||||
msgid "reporter oral note"
 | 
					msgid "reporter oral note"
 | 
				
			||||||
msgstr "note d'oral du rapporteur"
 | 
					msgstr "note d'oral du rapporteur"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:650
 | 
					#: apps/participation/models.py:657
 | 
				
			||||||
#, 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:657
 | 
					#: apps/participation/models.py:664
 | 
				
			||||||
msgid "note"
 | 
					msgid "note"
 | 
				
			||||||
msgstr "note"
 | 
					msgstr "note"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:658
 | 
					#: apps/participation/models.py:665
 | 
				
			||||||
msgid "notes"
 | 
					msgid "notes"
 | 
				
			||||||
msgstr "notes"
 | 
					msgstr "notes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -524,14 +536,14 @@ msgid "Join"
 | 
				
			|||||||
msgstr "Rejoindre"
 | 
					msgstr "Rejoindre"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/note_form.html:11
 | 
					#: apps/participation/templates/participation/note_form.html:11
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:44
 | 
					#: apps/participation/templates/participation/passage_detail.html:47
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:100
 | 
					#: apps/participation/templates/participation/passage_detail.html:103
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:105
 | 
					#: apps/participation/templates/participation/passage_detail.html:108
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:55
 | 
					#: apps/participation/templates/participation/pool_detail.html:55
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:73
 | 
					#: apps/participation/templates/participation/pool_detail.html:73
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:78
 | 
					#: apps/participation/templates/participation/pool_detail.html:78
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:111
 | 
					#: apps/participation/templates/participation/team_detail.html:113
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:175
 | 
					#: apps/participation/templates/participation/team_detail.html:177
 | 
				
			||||||
#: apps/participation/templates/participation/tournament_form.html:12
 | 
					#: apps/participation/templates/participation/tournament_form.html:12
 | 
				
			||||||
#: apps/participation/templates/participation/update_team.html:12
 | 
					#: apps/participation/templates/participation/update_team.html:12
 | 
				
			||||||
#: apps/registration/templates/registration/payment_form.html:49
 | 
					#: apps/registration/templates/registration/payment_form.html:49
 | 
				
			||||||
@@ -585,8 +597,8 @@ msgid "Upload solution"
 | 
				
			|||||||
msgstr "Envoyer une solution"
 | 
					msgstr "Envoyer une solution"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/participation_detail.html:50
 | 
					#: apps/participation/templates/participation/participation_detail.html:50
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:110
 | 
					#: apps/participation/templates/participation/passage_detail.html:113
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:170
 | 
					#: apps/participation/templates/participation/team_detail.html:172
 | 
				
			||||||
#: apps/participation/templates/participation/upload_motivation_letter.html:13
 | 
					#: apps/participation/templates/participation/upload_motivation_letter.html:13
 | 
				
			||||||
#: apps/participation/templates/participation/upload_solution.html:11
 | 
					#: apps/participation/templates/participation/upload_solution.html:11
 | 
				
			||||||
#: apps/participation/templates/participation/upload_synthesis.html:11
 | 
					#: apps/participation/templates/participation/upload_synthesis.html:11
 | 
				
			||||||
@@ -625,64 +637,68 @@ msgid "Place:"
 | 
				
			|||||||
msgstr "Lieu :"
 | 
					msgstr "Lieu :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:31
 | 
					#: apps/participation/templates/participation/passage_detail.html:31
 | 
				
			||||||
 | 
					msgid "Defender penalties count:"
 | 
				
			||||||
 | 
					msgstr "Nombre de pénalités :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: apps/participation/templates/participation/passage_detail.html:34
 | 
				
			||||||
msgid "Syntheses:"
 | 
					msgid "Syntheses:"
 | 
				
			||||||
msgstr "Notes de synthèse :"
 | 
					msgstr "Notes de synthèse :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:36
 | 
					#: apps/participation/templates/participation/passage_detail.html:39
 | 
				
			||||||
msgid "No synthesis was uploaded yet."
 | 
					msgid "No synthesis was uploaded yet."
 | 
				
			||||||
msgstr "Aucune note de synthèse n'a encore été envoyée."
 | 
					msgstr "Aucune note de synthèse n'a encore été envoyée."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:43
 | 
					#: apps/participation/templates/participation/passage_detail.html:46
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:104
 | 
					#: apps/participation/templates/participation/passage_detail.html:107
 | 
				
			||||||
msgid "Update notes"
 | 
					msgid "Update notes"
 | 
				
			||||||
msgstr "Modifier les notes"
 | 
					msgstr "Modifier les notes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:48
 | 
					#: apps/participation/templates/participation/passage_detail.html:51
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:109
 | 
					#: apps/participation/templates/participation/passage_detail.html:112
 | 
				
			||||||
msgid "Upload synthesis"
 | 
					msgid "Upload synthesis"
 | 
				
			||||||
msgstr "Envoyer une note de synthèse"
 | 
					msgstr "Envoyer une note de synthèse"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:56
 | 
					#: apps/participation/templates/participation/passage_detail.html:59
 | 
				
			||||||
msgid "Notes detail"
 | 
					msgid "Notes detail"
 | 
				
			||||||
msgstr "Détails des notes"
 | 
					msgstr "Détails des notes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:63
 | 
					#: apps/participation/templates/participation/passage_detail.html:66
 | 
				
			||||||
msgid "Average points for the defender writing:"
 | 
					msgid "Average points for the defender writing:"
 | 
				
			||||||
msgstr "Moyenne de l'écrit du défenseur :"
 | 
					msgstr "Moyenne de l'écrit du défenseur :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:66
 | 
					#: apps/participation/templates/participation/passage_detail.html:69
 | 
				
			||||||
msgid "Average points for the defender oral:"
 | 
					msgid "Average points for the defender oral:"
 | 
				
			||||||
msgstr "Moyenne de l'oral du défenseur :"
 | 
					msgstr "Moyenne de l'oral du défenseur :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:69
 | 
					#: apps/participation/templates/participation/passage_detail.html:72
 | 
				
			||||||
msgid "Average points for the opponent writing:"
 | 
					msgid "Average points for the opponent writing:"
 | 
				
			||||||
msgstr "Moyenne de l'écrit de l'opposant :"
 | 
					msgstr "Moyenne de l'écrit de l'opposant :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:72
 | 
					#: apps/participation/templates/participation/passage_detail.html:75
 | 
				
			||||||
msgid "Average points for the opponent oral:"
 | 
					msgid "Average points for the opponent oral:"
 | 
				
			||||||
msgstr "Moyenne de l'oral de l'opposant :"
 | 
					msgstr "Moyenne de l'oral de l'opposant :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:75
 | 
					#: apps/participation/templates/participation/passage_detail.html:78
 | 
				
			||||||
msgid "Average points for the reporter writing:"
 | 
					msgid "Average points for the reporter writing:"
 | 
				
			||||||
msgstr "Moyenne de l'écrit du rapporteur :"
 | 
					msgstr "Moyenne de l'écrit du rapporteur :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:78
 | 
					#: apps/participation/templates/participation/passage_detail.html:81
 | 
				
			||||||
msgid "Average points for the reporter oral:"
 | 
					msgid "Average points for the reporter oral:"
 | 
				
			||||||
msgstr "Moyenne de l'oral du rapporteur :"
 | 
					msgstr "Moyenne de l'oral du rapporteur :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:85
 | 
					#: apps/participation/templates/participation/passage_detail.html:88
 | 
				
			||||||
msgid "Defender points:"
 | 
					msgid "Defender points:"
 | 
				
			||||||
msgstr "Points du défenseur :"
 | 
					msgstr "Points du défenseur :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:88
 | 
					#: apps/participation/templates/participation/passage_detail.html:91
 | 
				
			||||||
msgid "Opponent points:"
 | 
					msgid "Opponent points:"
 | 
				
			||||||
msgstr "Points de l'opposant :"
 | 
					msgstr "Points de l'opposant :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:91
 | 
					#: apps/participation/templates/participation/passage_detail.html:94
 | 
				
			||||||
msgid "Reporter points:"
 | 
					msgid "Reporter points:"
 | 
				
			||||||
msgstr "Points du rapporteur :"
 | 
					msgstr "Points du rapporteur :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:99
 | 
					#: apps/participation/templates/participation/passage_detail.html:102
 | 
				
			||||||
#: apps/participation/templates/participation/passage_form.html:11
 | 
					#: apps/participation/templates/participation/passage_form.html:11
 | 
				
			||||||
msgid "Update passage"
 | 
					msgid "Update passage"
 | 
				
			||||||
msgstr "Modifier le passage"
 | 
					msgstr "Modifier le passage"
 | 
				
			||||||
@@ -800,21 +816,21 @@ msgstr "Télécharger"
 | 
				
			|||||||
msgid "Replace"
 | 
					msgid "Replace"
 | 
				
			||||||
msgstr "Remplacer"
 | 
					msgstr "Remplacer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:106
 | 
					#: apps/participation/templates/participation/team_detail.html:107
 | 
				
			||||||
msgid "Download all submitted authorizations"
 | 
					msgid "Download all submitted authorizations"
 | 
				
			||||||
msgstr "Télécharger toutes les autorisations soumises"
 | 
					msgstr "Télécharger toutes les autorisations soumises"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:113
 | 
					#: apps/participation/templates/participation/team_detail.html:115
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:180
 | 
					#: apps/participation/templates/participation/team_detail.html:182
 | 
				
			||||||
#: apps/participation/templates/participation/team_leave.html:11
 | 
					#: apps/participation/templates/participation/team_leave.html:11
 | 
				
			||||||
msgid "Leave"
 | 
					msgid "Leave"
 | 
				
			||||||
msgstr "Quitter"
 | 
					msgstr "Quitter"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:123
 | 
					#: apps/participation/templates/participation/team_detail.html:125
 | 
				
			||||||
msgid "Access to team participation"
 | 
					msgid "Access to team participation"
 | 
				
			||||||
msgstr "Accéder à la participation de l'équipe"
 | 
					msgstr "Accéder à la participation de l'équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:130
 | 
					#: apps/participation/templates/participation/team_detail.html:132
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Your team has at least 4 members and a coach and all authorizations were "
 | 
					"Your team has at least 4 members and a coach and all authorizations were "
 | 
				
			||||||
"given: the team can be validated."
 | 
					"given: the team can be validated."
 | 
				
			||||||
@@ -822,11 +838,11 @@ msgstr ""
 | 
				
			|||||||
"Votre équipe contient au moins 4 personnes et un encadrant et toutes les "
 | 
					"Votre équipe contient au moins 4 personnes et un encadrant et toutes les "
 | 
				
			||||||
"autorisations ont été données : l'équipe peut être validée."
 | 
					"autorisations ont été données : l'équipe peut être validée."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:135
 | 
					#: apps/participation/templates/participation/team_detail.html:137
 | 
				
			||||||
msgid "Submit my team to validation"
 | 
					msgid "Submit my team to validation"
 | 
				
			||||||
msgstr "Soumettre mon équipe à validation"
 | 
					msgstr "Soumettre mon équipe à validation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:141
 | 
					#: apps/participation/templates/participation/team_detail.html:143
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Your team must be composed of 4 members and a coach and each member must "
 | 
					"Your team must be composed of 4 members and a coach and each member must "
 | 
				
			||||||
"upload their authorizations and confirm its email address."
 | 
					"upload their authorizations and confirm its email address."
 | 
				
			||||||
@@ -834,15 +850,15 @@ msgstr ""
 | 
				
			|||||||
"Votre équipe doit être composée d'au moins 4 membres et un encadrant et "
 | 
					"Votre équipe doit être composée d'au moins 4 membres et un encadrant et "
 | 
				
			||||||
"chaque membre doit envoyer ses autorisations et confirmé son adresse e-mail."
 | 
					"chaque membre doit envoyer ses autorisations et confirmé son adresse e-mail."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:146
 | 
					#: apps/participation/templates/participation/team_detail.html:148
 | 
				
			||||||
msgid "This team didn't ask for validation yet."
 | 
					msgid "This team didn't ask for validation yet."
 | 
				
			||||||
msgstr "L'équipe n'a pas encore demandé à être validée."
 | 
					msgstr "L'équipe n'a pas encore demandé à être validée."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:152
 | 
					#: apps/participation/templates/participation/team_detail.html:154
 | 
				
			||||||
msgid "Your validation is pending."
 | 
					msgid "Your validation is pending."
 | 
				
			||||||
msgstr "Votre validation est en attente."
 | 
					msgstr "Votre validation est en attente."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:156
 | 
					#: apps/participation/templates/participation/team_detail.html:158
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"The team requested to be validated. You may now control the authorizations "
 | 
					"The team requested to be validated. You may now control the authorizations "
 | 
				
			||||||
"and confirm that they can participate."
 | 
					"and confirm that they can participate."
 | 
				
			||||||
@@ -850,25 +866,25 @@ msgstr ""
 | 
				
			|||||||
"L'équipe a demandé à être validée. Vous pouvez désormais contrôler les "
 | 
					"L'équipe a demandé à être validée. Vous pouvez désormais contrôler les "
 | 
				
			||||||
"différentes autorisations et confirmer qu'elle peut participer."
 | 
					"différentes autorisations et confirmer qu'elle peut participer."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:162
 | 
					#: apps/participation/templates/participation/team_detail.html:164
 | 
				
			||||||
msgid "Validate"
 | 
					msgid "Validate"
 | 
				
			||||||
msgstr "Valider"
 | 
					msgstr "Valider"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:163
 | 
					#: apps/participation/templates/participation/team_detail.html:165
 | 
				
			||||||
msgid "Invalidate"
 | 
					msgid "Invalidate"
 | 
				
			||||||
msgstr "Invalider"
 | 
					msgstr "Invalider"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:169
 | 
					#: apps/participation/templates/participation/team_detail.html:171
 | 
				
			||||||
#: apps/participation/views.py:323
 | 
					#: apps/participation/views.py:323
 | 
				
			||||||
msgid "Upload motivation letter"
 | 
					msgid "Upload motivation letter"
 | 
				
			||||||
msgstr "Envoyer la lettre de motivation"
 | 
					msgstr "Envoyer la lettre de motivation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:174
 | 
					#: apps/participation/templates/participation/team_detail.html:176
 | 
				
			||||||
msgid "Update team"
 | 
					msgid "Update team"
 | 
				
			||||||
msgstr "Modifier l'équipe"
 | 
					msgstr "Modifier l'équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:179
 | 
					#: apps/participation/templates/participation/team_detail.html:181
 | 
				
			||||||
#: apps/participation/views.py:424
 | 
					#: apps/participation/views.py:423
 | 
				
			||||||
msgid "Leave team"
 | 
					msgid "Leave team"
 | 
				
			||||||
msgstr "Quitter l'équipe"
 | 
					msgstr "Quitter l'équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -990,12 +1006,12 @@ msgstr "Vous êtes déjà dans une équipe."
 | 
				
			|||||||
msgid "Join team"
 | 
					msgid "Join team"
 | 
				
			||||||
msgstr "Rejoindre une équipe"
 | 
					msgstr "Rejoindre une équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:150 apps/participation/views.py:430
 | 
					#: apps/participation/views.py:150 apps/participation/views.py:429
 | 
				
			||||||
#: apps/participation/views.py:463
 | 
					#: apps/participation/views.py:462
 | 
				
			||||||
msgid "You are not in a team."
 | 
					msgid "You are not in a team."
 | 
				
			||||||
msgstr "Vous n'êtes pas dans une équipe."
 | 
					msgstr "Vous n'êtes pas dans une équipe."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:151 apps/participation/views.py:464
 | 
					#: apps/participation/views.py:151 apps/participation/views.py:463
 | 
				
			||||||
msgid "You don't participate, so you don't have any team."
 | 
					msgid "You don't participate, so you don't have any team."
 | 
				
			||||||
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
 | 
					msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1040,49 +1056,49 @@ msgstr "Vous devez spécifier si vous validez l'inscription ou non."
 | 
				
			|||||||
msgid "Update team {trigram}"
 | 
					msgid "Update team {trigram}"
 | 
				
			||||||
msgstr "Mise à jour de l'équipe {trigram}"
 | 
					msgstr "Mise à jour de l'équipe {trigram}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:361 apps/participation/views.py:410
 | 
					#: apps/participation/views.py:361 apps/participation/views.py:409
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Motivation letter of {team}.{ext}"
 | 
					msgid "Motivation letter of {team}.{ext}"
 | 
				
			||||||
msgstr "Lettre de motivation de {team}.{ext}"
 | 
					msgstr "Lettre de motivation de {team}.{ext}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:391
 | 
					#: apps/participation/views.py:390
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Photo authorization of {participant}.{ext}"
 | 
					msgid "Photo authorization of {participant}.{ext}"
 | 
				
			||||||
msgstr "Autorisation de droit à l'image de {participant}.{ext}"
 | 
					msgstr "Autorisation de droit à l'image de {participant}.{ext}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:397
 | 
					#: apps/participation/views.py:396
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Parental authorization of {participant}.{ext}"
 | 
					msgid "Parental authorization of {participant}.{ext}"
 | 
				
			||||||
msgstr "Autorisation parentale de {participant}.{ext}"
 | 
					msgstr "Autorisation parentale de {participant}.{ext}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:404
 | 
					#: apps/participation/views.py:403
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Health sheet of {participant}.{ext}"
 | 
					msgid "Health sheet of {participant}.{ext}"
 | 
				
			||||||
msgstr "Fiche sanitaire de {participant}.{ext}"
 | 
					msgstr "Fiche sanitaire de {participant}.{ext}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:414
 | 
					#: apps/participation/views.py:413
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
msgid "Photo authorizations of team {trigram}.zip"
 | 
					msgid "Photo authorizations of team {trigram}.zip"
 | 
				
			||||||
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
 | 
					msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:432
 | 
					#: apps/participation/views.py:431
 | 
				
			||||||
msgid "The team is already validated or the validation is pending."
 | 
					msgid "The team is already validated or the validation is pending."
 | 
				
			||||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
 | 
					msgstr "La validation de l'équipe est déjà faite ou en cours."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:478
 | 
					#: apps/participation/views.py:477
 | 
				
			||||||
msgid "The team is not validated yet."
 | 
					msgid "The team is not validated yet."
 | 
				
			||||||
msgstr "L'équipe n'est pas encore validée."
 | 
					msgstr "L'équipe n'est pas encore validée."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:490
 | 
					#: apps/participation/views.py:489
 | 
				
			||||||
#, python-brace-format
 | 
					#, python-brace-format
 | 
				
			||||||
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:578
 | 
				
			||||||
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:760
 | 
					#: apps/participation/views.py:759
 | 
				
			||||||
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."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1490,11 +1506,11 @@ msgid ""
 | 
				
			|||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Vous pouvez payer par carte bancaire sur <a class=\"alert-link\" href="
 | 
					"Vous pouvez payer par carte bancaire sur <a class=\"alert-link\" href="
 | 
				
			||||||
"\"https://www.helloasso.com/associations/animath/evenements/"
 | 
					"\"https://www.helloasso.com/associations/animath/evenements/"
 | 
				
			||||||
"tfjm-2021\">notre page Hello Asso</a>. Pour rendre la validation du "
 | 
					"tfjm-2021\">notre page Hello Asso</a>. Pour rendre la validation du paiement "
 | 
				
			||||||
"paiement plus facile, <span class=\"text-danger\">merci d'utiliser la même "
 | 
					"plus facile, <span class=\"text-danger\">merci d'utiliser la même adresse e-"
 | 
				
			||||||
"adresse e-mail que vous utilisez sur cette plateforme.</span> La "
 | 
					"mail que vous utilisez sur cette plateforme.</span> La vérification du "
 | 
				
			||||||
"vérification du paiement sera faite automatiquement sous 10 minutes, vous "
 | 
					"paiement sera faite automatiquement sous 10 minutes, vous n'avez pas "
 | 
				
			||||||
"n'avez pas nécessairement besoin de remplir ce formulaire."
 | 
					"nécessairement besoin de remplir ce formulaire."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/registration/templates/registration/payment_form.html:27
 | 
					#: apps/registration/templates/registration/payment_form.html:27
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user