mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 16:42:28 +01:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			67958335ab
			...
			df6fb3b3f3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					
						
						
							
						
						df6fb3b3f3
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						3807fbcf45
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						8433390e19
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						ec85f62ab6
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						74b2a0c095
	
				 | 
					
					
						
@@ -2,15 +2,6 @@ stages:
 | 
			
		||||
  - test
 | 
			
		||||
  - quality-assurance
 | 
			
		||||
 | 
			
		||||
py311:
 | 
			
		||||
  stage: test
 | 
			
		||||
  image: python:3.11-alpine
 | 
			
		||||
  before_script:
 | 
			
		||||
    - apk add --no-cache libmagic
 | 
			
		||||
    - apk add --no-cache gettext
 | 
			
		||||
    - pip install tox --no-cache-dir
 | 
			
		||||
  script: tox -e py311
 | 
			
		||||
 | 
			
		||||
py312:
 | 
			
		||||
  stage: test
 | 
			
		||||
  image: python:3.12-alpine
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -5,7 +5,7 @@ from io import StringIO
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
from crispy_forms.helper import FormHelper
 | 
			
		||||
from crispy_forms.layout import Div, Field, Submit
 | 
			
		||||
from crispy_forms.layout import Div, Field, HTML, Layout, Submit
 | 
			
		||||
from django import forms
 | 
			
		||||
from django.contrib.auth.models import User
 | 
			
		||||
from django.core.exceptions import ValidationError
 | 
			
		||||
@@ -77,9 +77,30 @@ class ParticipationForm(forms.ModelForm):
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self, *args, **kwargs):
 | 
			
		||||
        super().__init__(*args, **kwargs)
 | 
			
		||||
        if settings.TFJM_APP == "ETEAM":
 | 
			
		||||
            # One single tournament only
 | 
			
		||||
        if settings.SINGLE_TOURNAMENT:
 | 
			
		||||
            del self.fields['tournament']
 | 
			
		||||
        self.helper = FormHelper()
 | 
			
		||||
        idf_warning_banner = f"""
 | 
			
		||||
<div class=\"alert alert-warning\">
 | 
			
		||||
<h5 class=\"alert-heading\">{_("IMPORTANT")}</h4>
 | 
			
		||||
{_("""For the tournaments in the region "Île-de-France": registration is
 | 
			
		||||
unified for each tournament. By choosing a tournament "Île-de-France",
 | 
			
		||||
you're accepting that your team may be selected for one of these tournaments.
 | 
			
		||||
In case of date conflict, please write them in your motivation letter.""")}
 | 
			
		||||
</div>
 | 
			
		||||
"""
 | 
			
		||||
        unified_registration_tournament_ids = ",".join(
 | 
			
		||||
            str(tournament.id) for tournament in Tournament.objects.filter(
 | 
			
		||||
                unified_registration=True).all())
 | 
			
		||||
        self.helper.layout = Layout(
 | 
			
		||||
            'tournament',
 | 
			
		||||
            Div(
 | 
			
		||||
                HTML(idf_warning_banner),
 | 
			
		||||
                css_id="idf_warning_banner",
 | 
			
		||||
                data_tid_unified=unified_registration_tournament_ids,
 | 
			
		||||
            ),
 | 
			
		||||
            'final',
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = Participation
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,21 @@
 | 
			
		||||
# Generated by Django 5.1.5 on 2025-01-14 18:06
 | 
			
		||||
 | 
			
		||||
import django.core.validators
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("participation", "0022_alter_note_observer_oral"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="tournament",
 | 
			
		||||
            name="unified_registration",
 | 
			
		||||
            field=models.BooleanField(
 | 
			
		||||
                default=False, verbose_name="unified registration"
 | 
			
		||||
            ),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -283,6 +283,11 @@ class Tournament(models.Model):
 | 
			
		||||
        default=date.today,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    unified_registration = models.BooleanField(
 | 
			
		||||
        verbose_name=_("unified registration"),
 | 
			
		||||
        default=False,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    place = models.CharField(
 | 
			
		||||
        max_length=255,
 | 
			
		||||
        verbose_name=_("place"),
 | 
			
		||||
 
 | 
			
		||||
@@ -2,28 +2,28 @@
 | 
			
		||||
<html lang="fr">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <title>Validation request - ETEAM</title>
 | 
			
		||||
    <title>Demande de validation - TFJM²</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<p>
 | 
			
		||||
Hi,
 | 
			
		||||
Bonjour,
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The team "{{ team.name }}" ({{ team.trigram }}) has just asked to validate his team to take part
 | 
			
		||||
in ETEAM.
 | 
			
		||||
You can decide whether or not to accept the team by going to the team page:
 | 
			
		||||
L'équipe « {{ team.name }} » ({{ team.trigram }}) vient de demander à valider son équipe pour participer
 | 
			
		||||
au {{ team.participation.get_problem_display }} du TFJM².
 | 
			
		||||
Vous pouvez décider d'accepter ou de refuser l'équipe en vous rendant sur la page de l'équipe :
 | 
			
		||||
<a href="https://{{ domain }}{% url "participation:team_detail" pk=team.pk %}">
 | 
			
		||||
    https://{{ domain }}{% url "participation:team_detail" pk=team.pk %}
 | 
			
		||||
</a>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Sincerely yours,
 | 
			
		||||
Cordialement,
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The ETEAM team
 | 
			
		||||
L'organisation du TFJM²
 | 
			
		||||
</p>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
Hi {{ user }},
 | 
			
		||||
Bonjour {{ user }},
 | 
			
		||||
 | 
			
		||||
The team "{{ team.name }}" ({{ team.trigram }}) has just asked to validate his team to take part
 | 
			
		||||
in ETEAM.
 | 
			
		||||
You can decide whether or not to accept the team by going to the team page:
 | 
			
		||||
L'équipe « {{ team.name }} » ({{ team.trigram }}) vient de demander à valider son équipe pour participer
 | 
			
		||||
au {{ team.participation.get_problem_display }} du TFJM².
 | 
			
		||||
Vous pouvez décider d'accepter ou de refuser l'équipe en vous rendant sur la page de l'équipe :
 | 
			
		||||
https://{{ domain }}{% url "participation:team_detail" pk=team.pk %}
 | 
			
		||||
 | 
			
		||||
Sincerely yours,
 | 
			
		||||
Cordialement,
 | 
			
		||||
 | 
			
		||||
The ETEAM team
 | 
			
		||||
L'organisation du TFJM²
 | 
			
		||||
 
 | 
			
		||||
@@ -2,21 +2,21 @@
 | 
			
		||||
<html lang="fr">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <title>Team not validated – ETEAM</title>
 | 
			
		||||
    <title>Équipe non validée – TFJM²</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
Hi,<br/>
 | 
			
		||||
Bonjour,<br/>
 | 
			
		||||
<br />
 | 
			
		||||
Unfortunately, your team "{{ team.name }}" ({{ team.trigram }}) has not been validated.
 | 
			
		||||
Please check that your authorisations are correctly filled in.
 | 
			
		||||
The organisers are sending you this message:<br />
 | 
			
		||||
Maleureusement, votre équipe « {{ team.name }} » ({{ team.trigram }}) n'a pas été validée. Veuillez vérifier que vos autorisations
 | 
			
		||||
de droit à l'image sont correctes. Les organisateurs vous adressent ce message :<br />
 | 
			
		||||
<br />
 | 
			
		||||
{{ message }}<br />
 | 
			
		||||
<br />
 | 
			
		||||
Please contact us at <a href="mailto:eteam_moc@proton.me">eteam_moc@proton.me</a> if you need further information.
 | 
			
		||||
N'hésitez pas à nous contacter à l'adresse <a href="mailto:contact@tfjm.org">contact@tfjm.org</a>
 | 
			
		||||
pour plus d'informations.
 | 
			
		||||
<br/>
 | 
			
		||||
Sincerely yours,<br/>
 | 
			
		||||
Cordialement,<br/>
 | 
			
		||||
<br/>
 | 
			
		||||
The ETEAM team
 | 
			
		||||
Le comité d'organisation du TFJM²
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,12 @@
 | 
			
		||||
Hi,
 | 
			
		||||
Bonjour,
 | 
			
		||||
 | 
			
		||||
Unfortunately, your team "{{ team.name }}" ({{ team.trigram }}) has not been validated.
 | 
			
		||||
Please check that your authorisations are correctly filled in.
 | 
			
		||||
The organisers are sending you this message:<br />
 | 
			
		||||
Maleureusement, votre équipe « {{ team.name }} » ({{ team.trigram }}) n'a pas été validée. Veuillez vérifier que vos
 | 
			
		||||
autorisations de droit à l'image sont correctes. Les organisateurs vous adressent ce message :
 | 
			
		||||
 | 
			
		||||
{{ message }}
 | 
			
		||||
 | 
			
		||||
Please contact us at eteam_moc@proton.me if you need further information.
 | 
			
		||||
N'hésitez pas à nous contacter à l'adresse contact@tfjm.org pour plus d'informations.
 | 
			
		||||
 | 
			
		||||
Sincerely yours,
 | 
			
		||||
Cordialement,
 | 
			
		||||
 | 
			
		||||
The ETEAM team
 | 
			
		||||
Le comité d'organisation du TFJM²
 | 
			
		||||
 
 | 
			
		||||
@@ -2,36 +2,37 @@
 | 
			
		||||
<html lang="fr">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <title>Team validated – ETEAM</title>
 | 
			
		||||
    <title>Équipe validée – TFJM²</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<p>
 | 
			
		||||
    Hello {{ registration }},
 | 
			
		||||
    Bonjour {{ registration }},
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
    Congratulations! Your team "{{ team.name }}" ({{ team.trigram }}) is now validated! You are now ready to
 | 
			
		||||
    to work on your problems. You can then upload your solutions to the platform.
 | 
			
		||||
    Félicitations ! Votre équipe « {{ team.name }} » ({{ team.trigram }}) est désormais validée ! Vous êtes désormais
 | 
			
		||||
    apte à travailler sur vos problèmes. Vous pourrez ensuite envoyer vos solutions sur la plateforme.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
{% if payment %}
 | 
			
		||||
    <p>
 | 
			
		||||
        You must now pay your participation fee of € {{ payment.amount }}.
 | 
			
		||||
        You can pay by credit card or bank transfer. You'll find information
 | 
			
		||||
        on the payment page which you can find on
 | 
			
		||||
        <a href="https://{{ domain }}{% url 'registration:my_account_detail' %}">your account</a>.
 | 
			
		||||
        If you have a scholarship, registration is free, but you must submit a justification on the same page.
 | 
			
		||||
        Vous devez désormais vous acquitter de vos frais de participation, de {{ payment.amount }} € par élève.
 | 
			
		||||
        Vous pouvez payer par carte bancaire ou par virement bancaire. Vous trouverez les informations
 | 
			
		||||
        sur <a href="https://{{ domain }}{% url 'registration:update_payment' pk=payment.pk %}">la page de paiement</a>.
 | 
			
		||||
        Si vous disposez d'une bourse, l'inscription est gratuite, mais vous devez soumettre un justificatif
 | 
			
		||||
        sur la même page.
 | 
			
		||||
    </p>
 | 
			
		||||
{% elif registration.is_coach and team.participation.tournament.price %}
 | 
			
		||||
    <p>
 | 
			
		||||
        Your team must now pay a participation fee of {{ team.participation.tournament.price }} € per student (supervisors are exempt). Students with scholarships are exempt⋅es from these fees.
 | 
			
		||||
        You can track the status of payments on 
 | 
			
		||||
        <a href="https://{{ domain }}{% url 'participation:team_detail' pk=team.pk %}">your team page</a>.
 | 
			
		||||
        Votre équipe doit désormais s'acquitter des frais de participation de {{ team.participation.tournament.price }} €
 | 
			
		||||
        par élève (les encadrant⋅es sont exonéré⋅es). Les élèves qui disposent d'une bourse sont exonéré⋅es de ces frais.
 | 
			
		||||
        Vous pouvez suivre l'état des paiements sur
 | 
			
		||||
        <a href="https://{{ domain }}{% url 'participation:team_detail' pk=team.pk %}">la page de votre équipe</a>.
 | 
			
		||||
    </p>
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if message %}
 | 
			
		||||
    <p>
 | 
			
		||||
        The organisers send you this message:
 | 
			
		||||
        Les organisateur⋅ices vous adressent ce message :
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
        {{ message }}
 | 
			
		||||
@@ -39,7 +40,7 @@
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
    The ETEAM team
 | 
			
		||||
    Le comité d'organisation du TFJM²
 | 
			
		||||
</p>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,21 +1,23 @@
 | 
			
		||||
Hello {{registration }},
 | 
			
		||||
Bonjour {{ registration }},
 | 
			
		||||
 | 
			
		||||
Congratulations! Your team "{{ team.name }}" ({{ team.trigram }}) is now validated! You are now ready to
 | 
			
		||||
to work on your problems. You can then upload your solutions to the platform.
 | 
			
		||||
{% if payment %}
 | 
			
		||||
You must now pay your participation fee of € {{ payment.amount }}.
 | 
			
		||||
You can pay by credit card or bank transfer. You'll find information
 | 
			
		||||
on the payment page which you can find on your account:
 | 
			
		||||
Félicitations ! Votre équipe « {{ team.name }} » ({{ team.trigram }}) est désormais validée ! Vous êtes désormais apte
 | 
			
		||||
à travailler sur vos problèmes. Vous pourrez ensuite envoyer vos solutions sur la plateforme.
 | 
			
		||||
{% if team.participation.amount %}
 | 
			
		||||
Vous devez désormais vous acquitter de vos frais de participation, de {{ team.participation.amount }} €.
 | 
			
		||||
Vous pouvez payer par carte bancaire ou par virement bancaire. Vous trouverez les informations
 | 
			
		||||
sur la page de paiement que vous pouvez retrouver sur votre compte :
 | 
			
		||||
https://{{ domain }}{% url 'registration:my_account_detail' %}
 | 
			
		||||
If you have a scholarship, registration is free, but you must submit a justification on the same page.
 | 
			
		||||
Si vous disposez d'une bourse, l'inscription est gratuite, mais vous devez soumettre un justificatif
 | 
			
		||||
sur la même page.
 | 
			
		||||
{% elif registration.is_coach and team.participation.tournament.price %}
 | 
			
		||||
Your team must now pay a participation fee of {{ team.participation.tournament.price }} € per student (supervisors are exempt). Students with scholarships are exempt⋅es from these fees.
 | 
			
		||||
You can track the status of payments on your team page:
 | 
			
		||||
Votre équipe doit désormais s'acquitter des frais de participation de {{ team.participation.tournament.price }} €
 | 
			
		||||
par élève (les encadrant⋅es sont exonéré⋅es). Les élèves qui disposent d'une bourse sont exonéré⋅es de ces frais.
 | 
			
		||||
Vous pouvez suivre l'état des paiements sur la page de votre équipe :
 | 
			
		||||
https://{{ domain }}{% url 'participation:team_detail' pk=team.pk %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if message %}
 | 
			
		||||
The organisers send you this message:
 | 
			
		||||
Les organisateurices vous adressent ce message :
 | 
			
		||||
 | 
			
		||||
{{ message }}
 | 
			
		||||
{% endif %}
 | 
			
		||||
The ETEAM team
 | 
			
		||||
Le comité d'organisation du TFJM²
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,37 @@
 | 
			
		||||
{% extends request.content_only|yesno:"empty.html,base.html" %}
 | 
			
		||||
 | 
			
		||||
{% load crispy_forms_filters i18n %}
 | 
			
		||||
{% load crispy_forms_filters crispy_forms_tags i18n %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
    <form method="post">
 | 
			
		||||
        <div id="form-content">
 | 
			
		||||
            {% csrf_token %}
 | 
			
		||||
            {{ form|crispy }}
 | 
			
		||||
            {{ participation_form|crispy }}
 | 
			
		||||
            {% crispy participation_form %}
 | 
			
		||||
        </div>
 | 
			
		||||
        <button class="btn btn-success" type="submit">{% trans "Update" %}</button>
 | 
			
		||||
    </form>
 | 
			
		||||
{% endblock content %}
 | 
			
		||||
 | 
			
		||||
{% block extrajavascript %}
 | 
			
		||||
    <script>
 | 
			
		||||
        const tournamentSelect = document.getElementById('id_tournament')
 | 
			
		||||
        const idfWarningBanner = document.getElementById('idf_warning_banner')
 | 
			
		||||
        const unifiedRegistrationTournamentIds = idfWarningBanner.getAttribute('data-tid-unified').split(',')
 | 
			
		||||
        if (idfWarningBanner.getAttribute('data-tid-unified') !== "") {
 | 
			
		||||
            function updateIDFWarningBannerVisibility() {
 | 
			
		||||
                const tid = tournamentSelect.value
 | 
			
		||||
                if (unifiedRegistrationTournamentIds.includes(tid))
 | 
			
		||||
                    idfWarningBanner.classList.remove('d-none')
 | 
			
		||||
                else
 | 
			
		||||
                    idfWarningBanner.classList.add('d-none')
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            tournamentSelect.addEventListener('change', updateIDFWarningBannerVisibility)
 | 
			
		||||
            updateIDFWarningBannerVisibility()
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            idfWarningBanner.classList.add('d-none')
 | 
			
		||||
        }
 | 
			
		||||
    </script>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
    {% blocktrans trimmed with amount=payment.amount team=payment.team.trigram tournament=payment.tournament.name %}
 | 
			
		||||
        We successfully received the payment of {{ amount }} € for your participation for the ETEAM in the team {{ team }}!
 | 
			
		||||
        We successfully received the payment of {{ amount }} € for your participation for the TFJM² in the team {{ team }} for the tournament {{ tournament }}!
 | 
			
		||||
    {% endblocktrans %}
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
@@ -32,13 +32,17 @@
 | 
			
		||||
    </ul>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
    {% trans "Please note that these dates may be subject to change. If your local organizers gave you different dates, trust them." %}
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
    {% trans "NB: This mail don't represent a payment receipt. The payer should receive a mail from Hello Asso. If it is not the case, please contact us if necessary" %}
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
<p>
 | 
			
		||||
    {% trans "The ETEAM team." %}<br>
 | 
			
		||||
    {% trans "The TFJM² team." %}<br>
 | 
			
		||||
</p>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
{% trans "Hi" %} {{ registration|safe }},
 | 
			
		||||
 | 
			
		||||
{% blocktrans trimmed with amount=payment.amount team=payment.team.trigram tournament=payment.tournament.name %}
 | 
			
		||||
We successfully received the payment of {{ amount }} € for your participation for the ETEAM in the team {{ team }}!
 | 
			
		||||
We successfully received the payment of {{ amount }} € for your participation for the TFJM² in the team {{ team }} for the tournament {{ tournament }}!
 | 
			
		||||
{% endblocktrans %}
 | 
			
		||||
 | 
			
		||||
{% trans "Your registration is now fully completed, and you can work on your solutions." %}
 | 
			
		||||
@@ -13,8 +13,10 @@ We successfully received the payment of {{ amount }} € for your participation
 | 
			
		||||
* {% trans "Problems draw:" %} {{ payment.tournament.solutions_draw|date }}
 | 
			
		||||
* {% trans "Tournament dates:" %} {% trans "From" %} {{ payment.tournament.date_start|date }} {% trans "to" %} {{ payment.tournament.date_end|date }}
 | 
			
		||||
 | 
			
		||||
{% trans "Please note that these dates may be subject to change. If your local organizers gave you different dates, trust them." %}
 | 
			
		||||
 | 
			
		||||
{% trans "NB: This mail don't represent a payment receipt. The payer should receive a mail from Hello Asso. If it is not the case, please contact us if necessary" %}
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
{% trans "The ETEAM team" %}
 | 
			
		||||
{% trans "The TFJM² team" %}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
    {% blocktrans trimmed with amount=payment.amount team=payment.team.trigram tournament=payment.tournament %}
 | 
			
		||||
    You are registered for the ETEAM. Your team {{ team }} has been successfully validated.
 | 
			
		||||
    You are registered for the TFJM² of {{ tournament }}. Your team {{ team }} has been successfully validated.
 | 
			
		||||
    To end your inscription, you must pay the amount of {{ amount }} €.
 | 
			
		||||
    {% endblocktrans %}
 | 
			
		||||
</p>
 | 
			
		||||
@@ -49,7 +49,7 @@
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
<p>
 | 
			
		||||
    {% trans "The ETEAM team." %}<br>
 | 
			
		||||
    {% trans "The TFJM² team." %}<br>
 | 
			
		||||
</p>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
{% trans "Hi" %} {{ registration|safe }},
 | 
			
		||||
 | 
			
		||||
{% blocktrans trimmed with amount=payment.amount team=payment.team.trigram tournament=payment.tournament %}
 | 
			
		||||
You are registered for the ETEAM. Your team {{ team }} has been successfully validated.
 | 
			
		||||
You are registered for the TFJM² of {{ tournament }}. Your team {{ team }} has been successfully validated.
 | 
			
		||||
To end your inscription, you must pay the amount of {{ amount }} €.
 | 
			
		||||
{% endblocktrans %}
 | 
			
		||||
{% if payment.grouped %}
 | 
			
		||||
@@ -19,4 +19,4 @@ https://{{ domain }}{% url "registration:update_payment" pk=payment.pk %}
 | 
			
		||||
{% trans "If you have any problem, feel free to contact us." %}
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
The ETEAM team
 | 
			
		||||
The TFJM² team
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@
 | 
			
		||||
 | 
			
		||||
% Specials
 | 
			
		||||
\newcommand{\writingsep}{\vrule height 4ex width 0pt}
 | 
			
		||||
\newcommand{\cdt}{\kern-0.5pt\ensuremath\cdot\kern-0.5pt}
 | 
			
		||||
 | 
			
		||||
% Page formating
 | 
			
		||||
\hoffset -1in
 | 
			
		||||
@@ -56,19 +57,23 @@ Autorisation d'enregistrement et de diffusion de l'image ({{ tournament.name }})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Je soussign\'e {{ registration|safe|default:"\dotfill" }}\\
 | 
			
		||||
Je soussign\'e\cdt{}e {{ registration|safe|default:"\dotfill" }}\\
 | 
			
		||||
demeurant au {{ registration.address|safe|default:"\dotfill" }}
 | 
			
		||||
 | 
			
		||||
\medskip
 | 
			
		||||
Cochez la/les cases correspondantes.\\
 | 
			
		||||
\medskip
 | 
			
		||||
 | 
			
		||||
\fbox{\textcolor{white}{A}}  Autorise l'association Animath, \`a l'occasion du $\mathbb{TFJM}^2$ de {{ tournament.name }}
 | 
			
		||||
du {{ tournament.date_start }} au {{ tournament.date_end }} à : {{ tournament.place }}, \`a me photographier ou \`a me
 | 
			
		||||
filmer et \`a diffuser les photos et/ou les vid\'eos r\'ealis\'ees \`a cette occasion sur son site et sur les sites
 | 
			
		||||
partenaires. D\'eclare c\'eder \`a titre gracieux \`a Animath le droit d’utiliser mon image sur tous ses supports
 | 
			
		||||
d'information : brochures, sites web, r\'eseaux sociaux. Animath devient, par la pr\'esente, cessionnaire des droits
 | 
			
		||||
pendant toute la dur\'ee pour laquelle ont \'et\'e acquis les droits d'auteur de ces photographies.\\
 | 
			
		||||
\fbox{\textcolor{white}{A}}  Autorise l'association Animath, \`a l'occasion du $\mathbb{TFJM}^2$
 | 
			
		||||
{% if tournament.unified_registration %} dans
 | 
			
		||||
l'un des tournois d'Île-de-France (selon sélection : du 26 au 27 avril 2025, du 3 au 4 mai 2025, ou du 10 au 11 mai 2025)
 | 
			
		||||
{% else %} de
 | 
			
		||||
{{ tournament.name }} du {{ tournament.date_start }} au {{ tournament.date_end }} à : {{ tournament.place }},
 | 
			
		||||
{% endif %} \`a
 | 
			
		||||
me photographier ou \`a me filmer et \`a diffuser les photos et/ou les vid\'eos r\'ealis\'ees \`a cette occasion
 | 
			
		||||
sur son site et sur les sites partenaires. D\'eclare c\'eder \`a titre gracieux \`a Animath le droit d’utiliser mon
 | 
			
		||||
image sur tous ses supports d'information : brochures, sites web, r\'eseaux sociaux. Animath devient, par la pr\'esente,
 | 
			
		||||
cessionnaire des droits pendant toute la dur\'ee pour laquelle ont \'et\'e acquis les droits d'auteur de ces photographies.\\
 | 
			
		||||
 
 | 
			
		||||
\medskip
 | 
			
		||||
Animath s'engage, conform\'ement aux dispositions l\'egales en vigueur relatives au droit \`a l'image, \`a ce que la
 | 
			
		||||
@@ -98,7 +103,7 @@ Animath, IHP, 11 rue Pierre et Marie Curie, 75231 Paris cedex 05.\\
 | 
			
		||||
 | 
			
		||||
\bigskip
 | 
			
		||||
 | 
			
		||||
Signature pr\'ec\'ed\'ee de la mention \og lu et approuv\'e \fg{}
 | 
			
		||||
Signature pr\'ec\'ed\'ee de la mention « lu et approuv\'e »
 | 
			
		||||
 | 
			
		||||
\medskip
 | 
			
		||||
 | 
			
		||||
@@ -106,7 +111,7 @@ Signature pr\'ec\'ed\'ee de la mention \og lu et approuv\'e \fg{}
 | 
			
		||||
 | 
			
		||||
\begin{minipage}[c]{0.5\textwidth}
 | 
			
		||||
 | 
			
		||||
\underline{Le participant :}\\
 | 
			
		||||
\underline{La/le participant\cdt{}e :}\\
 | 
			
		||||
 | 
			
		||||
Fait \`a  :\\
 | 
			
		||||
le
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@
 | 
			
		||||
 | 
			
		||||
% Specials
 | 
			
		||||
\newcommand{\writingsep}{\vrule height 4ex width 0pt}
 | 
			
		||||
\newcommand{\cdt}{\kern-0.5pt\ensuremath\cdot\kern-0.5pt}
 | 
			
		||||
 | 
			
		||||
% Page formating
 | 
			
		||||
\hoffset -1in
 | 
			
		||||
@@ -57,20 +58,25 @@ Autorisation d'enregistrement et de diffusion de l'image
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Je soussign\'e  \dotfill (p\`ere, m\`ere, responsable l\'egal) \\
 | 
			
		||||
agissant en qualit\'e de repr\'esentant de {{ registration|safe|default:"\dotfill" }}\\
 | 
			
		||||
Je soussign\'e\cdt{}e  \dotfill (p\`ere, m\`ere, responsable l\'egal) \\
 | 
			
		||||
agissant en qualit\'e de repr\'esentant\cdt{}e de {{ registration|safe|default:"\dotfill" }}\\
 | 
			
		||||
demeurant au {{ registration.address|safe|default:"\dotfill" }}
 | 
			
		||||
 | 
			
		||||
\medskip
 | 
			
		||||
Cochez la/les cases correspondantes.\\
 | 
			
		||||
\medskip
 | 
			
		||||
 | 
			
		||||
 \fbox{\textcolor{white}{A}}  Autorise l'association Animath, \`a l'occasion du $\mathbb{TFJM}^2$ de {{ tournament.name }}
 | 
			
		||||
 du {{ tournament.date_start }} au {{ tournament.date_end }} à : {{ tournament.place }}, \`a photographier ou \`a filmer
 | 
			
		||||
 l'enfant et \`a diffuser les photos et/ou les vid\'eos r\'ealis\'ees \`a cette occasion sur son site et sur les sites
 | 
			
		||||
 partenaires. D\'eclare c\'eder \`a titre gracieux \`a Animath le droit d’utiliser l'image de l'enfant sur tous ses
 | 
			
		||||
 supports d'information : brochures, sites web, r\'eseaux sociaux. Animath devient, par la pr\'esente, cessionnaire des
 | 
			
		||||
 droits pendant toute la dur\'ee pour laquelle ont \'et\'e acquis les droits d'auteur de ces photographies.\\
 | 
			
		||||
 \fbox{\textcolor{white}{A}}  Autorise l'association Animath, \`a l'occasion du $\mathbb{TFJM}^2$
 | 
			
		||||
 {% if tournament.unified_registration %} dans
 | 
			
		||||
 l'un des tournois d'Île-de-France (selon sélection : du 26 au 27 avril 2025, du 3 au 4 mai 2025, ou du 10 au 11 mai 2025)
 | 
			
		||||
 {% else %} de
 | 
			
		||||
 {{ tournament.name }} du {{ tournament.date_start }} au {{ tournament.date_end }} à : {{ tournament.place }},
 | 
			
		||||
 {% endif %} \`a
 | 
			
		||||
 photographier ou \`a filmer l'enfant et \`a diffuser les photos et/ou les vid\'eos r\'ealis\'ees \`a cette occasion
 | 
			
		||||
 sur son site et sur les sites partenaires. D\'eclare c\'eder \`a titre gracieux \`a Animath le droit d’utiliser l'image
 | 
			
		||||
 de l'enfant sur tous ses supports d'information : brochures, sites web, r\'eseaux sociaux. Animath devient, par la
 | 
			
		||||
 pr\'esente, cessionnaire des droits pendant toute la dur\'ee pour laquelle ont \'et\'e acquis les droits d'auteur de
 | 
			
		||||
ces photographies.\\
 | 
			
		||||
 
 | 
			
		||||
\medskip
 | 
			
		||||
Animath s'engage, conform\'ement aux dispositions l\'egales en vigueur relatives au droit \`a l'image, \`a ce que la
 | 
			
		||||
@@ -100,14 +106,14 @@ Animath, IHP, 11 rue Pierre et Marie Curie, 75231 Paris cedex 05.\\
 | 
			
		||||
 
 | 
			
		||||
 \bigskip
 | 
			
		||||
 | 
			
		||||
Signatures pr\'ec\'ed\'ees de la mention \og lu et approuv\'e \fg{}
 | 
			
		||||
Signatures pr\'ec\'ed\'ees de la mention « lu et approuv\'e »
 | 
			
		||||
 | 
			
		||||
\medskip
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
\begin{minipage}[c]{0.5\textwidth}
 | 
			
		||||
 | 
			
		||||
\underline{Le responsable l\'egal :}\\
 | 
			
		||||
\underline{La/le responsable l\'egal\cdt{}e :}\\
 | 
			
		||||
 | 
			
		||||
Fait \`a  :\\
 | 
			
		||||
le :
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@
 | 
			
		||||
 | 
			
		||||
% Specials
 | 
			
		||||
\newcommand{\writingsep}{\vrule height 4ex width 0pt}
 | 
			
		||||
\newcommand{\cdt}{\kern-0.5pt\ensuremath\cdot\kern-0.5pt}
 | 
			
		||||
 | 
			
		||||
% Page formating
 | 
			
		||||
\hoffset -1in
 | 
			
		||||
@@ -45,16 +46,25 @@
 | 
			
		||||
\Large \bf Autorisation parentale pour les mineurs ({{ tournament.name }})
 | 
			
		||||
\end{center}
 | 
			
		||||
 | 
			
		||||
Je soussigné(e) \hrulefill,\\
 | 
			
		||||
responsable légal, demeurant \writingsep\hrulefill\\
 | 
			
		||||
Je soussigné\cdt{}e \hrulefill,\\
 | 
			
		||||
responsable légal\cdt{}e, demeurant \writingsep\hrulefill\\
 | 
			
		||||
\writingsep\hrulefill,\\
 | 
			
		||||
\writingsep autorise {{ registration|default:"\hrulefill" }},\\
 | 
			
		||||
né(e) le {{ registration.birth_date }},
 | 
			
		||||
à participer au Tournoi Français des Jeunes Mathématiciennes et Mathématiciens ($\mathbb{TFJM}^2$) organisé \`a :
 | 
			
		||||
né\cdt{}e le {{ registration.birth_date|default:"\underline{\phantom{dd/mm/aaaa} }" }},
 | 
			
		||||
à participer au Tournoi Français des Jeunes Mathématiciennes et Mathématiciens ($\mathbb{TFJM}^2$)
 | 
			
		||||
{% if tournament.unified_registration %} dans l'un des tournois d'Île-de-France selon sélection :
 | 
			
		||||
\begin{itemize}
 | 
			
		||||
    \item Île-de-France 1, du 26 au 27 avril 2025 ;
 | 
			
		||||
    \item Île-de-France 2, du 3 au 4 mai 2025 ;
 | 
			
		||||
    \item Île-de-France 3, du 10 au 11 mai 2025. 
 | 
			
		||||
\end{itemize}
 | 
			
		||||
{% else %}
 | 
			
		||||
organisé \`a :
 | 
			
		||||
{{ tournament.place }}, du {{ tournament.date_start }} au {{ tournament.date_end }}.
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
Iel se rendra au lieu indiqu\'e ci-dessus le samedi matin et quittera les lieux l'après-midi du dimanche par
 | 
			
		||||
ses propres moyens et sous la responsabilité du représentant légal.
 | 
			
		||||
ses propres moyens et sous la responsabilité du/de la représentant\cdt{}e légal\cdt{}e.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -30,6 +30,15 @@
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="alert alert-warning">
 | 
			
		||||
        <h3 class="alert-heading"><i class="fas fa-warning"></i> {% trans "New in 2025" %}</h3>
 | 
			
		||||
        {% blocktrans trimmed %}
 | 
			
		||||
        Registration for Ile-de-France tournaments is now unified.
 | 
			
		||||
        If you live in or near the Ile-de-France region, your registration will be pooled with each of the region's tournaments,
 | 
			
		||||
        and the organizers will take care of team allocation. However, date constraints can be indicated in the motivation letter.
 | 
			
		||||
        {% endblocktrans %}
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="jumbotron p-5 border rounded-5">
 | 
			
		||||
        <h5 class="display-4">{% trans "How does it work?" %}</h5>
 | 
			
		||||
        <p>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user