Translate written reviews templates

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2024-07-06 20:52:43 +02:00
parent 748720df50
commit 696863f6c3
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
4 changed files with 235 additions and 19 deletions

View File

@ -937,7 +937,7 @@ class Participation(models.Model):
problem=opponent_passage.solution_number, passage_url=passage_url) problem=opponent_passage.solution_number, passage_url=passage_url)
reviewer_text = _("<p>You will report the solution of the team {reviewer} on the " reviewer_text = _("<p>You will report the solution of the team {reviewer} on the "
"<a href='{solution_url}'>problem {problem}. " "<a href='{solution_url}'>problem {problem}</a>. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>") "You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = reviewer_passage.defended_solution.file.url solution_url = reviewer_passage.defended_solution.file.url
passage_url = reverse_lazy("participation:passage_detail", args=(reviewer_passage.pk,)) passage_url = reverse_lazy("participation:passage_detail", args=(reviewer_passage.pk,))
@ -947,7 +947,7 @@ class Participation(models.Model):
if observer_passage: if observer_passage:
observer_text = _("<p>You will observe the solution of the team {observer} on the " observer_text = _("<p>You will observe the solution of the team {observer} on the "
"<a href='{solution_url}'>problem {problem}. " "<a href='{solution_url}'>problem {problem}</a>. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>") "You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = observer_passage.defended_solution.file.url solution_url = observer_passage.defended_solution.file.url
passage_url = reverse_lazy("participation:passage_detail", args=(observer_passage.pk,)) passage_url = reverse_lazy("participation:passage_detail", args=(observer_passage.pk,))
@ -958,9 +958,14 @@ class Participation(models.Model):
else: else:
observer_content = "" observer_content = ""
syntheses_template_begin = f"{settings.STATIC_URL}Fiche_synthèse." if settings.TFJM_APP == "TFJM":
syntheses_template_begin = f"{settings.STATIC_URL}tfjm/Fiche_synthèse."
syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>" syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>"
for ext in ["pdf", "tex", "odt", "docx"]) for ext in ["pdf", "tex", "odt", "docx"])
else:
syntheses_template_begin = f"{settings.STATIC_URL}eteam/Written_review."
syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>"
for ext in ["pdf", "tex"])
syntheses_templates_content = f"<p>{_('Templates:')} {syntheses_templates}</p>" syntheses_templates_content = f"<p>{_('Templates:')} {syntheses_templates}</p>"
content = defender_content + opponent_content + reviewer_content + observer_content \ content = defender_content + opponent_content + reviewer_content + observer_content \
@ -995,7 +1000,7 @@ class Participation(models.Model):
problem=opponent_passage.solution_number, passage_url=passage_url) problem=opponent_passage.solution_number, passage_url=passage_url)
reviewer_text = _("<p>You will report the solution of the team {reviewer} on the " reviewer_text = _("<p>You will report the solution of the team {reviewer} on the "
"<a href='{solution_url}'>problem {problem}. " "<a href='{solution_url}'>problem {problem}</a>. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>") "You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = reviewer_passage.defended_solution.file.url solution_url = reviewer_passage.defended_solution.file.url
passage_url = reverse_lazy("participation:passage_detail", args=(reviewer_passage.pk,)) passage_url = reverse_lazy("participation:passage_detail", args=(reviewer_passage.pk,))
@ -1005,7 +1010,7 @@ class Participation(models.Model):
if observer_passage: if observer_passage:
observer_text = _("<p>You will observe the solution of the team {observer} on the " observer_text = _("<p>You will observe the solution of the team {observer} on the "
"<a href='{solution_url}'>problem {problem}. " "<a href='{solution_url}'>problem {problem}</a>. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>") "You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = observer_passage.defended_solution.file.url solution_url = observer_passage.defended_solution.file.url
passage_url = reverse_lazy("participation:passage_detail", args=(observer_passage.pk,)) passage_url = reverse_lazy("participation:passage_detail", args=(observer_passage.pk,))
@ -1016,9 +1021,14 @@ class Participation(models.Model):
else: else:
observer_content = "" observer_content = ""
syntheses_template_begin = f"{settings.STATIC_URL}Fiche_synthèse." if settings.TFJM_APP == "TFJM":
syntheses_template_begin = f"{settings.STATIC_URL}tfjm/Fiche_synthèse."
syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>" syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>"
for ext in ["pdf", "tex", "odt", "docx"]) for ext in ["pdf", "tex", "odt", "docx"])
else:
syntheses_template_begin = f"{settings.STATIC_URL}eteam/Written_review."
syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>"
for ext in ["pdf", "tex"])
syntheses_templates_content = f"<p>{_('Templates:')} {syntheses_templates}</p>" syntheses_templates_content = f"<p>{_('Templates:')} {syntheses_templates}</p>"
content = defender_content + opponent_content + reviewer_content + observer_content \ content = defender_content + opponent_content + reviewer_content + observer_content \
@ -1054,7 +1064,7 @@ class Participation(models.Model):
problem=opponent_passage.solution_number, passage_url=passage_url) problem=opponent_passage.solution_number, passage_url=passage_url)
reviewer_text = _("<p>You will report the solution of the team {reviewer} on the " reviewer_text = _("<p>You will report the solution of the team {reviewer} on the "
"<a href='{solution_url}'>problem {problem}. " "<a href='{solution_url}'>problem {problem}</a>. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>") "You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = reviewer_passage.defended_solution.file.url solution_url = reviewer_passage.defended_solution.file.url
passage_url = reverse_lazy("participation:passage_detail", args=(reviewer_passage.pk,)) passage_url = reverse_lazy("participation:passage_detail", args=(reviewer_passage.pk,))
@ -1064,7 +1074,7 @@ class Participation(models.Model):
if observer_passage: if observer_passage:
observer_text = _("<p>You will observe the solution of the team {observer} on the " observer_text = _("<p>You will observe the solution of the team {observer} on the "
"<a href='{solution_url}'>problem {problem}. " "<a href='{solution_url}'>problem {problem}</a>. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>") "You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = observer_passage.defended_solution.file.url solution_url = observer_passage.defended_solution.file.url
passage_url = reverse_lazy("participation:passage_detail", args=(observer_passage.pk,)) passage_url = reverse_lazy("participation:passage_detail", args=(observer_passage.pk,))
@ -1075,9 +1085,14 @@ class Participation(models.Model):
else: else:
observer_content = "" observer_content = ""
syntheses_template_begin = f"{settings.STATIC_URL}Fiche_synthèse." if settings.TFJM_APP == "TFJM":
syntheses_template_begin = f"{settings.STATIC_URL}tfjm/Fiche_synthèse."
syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>" syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>"
for ext in ["pdf", "tex", "odt", "docx"]) for ext in ["pdf", "tex", "odt", "docx"])
else:
syntheses_template_begin = f"{settings.STATIC_URL}eteam/Written_review."
syntheses_templates = "".join(f"<a href='{syntheses_template_begin}{ext}'>{ext.upper()}</a>"
for ext in ["pdf", "tex"])
syntheses_templates_content = f"<p>{_('Templates:')} {syntheses_templates}</p>" syntheses_templates_content = f"<p>{_('Templates:')} {syntheses_templates}</p>"
content = defender_content + opponent_content + reviewer_content + observer_content \ content = defender_content + opponent_content + reviewer_content + observer_content \

View File

@ -7,10 +7,15 @@
<div id="form-content"> <div id="form-content">
<div class="alert alert-info"> <div class="alert alert-info">
{% trans "Templates:" %} {% trans "Templates:" %}
{% if TFJM.APP == "TFJM" %}
<a class="alert-link" href="{% static "tfjm/Fiche_synthèse.pdf" %}"> PDF</a> <a class="alert-link" href="{% static "tfjm/Fiche_synthèse.pdf" %}"> PDF</a>
<a class="alert-link" href="{% static "tfjm/Fiche_synthèse.tex" %}"> TEX</a> <a class="alert-link" href="{% static "tfjm/Fiche_synthèse.tex" %}"> TEX</a>
<a class="alert-link" href="{% static "tfjm/Fiche_synthèse.odt" %}"> ODT</a> <a class="alert-link" href="{% static "tfjm/Fiche_synthèse.odt" %}"> ODT</a>
<a class="alert-link" href="{% static "tfjm/Fiche_synthèse.docx" %}" title="{% trans "Warning: non-free format" %}"> DOCX</a> <a class="alert-link" href="{% static "tfjm/Fiche_synthèse.docx" %}" title="{% trans "Warning: non-free format" %}"> DOCX</a>
{% elif TFJM.APP == "ETEAM" %}
<a class="alert-link" href="{% static "eteam/Written_review.pdf" %}"> PDF</a>
<a class="alert-link" href="{% static "eteam/Written_review.tex" %}"> TEX</a>
{% endif %}
</div> </div>
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}

Binary file not shown.

View File

@ -0,0 +1,196 @@
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage[margin=2cm]{geometry} % marges
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\title{Note de synthèse}
\begin{document}
\pagestyle{empty}
\begin{center}
\begin{Huge}
ETEAM
\end{Huge}
\bigskip
\begin{Large}
WRITTEN REVIEW
\end{Large}
\end{center}
Round \underline{~~~~} pool \underline{~~~~}
\medskip
Problem \underline{~~~~} defended by team \underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
\medskip
Written review of the team \underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~} in the role of : ~ $\square$ Opponent ~ $\square$ Reviewer ~ $\square$ Observer
\section*{Evaluation, question by question, of the solution}
Note: it is possible to tick between the boxes for an intermediate case.
\medskip
\noindent
\begin{tabular}{|c|c|c|c|c|c|}
\hline
Question & ER & ~PA~ & ~SE~ & NA \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
\end{tabular}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
Question & ER & ~PA~ & ~SE~ & NA \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
& & & & \\
\hline
\end{tabular}
\hfill
\begin{minipage}{0.27\textwidth}
ER : entirely resolved, nor error, nor mathematical lack
\smallskip
PA : partially answered
\smallskip
SE : some elements of answer
\smallskip
NA : not addressed
\bigskip
\end{minipage}
\section*{Qualitative evaluation of the solution}
Give your opinion regarding the solution. In particular, highlight the positive points (important, original
ideas, etc.) and specify what could have improved the solution.
\vfill
\begin{center}
\textbf{General evaluation of the solution:} ~ $\square$ Excellent ~ $\square$ Good ~ $\square$ Suffisant ~ $\square$ Average ~ $\square$ Poor
\end{center}
\newpage
\section*{Errors and inaccuracies}
List below in descending order of importance no more than four errors and/or inaccuracies in your opinion, specifying
the question concerned, the page, the paragraph and the type of remark.
\medskip
1. Question \underline{~~~~~~} Page \underline{~~~~~~} Paragraph \underline{~~~~~~}
$\square$ Major mistake ~ $\square$ Minor mistake ~ $\square$ Inaccuracy ~ $\square$ Other: \underline{~~~~~~~~}
Description :
\vfill
2. Question \underline{~~~~~~} Page \underline{~~~~~~} Paragraph \underline{~~~~~~}
$\square$ Major mistake ~ $\square$ Minor mistake ~ $\square$ Inaccuracy ~ $\square$ Other: \underline{~~~~~~~~}
Description :
\vfill
3. Question \underline{~~~~~~} Page \underline{~~~~~~} Paragraph \underline{~~~~~~}
$\square$ Major mistake ~ $\square$ Minor mistake ~ $\square$ Inaccuracy ~ $\square$ Other: \underline{~~~~~~~~}
Description :
\vfill
4. Question \underline{~~~~~~} Page \underline{~~~~~~} Paragraph \underline{~~~~~~}
$\square$ Major mistake ~ $\square$ Minor mistake ~ $\square$ Inaccuracy ~ $\square$ Other: \underline{~~~~~~~~}
Description :
\vfill
\section*{Positive aspects}
Identify at most two strong points of the solution and say why (examples: relevant propositions, important ideas,
relevant generalizations, significant examples, original constructions, etc.).
\medskip
1. Question \underline{~~~~~~} Page \underline{~~~~~~} Paragraph \underline{~~~~~~}
Description :
\vfill
2. Question \underline{~~~~~~} Page \underline{~~~~~~} Paragraph \underline{~~~~~~}
Description :
\vfill
\section*{Other remarks (optional)}
Give your opinion regarding the presentation of the solution (readability, etc.).
\vfill
\end{document}