Drop django-address dependency and keep only street, zip code and city (/!\ Breaking commit, can't upgrade)
This commit is contained in:
parent
f7eddd289b
commit
63a10c1be5
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 3.0.11 on 2021-01-21 21:06
|
||||
# Generated by Django 3.2.13 on 2023-01-10 19:22
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
@ -26,7 +26,7 @@ class Migration(migrations.Migration):
|
|||
('data', models.TextField(blank=True, default='', verbose_name='new data')),
|
||||
('action', models.CharField(choices=[('create', 'create'), ('edit', 'edit'), ('delete', 'delete')], default='edit', max_length=16, verbose_name='action')),
|
||||
('timestamp', models.DateTimeField(default=django.utils.timezone.now, verbose_name='timestamp')),
|
||||
('model', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='contenttypes.ContentType', verbose_name='model')),
|
||||
('model', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='contenttypes.contenttype', verbose_name='model')),
|
||||
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name='user')),
|
||||
],
|
||||
options={
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
# Generated by Django 3.0.11 on 2021-01-22 18:26
|
||||
# Generated by Django 3.2.13 on 2023-01-10 19:22
|
||||
|
||||
import datetime
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
import participation.models
|
||||
|
||||
|
@ -47,8 +48,8 @@ class Migration(migrations.Migration):
|
|||
name='Passage',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('place', models.CharField(default='Non indiqué', help_text='Where the solution is presented?', max_length=255, verbose_name='place')),
|
||||
('solution_number', models.PositiveSmallIntegerField(choices=[(1, 'Problem #1'), (2, 'Problem #2'), (3, 'Problem #3'), (4, 'Problem #4'), (5, 'Problem #5'), (6, 'Problem #6'), (7, 'Problem #7'), (8, 'Problem #8')], verbose_name='defended solution')),
|
||||
('defender_penalties', 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')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'passage',
|
||||
|
@ -61,6 +62,7 @@ class Migration(migrations.Migration):
|
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('round', models.PositiveSmallIntegerField(choices=[(1, 'Round 1'), (2, 'Round 2')], verbose_name='round')),
|
||||
('bbb_url', models.CharField(blank=True, default='', help_text='The link of the BBB visio for this pool.', max_length=255, verbose_name='BigBlueButton URL')),
|
||||
('results_available', models.BooleanField(default=False, help_text='Check this case when results become accessible to teams. They stay accessible to you. Only averages are given.', verbose_name='results available')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'pool',
|
||||
|
@ -73,11 +75,12 @@ class Migration(migrations.Migration):
|
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('problem', models.PositiveSmallIntegerField(choices=[(1, 'Problem #1'), (2, 'Problem #2'), (3, 'Problem #3'), (4, 'Problem #4'), (5, 'Problem #5'), (6, 'Problem #6'), (7, 'Problem #7'), (8, 'Problem #8')], verbose_name='problem')),
|
||||
('final_solution', models.BooleanField(default=False, verbose_name='solution for the final tournament')),
|
||||
('file', models.FileField(blank=True, default='', unique=True, upload_to=participation.models.get_solution_filename, verbose_name='file')),
|
||||
('file', models.FileField(unique=True, upload_to=participation.models.get_solution_filename, verbose_name='file')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'solution',
|
||||
'verbose_name_plural': 'solutions',
|
||||
'ordering': ('participation__team__trigram', 'final_solution', 'problem'),
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
|
@ -85,11 +88,12 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('type', models.PositiveSmallIntegerField(choices=[(1, 'opponent'), (2, 'reporter')])),
|
||||
('file', models.FileField(blank=True, default='', unique=True, upload_to=participation.models.get_synthesis_filename, verbose_name='file')),
|
||||
('file', models.FileField(unique=True, upload_to=participation.models.get_synthesis_filename, verbose_name='file')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'synthesis',
|
||||
'verbose_name_plural': 'syntheses',
|
||||
'ordering': ('passage__pool__round', 'type'),
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
|
@ -113,8 +117,10 @@ class Migration(migrations.Migration):
|
|||
('name', models.CharField(max_length=255, unique=True, verbose_name='name')),
|
||||
('date_start', models.DateField(default=datetime.date.today, verbose_name='start')),
|
||||
('date_end', models.DateField(default=datetime.date.today, verbose_name='end')),
|
||||
('place', models.CharField(max_length=255, verbose_name='place')),
|
||||
('max_teams', models.PositiveSmallIntegerField(default=9, verbose_name='max team count')),
|
||||
('price', models.PositiveSmallIntegerField(default=21, verbose_name='price')),
|
||||
('remote', models.BooleanField(default=False, verbose_name='remote')),
|
||||
('inscription_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date for registrations')),
|
||||
('solution_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date to upload solutions')),
|
||||
('solutions_draw', models.DateTimeField(default=django.utils.timezone.now, verbose_name='random draw for solutions')),
|
||||
|
@ -129,4 +135,17 @@ class Migration(migrations.Migration):
|
|||
'verbose_name_plural': 'tournaments',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Tweak',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('diff', models.IntegerField(help_text='Score to add/remove on the final score', verbose_name='difference')),
|
||||
('participation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tweaks', to='participation.participation', verbose_name='participation')),
|
||||
('pool', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='participation.pool', verbose_name='passage')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'tweak',
|
||||
'verbose_name_plural': 'tweaks',
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,115 +0,0 @@
|
|||
# Generated by Django 3.0.11 on 2021-01-22 18:26
|
||||
|
||||
import address.models
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('registration', '0001_initial'),
|
||||
('address', '0003_auto_20200830_1851'),
|
||||
('participation', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='tournament',
|
||||
name='organizers',
|
||||
field=models.ManyToManyField(related_name='organized_tournaments', to='registration.VolunteerRegistration', verbose_name='organizers'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tournament',
|
||||
name='place',
|
||||
field=address.models.AddressField(on_delete=django.db.models.deletion.CASCADE, to='address.Address', verbose_name='place'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='team',
|
||||
index=models.Index(fields=['trigram'], name='participati_trigram_239255_idx'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='synthesis',
|
||||
name='participation',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='participation.Participation', verbose_name='participation'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='synthesis',
|
||||
name='passage',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='syntheses', to='participation.Passage', verbose_name='passage'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='solution',
|
||||
name='participation',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='solutions', to='participation.Participation', verbose_name='participation'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='pool',
|
||||
name='juries',
|
||||
field=models.ManyToManyField(related_name='jury_in', to='registration.VolunteerRegistration', verbose_name='juries'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='pool',
|
||||
name='participations',
|
||||
field=models.ManyToManyField(related_name='pools', to='participation.Participation', verbose_name='participations'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='pool',
|
||||
name='tournament',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pools', to='participation.Tournament', verbose_name='tournament'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='passage',
|
||||
name='defender',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='participation.Participation', verbose_name='defender'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='passage',
|
||||
name='opponent',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='participation.Participation', verbose_name='opponent'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='passage',
|
||||
name='pool',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='passages', to='participation.Pool', verbose_name='pool'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='passage',
|
||||
name='reporter',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='participation.Participation', verbose_name='reporter'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='participation',
|
||||
name='team',
|
||||
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='participation.Team', verbose_name='team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='participation',
|
||||
name='tournament',
|
||||
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='participation.Tournament', verbose_name='tournament'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='note',
|
||||
name='jury',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notes', to='registration.VolunteerRegistration', verbose_name='jury'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='note',
|
||||
name='passage',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notes', to='participation.Passage', verbose_name='passage'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='tournament',
|
||||
index=models.Index(fields=['name', 'date_start', 'date_end'], name='participati_name_b43174_idx'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='synthesis',
|
||||
unique_together={('participation', 'passage', 'type')},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='solution',
|
||||
unique_together={('participation', 'problem', 'final_solution')},
|
||||
),
|
||||
]
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.0.11 on 2021-01-23 18:36
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('participation', '0002_auto_20210122_1926'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='tournament',
|
||||
name='remote',
|
||||
field=models.BooleanField(default=False, verbose_name='remote'),
|
||||
),
|
||||
]
|
|
@ -1,18 +0,0 @@
|
|||
# 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'),
|
||||
),
|
||||
]
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.1.7 on 2021-04-10 07:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('participation', '0004_passage_defender_penalties'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='pool',
|
||||
name='results_available',
|
||||
field=models.BooleanField(default=False, help_text='Check this case when results become accessible to teams. They stay accessible to you. Only averages are given.', verbose_name='results available'),
|
||||
),
|
||||
]
|
|
@ -1,21 +0,0 @@
|
|||
# Generated by Django 3.2.13 on 2022-04-26 11:46
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('participation', '0005_pool_results_available'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='solution',
|
||||
options={'ordering': ('participation__team__trigram', 'final_solution', 'problem'), 'verbose_name': 'solution', 'verbose_name_plural': 'solutions'},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='synthesis',
|
||||
options={'ordering': ('passage__pool__round', 'type'), 'verbose_name': 'synthesis', 'verbose_name_plural': 'syntheses'},
|
||||
),
|
||||
]
|
|
@ -1,17 +0,0 @@
|
|||
# Generated by Django 3.2.13 on 2022-04-26 19:42
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('participation', '0006_auto_20220426_1346'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='passage',
|
||||
name='place',
|
||||
),
|
||||
]
|
|
@ -1,24 +0,0 @@
|
|||
# Generated by Django 3.2.13 on 2022-04-29 16:53
|
||||
|
||||
from django.db import migrations, models
|
||||
import participation.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('participation', '0007_remove_passage_place'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='solution',
|
||||
name='file',
|
||||
field=models.FileField(unique=True, upload_to=participation.models.get_solution_filename, verbose_name='file'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='synthesis',
|
||||
name='file',
|
||||
field=models.FileField(unique=True, upload_to=participation.models.get_synthesis_filename, verbose_name='file'),
|
||||
),
|
||||
]
|
|
@ -1,27 +0,0 @@
|
|||
# Generated by Django 3.2.13 on 2022-05-15 14:40
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('participation', '0008_auto_20220429_1853'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Tweak',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('diff', models.IntegerField(help_text='Score to add/remove on the final score', verbose_name='difference')),
|
||||
('participation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tweaks', to='participation.participation', verbose_name='participation')),
|
||||
('pool', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='participation.pool', verbose_name='passage')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'tweak',
|
||||
'verbose_name_plural': 'tweaks',
|
||||
},
|
||||
),
|
||||
]
|
|
@ -4,7 +4,6 @@
|
|||
from datetime import date
|
||||
import os
|
||||
|
||||
from address.models import AddressField
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.validators import RegexValidator
|
||||
|
@ -143,7 +142,8 @@ class Tournament(models.Model):
|
|||
default=date.today,
|
||||
)
|
||||
|
||||
place = AddressField(
|
||||
place = models.CharField(
|
||||
max_length=255,
|
||||
verbose_name=_("place"),
|
||||
)
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Generated by Django 3.0.11 on 2021-01-22 18:26
|
||||
# Generated by Django 3.2.13 on 2023-01-10 19:22
|
||||
|
||||
import address.models
|
||||
import datetime
|
||||
from django.conf import settings
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import phonenumber_field.modelfields
|
||||
|
@ -14,10 +14,9 @@ class Migration(migrations.Migration):
|
|||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
('address', '0003_auto_20200830_1851'),
|
||||
('participation', '0001_initial'),
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
@ -27,7 +26,7 @@ class Migration(migrations.Migration):
|
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('give_contact_to_animath', models.BooleanField(default=False, verbose_name='Grant Animath to contact me in the future about other actions')),
|
||||
('email_confirmed', models.BooleanField(default=False, verbose_name='email confirmed')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_registration.registration_set+', to='contenttypes.ContentType')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_registration.registration_set+', to='contenttypes.contenttype')),
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='user')),
|
||||
],
|
||||
options={
|
||||
|
@ -38,13 +37,16 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='ParticipantRegistration',
|
||||
fields=[
|
||||
('registration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.Registration')),
|
||||
('registration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.registration')),
|
||||
('birth_date', models.DateField(default=datetime.date.today, verbose_name='birth date')),
|
||||
('gender', models.CharField(choices=[('female', 'Female'), ('male', 'Male'), ('other', 'Other')], default='other', max_length=6, verbose_name='gender')),
|
||||
('address', models.CharField(max_length=255, verbose_name='address')),
|
||||
('zip_code', models.PositiveSmallIntegerField(validators=[django.core.validators.MinValueValidator(1000), django.core.validators.MaxValueValidator(99999)], verbose_name='zip code')),
|
||||
('city', models.CharField(max_length=255, verbose_name='city')),
|
||||
('phone_number', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, region=None, verbose_name='phone number')),
|
||||
('health_issues', models.TextField(blank=True, help_text='You can indicate here your allergies or anything that is important to know for organizers', verbose_name='health issues')),
|
||||
('photo_authorization', models.FileField(blank=True, default='', upload_to=registration.models.get_random_photo_filename, verbose_name='photo authorization')),
|
||||
('address', address.models.AddressField(default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='address.Address', verbose_name='address')),
|
||||
('team', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='participants', to='participation.Team', verbose_name='team')),
|
||||
('team', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='participants', to='participation.team', verbose_name='team')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
|
@ -55,7 +57,7 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='VolunteerRegistration',
|
||||
fields=[
|
||||
('registration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.Registration')),
|
||||
('registration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.registration')),
|
||||
('professional_activity', models.TextField(verbose_name='professional activity')),
|
||||
],
|
||||
options={
|
||||
|
@ -67,7 +69,7 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='AdminRegistration',
|
||||
fields=[
|
||||
('volunteerregistration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.VolunteerRegistration')),
|
||||
('volunteerregistration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.volunteerregistration')),
|
||||
('role', models.TextField(verbose_name='role of the administrator')),
|
||||
],
|
||||
options={
|
||||
|
@ -79,7 +81,7 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='CoachRegistration',
|
||||
fields=[
|
||||
('participantregistration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.ParticipantRegistration')),
|
||||
('participantregistration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.participantregistration')),
|
||||
('professional_activity', models.TextField(verbose_name='professional activity')),
|
||||
],
|
||||
options={
|
||||
|
@ -91,7 +93,7 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='StudentRegistration',
|
||||
fields=[
|
||||
('participantregistration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.ParticipantRegistration')),
|
||||
('participantregistration_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='registration.participantregistration')),
|
||||
('student_class', models.IntegerField(choices=[(12, '12th grade'), (11, '11th grade'), (10, '10th grade or lower')], verbose_name='student class')),
|
||||
('school', models.CharField(max_length=255, verbose_name='school')),
|
||||
('responsible_name', models.CharField(default='', max_length=255, verbose_name='responsible name')),
|
||||
|
@ -110,11 +112,11 @@ class Migration(migrations.Migration):
|
|||
name='Payment',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('type', models.CharField(blank=True, choices=[('', 'No payment'), ('helloasso', 'Hello Asso'), ('scholarship', 'Scholarship'), ('bank_transfer', 'Bank transfer'), ('free', 'The tournament is free')], default='', max_length=16, verbose_name='type')),
|
||||
('type', models.CharField(blank=True, choices=[('', 'No payment'), ('helloasso', 'Hello Asso'), ('scholarship', 'Scholarship'), ('bank_transfer', 'Bank transfer'), ('other', 'Other (please indicate)'), ('free', 'The tournament is free')], default='', max_length=16, verbose_name='type')),
|
||||
('scholarship_file', models.FileField(blank=True, default='', help_text='only if you have a scholarship.', upload_to=registration.models.get_scholarship_filename, verbose_name='scholarship file')),
|
||||
('additional_information', models.TextField(blank=True, default='', help_text='To help us to find your payment.', verbose_name='additional information')),
|
||||
('valid', models.BooleanField(default=False, null=True, verbose_name='valid')),
|
||||
('registration', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='payment', to='registration.ParticipantRegistration', verbose_name='registration')),
|
||||
('registration', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='payment', to='registration.participantregistration', verbose_name='registration')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'payment',
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.0.11 on 2021-01-23 20:52
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('registration', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='participantregistration',
|
||||
name='health_issues',
|
||||
field=models.TextField(blank=True, help_text='You can indicate here your allergies or anything that is important to know for organizers', verbose_name='health issues'),
|
||||
),
|
||||
]
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.2.13 on 2022-04-26 11:46
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('registration', '0002_participantregistration_health_issues'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='payment',
|
||||
name='type',
|
||||
field=models.CharField(blank=True, choices=[('', 'No payment'), ('helloasso', 'Hello Asso'), ('scholarship', 'Scholarship'), ('bank_transfer', 'Bank transfer'), ('other', 'Other (please indicate)'), ('free', 'The tournament is free')], default='', max_length=16, verbose_name='type'),
|
||||
),
|
||||
]
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
from datetime import date
|
||||
|
||||
from address.models import AddressField
|
||||
from django.contrib.sites.models import Site
|
||||
from django.core.validators import MaxValueValidator, MinValueValidator
|
||||
from django.db import models
|
||||
from django.template import loader
|
||||
from django.urls import reverse_lazy
|
||||
|
@ -139,10 +139,19 @@ class ParticipantRegistration(Registration):
|
|||
default="other",
|
||||
)
|
||||
|
||||
address = AddressField(
|
||||
address = models.CharField(
|
||||
max_length=255,
|
||||
verbose_name=_("address"),
|
||||
null=True,
|
||||
default=None,
|
||||
)
|
||||
|
||||
zip_code = models.PositiveSmallIntegerField(
|
||||
verbose_name=_("zip code"),
|
||||
validators=[MinValueValidator(1000), MaxValueValidator(99999)],
|
||||
)
|
||||
|
||||
city = models.CharField(
|
||||
max_length=255,
|
||||
verbose_name=_("city"),
|
||||
)
|
||||
|
||||
phone_number = PhoneNumberField(
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<dd class="col-sm-6">{{ user_object.registration.get_gender_display }}</dd>
|
||||
|
||||
<dt class="col-sm-6 text-right">{% trans "Address:" %}</dt>
|
||||
<dd class="col-sm-6">{{ user_object.registration.address }}</dd>
|
||||
<dd class="col-sm-6">{{ user_object.registration.address }}, {{ user_object.registration.zip_code|stringformat:'05d' }} {{ user_object.registration.city }}</dd>
|
||||
|
||||
<dt class="col-sm-6 text-right">{% trans "Phone number:" %}</dt>
|
||||
<dd class="col-sm-6">{{ user_object.registration.phone_number }}</dd>
|
||||
|
|
|
@ -131,7 +131,9 @@ class TestRegistration(TestCase):
|
|||
school="God",
|
||||
birth_date="2000-01-01",
|
||||
gender="other",
|
||||
address="1 Rue de Rivoli, 75001 Paris, France",
|
||||
address="1 Rue de Rivoli",
|
||||
zip_code=75001,
|
||||
city="Paris",
|
||||
phone_number="0123456789",
|
||||
responsible_name="Toto",
|
||||
responsible_phone="0123456789",
|
||||
|
@ -155,7 +157,9 @@ class TestRegistration(TestCase):
|
|||
school="God",
|
||||
birth_date="2000-01-01",
|
||||
gender="other",
|
||||
address="1 Rue de Rivoli, 75001 Paris, France",
|
||||
address="1 Rue de Rivoli",
|
||||
zip_code=75001,
|
||||
city="Paris",
|
||||
phone_number="0123456789",
|
||||
responsible_name="Toto",
|
||||
responsible_phone="0123456789",
|
||||
|
@ -176,7 +180,9 @@ class TestRegistration(TestCase):
|
|||
role="coach",
|
||||
birth_date="1980-01-01",
|
||||
gender="other",
|
||||
address="1 Rue de Rivoli, 75001 Paris, France",
|
||||
address="1 Rue de Rivoli",
|
||||
zip_code=75001,
|
||||
city="Paris",
|
||||
phone_number="0123456789",
|
||||
professional_activity="God",
|
||||
give_contact_to_animath=True,
|
||||
|
@ -255,10 +261,11 @@ class TestRegistration(TestCase):
|
|||
|
||||
for user, data in [(self.user, dict(role="Bot")),
|
||||
(self.student, dict(student_class=11, school="Sky", birth_date="2001-01-01",
|
||||
gender="female", address="1 Rue de Rivoli, 75001 Paris, France",
|
||||
responsible_name="Toto", responsible_email="toto@example.com")),
|
||||
gender="female", address="1 Rue de Rivoli", zip_code=75001,
|
||||
city="Paris", responsible_name="Toto",
|
||||
responsible_email="toto@example.com")),
|
||||
(self.coach, dict(professional_activity="God", birth_date="2001-01-01",
|
||||
gender="male", address="1 Rue de Rivoli, 75001 Paris, France"))]:
|
||||
gender="male", address="1 Rue de Rivoli", zip_code=75001, city="Paris"))]:
|
||||
response = self.client.get(reverse("registration:update_user", args=(user.pk,)))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: TFJM\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-05-15 16:40+0200\n"
|
||||
"POT-Creation-Date: 2023-01-10 20:22+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -100,7 +100,7 @@ msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
|
|||
msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
|
||||
|
||||
#: apps/participation/admin.py:19 apps/participation/models.py:314
|
||||
#: apps/participation/tables.py:44 apps/registration/models.py:359
|
||||
#: apps/participation/tables.py:44 apps/registration/models.py:368
|
||||
msgid "valid"
|
||||
msgstr "valide"
|
||||
|
||||
|
@ -108,7 +108,7 @@ msgstr "valide"
|
|||
msgid "This name is already used."
|
||||
msgstr "Ce nom est déjà utilisé."
|
||||
|
||||
#: apps/participation/forms.py:37 apps/participation/models.py:41
|
||||
#: apps/participation/forms.py:37 apps/participation/models.py:40
|
||||
msgid "The trigram must be composed of three uppercase letters."
|
||||
msgstr "Le trigramme doit être composé de trois lettres majuscules."
|
||||
|
||||
|
@ -173,52 +173,53 @@ msgstr "L'utilisateur⋅rice suivant n'a pas été trouvé :"
|
|||
|
||||
#: apps/participation/forms.py:267
|
||||
msgid "The defender, the opponent and the reporter must be different."
|
||||
msgstr "Læ défenseur⋅se, l'opposant⋅e et læ rapporteur⋅e doivent être différent⋅es."
|
||||
msgstr ""
|
||||
"Læ défenseur⋅se, l'opposant⋅e et læ rapporteur⋅e doivent être différent⋅es."
|
||||
|
||||
#: apps/participation/forms.py:271
|
||||
msgid "This defender did not work on this problem."
|
||||
msgstr "Ce⋅tte défenseur⋅se ne travaille pas sur ce problème."
|
||||
|
||||
#: apps/participation/models.py:34 apps/participation/models.py:132
|
||||
#: apps/participation/models.py:33 apps/participation/models.py:131
|
||||
#: apps/participation/tables.py:17 apps/participation/tables.py:34
|
||||
msgid "name"
|
||||
msgstr "nom"
|
||||
|
||||
#: apps/participation/models.py:40 apps/participation/tables.py:39
|
||||
#: apps/participation/models.py:39 apps/participation/tables.py:39
|
||||
msgid "trigram"
|
||||
msgstr "trigramme"
|
||||
|
||||
#: apps/participation/models.py:48
|
||||
#: apps/participation/models.py:47
|
||||
msgid "access code"
|
||||
msgstr "code d'accès"
|
||||
|
||||
#: apps/participation/models.py:49
|
||||
#: apps/participation/models.py:48
|
||||
msgid "The access code let other people to join the team."
|
||||
msgstr "Le code d'accès permet aux autres participants de rejoindre l'équipe."
|
||||
|
||||
#: apps/participation/models.py:53
|
||||
#: apps/participation/models.py:52
|
||||
msgid "motivation letter"
|
||||
msgstr "lettre de motivation"
|
||||
|
||||
#: apps/participation/models.py:119
|
||||
#: apps/participation/models.py:118
|
||||
#, python-brace-format
|
||||
msgid "Team {name} ({trigram})"
|
||||
msgstr "Équipe {name} ({trigram})"
|
||||
|
||||
#: apps/participation/models.py:122 apps/participation/models.py:299
|
||||
#: apps/participation/models.py:121 apps/participation/models.py:299
|
||||
#: apps/registration/models.py:123
|
||||
msgid "team"
|
||||
msgstr "équipe"
|
||||
|
||||
#: apps/participation/models.py:123 apps/participation/tables.py:85
|
||||
#: apps/participation/models.py:122 apps/participation/tables.py:85
|
||||
msgid "teams"
|
||||
msgstr "équipes"
|
||||
|
||||
#: apps/participation/models.py:137
|
||||
#: apps/participation/models.py:136
|
||||
msgid "start"
|
||||
msgstr "début"
|
||||
|
||||
#: apps/participation/models.py:142
|
||||
#: apps/participation/models.py:141
|
||||
msgid "end"
|
||||
msgstr "fin"
|
||||
|
||||
|
@ -306,7 +307,7 @@ msgid "Participation of the team {name} ({trigram})"
|
|||
msgstr "Participation de l'équipe {name} ({trigram})"
|
||||
|
||||
#: apps/participation/models.py:331 apps/participation/models.py:528
|
||||
#: apps/participation/models.py:555 apps/participation/models.py:593
|
||||
#: apps/participation/models.py:558 apps/participation/models.py:596
|
||||
msgid "participation"
|
||||
msgstr "participation"
|
||||
|
||||
|
@ -365,7 +366,7 @@ msgstr "poules"
|
|||
msgid "defended solution"
|
||||
msgstr "solution défendue"
|
||||
|
||||
#: apps/participation/models.py:411 apps/participation/models.py:562
|
||||
#: apps/participation/models.py:411 apps/participation/models.py:565
|
||||
#, python-brace-format
|
||||
msgid "Problem #{problem}"
|
||||
msgstr "Problème n°{problem}"
|
||||
|
@ -374,11 +375,11 @@ msgstr "Problème n°{problem}"
|
|||
msgid "defender"
|
||||
msgstr "défenseur"
|
||||
|
||||
#: apps/participation/models.py:425 apps/participation/models.py:605
|
||||
#: apps/participation/models.py:425 apps/participation/models.py:608
|
||||
msgid "opponent"
|
||||
msgstr "opposant"
|
||||
|
||||
#: apps/participation/models.py:432 apps/participation/models.py:606
|
||||
#: apps/participation/models.py:432 apps/participation/models.py:609
|
||||
msgid "reporter"
|
||||
msgstr "rapporteur"
|
||||
|
||||
|
@ -391,8 +392,8 @@ msgid ""
|
|||
"Number of penalties for the defender. The defender will loose a 0.5 "
|
||||
"coefficient per penalty."
|
||||
msgstr ""
|
||||
"Nombre de pénalités pour læ défenseur⋅se. Læ défenseur⋅se perd un coefficient 0.5 "
|
||||
"sur sa solution écrite par pénalité."
|
||||
"Nombre de pénalités pour læ défenseur⋅se. Læ défenseur⋅se perd un "
|
||||
"coefficient 0.5 sur sa solution écrite par pénalité."
|
||||
|
||||
#: apps/participation/models.py:499 apps/participation/models.py:502
|
||||
#: apps/participation/models.py:505
|
||||
|
@ -406,7 +407,7 @@ msgid "Passage of {defender} for problem {problem}"
|
|||
msgstr "Passage de {defender} pour le problème {problem}"
|
||||
|
||||
#: apps/participation/models.py:514 apps/participation/models.py:522
|
||||
#: apps/participation/models.py:600 apps/participation/models.py:642
|
||||
#: apps/participation/models.py:603 apps/participation/models.py:645
|
||||
msgid "passage"
|
||||
msgstr "passage"
|
||||
|
||||
|
@ -422,96 +423,96 @@ msgstr "différence"
|
|||
msgid "Score to add/remove on the final score"
|
||||
msgstr "Score à ajouter/retrancher au score final"
|
||||
|
||||
#: apps/participation/models.py:538
|
||||
#: apps/participation/models.py:541
|
||||
msgid "tweak"
|
||||
msgstr "harmonisation"
|
||||
|
||||
#: apps/participation/models.py:539
|
||||
#: apps/participation/models.py:542
|
||||
msgid "tweaks"
|
||||
msgstr "harmonisations"
|
||||
|
||||
#: apps/participation/models.py:560
|
||||
#: apps/participation/models.py:563
|
||||
msgid "problem"
|
||||
msgstr "numéro de problème"
|
||||
|
||||
#: apps/participation/models.py:567
|
||||
#: apps/participation/models.py:570
|
||||
msgid "solution for the final tournament"
|
||||
msgstr "solution pour la finale"
|
||||
|
||||
#: apps/participation/models.py:572 apps/participation/models.py:611
|
||||
#: apps/participation/models.py:575 apps/participation/models.py:614
|
||||
msgid "file"
|
||||
msgstr "fichier"
|
||||
|
||||
#: apps/participation/models.py:578
|
||||
#: apps/participation/models.py:581
|
||||
#, python-brace-format
|
||||
msgid "Solution of team {team} for problem {problem}"
|
||||
msgstr "Solution de l'équipe {team} pour le problème {problem}"
|
||||
|
||||
#: apps/participation/models.py:580
|
||||
#: apps/participation/models.py:583
|
||||
msgid "for final"
|
||||
msgstr "pour la finale"
|
||||
|
||||
#: apps/participation/models.py:583
|
||||
#: apps/participation/models.py:586
|
||||
msgid "solution"
|
||||
msgstr "solution"
|
||||
|
||||
#: apps/participation/models.py:584
|
||||
#: apps/participation/models.py:587
|
||||
msgid "solutions"
|
||||
msgstr "solutions"
|
||||
|
||||
#: apps/participation/models.py:617
|
||||
#: apps/participation/models.py:620
|
||||
#, python-brace-format
|
||||
msgid "Synthesis of {team} as {type} for problem {problem} of {defender}"
|
||||
msgstr ""
|
||||
"Note de synthèse de l'équipe {team} en tant que {type} pour le problème "
|
||||
"{problem} de {defender}"
|
||||
|
||||
#: apps/participation/models.py:625
|
||||
#: apps/participation/models.py:628
|
||||
msgid "synthesis"
|
||||
msgstr "note de synthèse"
|
||||
|
||||
#: apps/participation/models.py:626
|
||||
#: apps/participation/models.py:629
|
||||
msgid "syntheses"
|
||||
msgstr "notes de synthèse"
|
||||
|
||||
#: apps/participation/models.py:635
|
||||
#: apps/participation/models.py:638
|
||||
msgid "jury"
|
||||
msgstr "jury"
|
||||
|
||||
#: apps/participation/models.py:647
|
||||
#: apps/participation/models.py:650
|
||||
msgid "defender writing note"
|
||||
msgstr "note d'écrit de læ défenseur⋅se"
|
||||
|
||||
#: apps/participation/models.py:653
|
||||
#: apps/participation/models.py:656
|
||||
msgid "defender oral note"
|
||||
msgstr "note d'oral de læ défenseur⋅se"
|
||||
|
||||
#: apps/participation/models.py:659
|
||||
#: apps/participation/models.py:662
|
||||
msgid "opponent writing note"
|
||||
msgstr "note d'écrit de l'opposant⋅e"
|
||||
|
||||
#: apps/participation/models.py:665
|
||||
#: apps/participation/models.py:668
|
||||
msgid "opponent oral note"
|
||||
msgstr "note d'oral de l'opposant⋅e"
|
||||
|
||||
#: apps/participation/models.py:671
|
||||
#: apps/participation/models.py:674
|
||||
msgid "reporter writing note"
|
||||
msgstr "note d'écrit de læ rapporteur⋅e"
|
||||
|
||||
#: apps/participation/models.py:677
|
||||
#: apps/participation/models.py:680
|
||||
msgid "reporter oral note"
|
||||
msgstr "note d'oral de læ rapporteur⋅e"
|
||||
|
||||
#: apps/participation/models.py:695
|
||||
#: apps/participation/models.py:698
|
||||
#, python-brace-format
|
||||
msgid "Notes of {jury} for {passage}"
|
||||
msgstr "Notes de {jury} pour le {passage}"
|
||||
|
||||
#: apps/participation/models.py:702
|
||||
#: apps/participation/models.py:705
|
||||
msgid "note"
|
||||
msgstr "note"
|
||||
|
||||
#: apps/participation/models.py:703
|
||||
#: apps/participation/models.py:706
|
||||
msgid "notes"
|
||||
msgstr "notes"
|
||||
|
||||
|
@ -938,7 +939,7 @@ msgid "Invalidate"
|
|||
msgstr "Invalider"
|
||||
|
||||
#: apps/participation/templates/participation/team_detail.html:171
|
||||
#: apps/participation/views.py:329
|
||||
#: apps/participation/views.py:328
|
||||
msgid "Upload motivation letter"
|
||||
msgstr "Envoyer la lettre de motivation"
|
||||
|
||||
|
@ -947,7 +948,7 @@ msgid "Update team"
|
|||
msgstr "Modifier l'équipe"
|
||||
|
||||
#: apps/participation/templates/participation/team_detail.html:181
|
||||
#: apps/participation/views.py:432
|
||||
#: apps/participation/views.py:431
|
||||
msgid "Leave team"
|
||||
msgstr "Quitter l'équipe"
|
||||
|
||||
|
@ -1059,49 +1060,49 @@ msgstr "Retour aux détails de l'utilisateur⋅rice"
|
|||
msgid "Templates:"
|
||||
msgstr "Modèles :"
|
||||
|
||||
#: apps/participation/views.py:45 tfjm/templates/base.html:71
|
||||
#: apps/participation/views.py:44 tfjm/templates/base.html:71
|
||||
#: tfjm/templates/base.html:230
|
||||
msgid "Create team"
|
||||
msgstr "Créer une équipe"
|
||||
|
||||
#: apps/participation/views.py:54 apps/participation/views.py:99
|
||||
#: apps/participation/views.py:53 apps/participation/views.py:98
|
||||
msgid "You don't participate, so you can't create a team."
|
||||
msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe."
|
||||
|
||||
#: apps/participation/views.py:56 apps/participation/views.py:101
|
||||
#: apps/participation/views.py:55 apps/participation/views.py:100
|
||||
msgid "You are already in a team."
|
||||
msgstr "Vous êtes déjà dans une équipe."
|
||||
|
||||
#: apps/participation/views.py:90 tfjm/templates/base.html:76
|
||||
#: apps/participation/views.py:89 tfjm/templates/base.html:76
|
||||
#: tfjm/templates/base.html:225
|
||||
msgid "Join team"
|
||||
msgstr "Rejoindre une équipe"
|
||||
|
||||
#: apps/participation/views.py:152 apps/participation/views.py:438
|
||||
#: apps/participation/views.py:472
|
||||
#: apps/participation/views.py:151 apps/participation/views.py:437
|
||||
#: apps/participation/views.py:471
|
||||
msgid "You are not in a team."
|
||||
msgstr "Vous n'êtes pas dans une équipe."
|
||||
|
||||
#: apps/participation/views.py:153 apps/participation/views.py:473
|
||||
#: apps/participation/views.py:152 apps/participation/views.py:472
|
||||
msgid "You don't participate, so you don't have any team."
|
||||
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
|
||||
|
||||
#: apps/participation/views.py:179
|
||||
#: apps/participation/views.py:178
|
||||
#, python-brace-format
|
||||
msgid "Detail of team {trigram}"
|
||||
msgstr "Détails de l'équipe {trigram}"
|
||||
|
||||
#: apps/participation/views.py:215
|
||||
#: apps/participation/views.py:214
|
||||
msgid "You don't participate, so you can't request the validation of the team."
|
||||
msgstr ""
|
||||
"Vous ne participez pas, vous ne pouvez pas demander la validation de "
|
||||
"l'équipe."
|
||||
|
||||
#: apps/participation/views.py:218
|
||||
#: apps/participation/views.py:217
|
||||
msgid "The validation of the team is already done or pending."
|
||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
||||
|
||||
#: apps/participation/views.py:221
|
||||
#: apps/participation/views.py:220
|
||||
msgid ""
|
||||
"The team can't be validated: missing email address confirmations, "
|
||||
"authorizations, people, motivation letter or the tournament is not set."
|
||||
|
@ -1110,74 +1111,74 @@ msgstr ""
|
|||
"d'adresse e-mail, soit une autorisation, soit des personnes, soit la lettre "
|
||||
"de motivation, soit le tournoi n'a pas été choisi."
|
||||
|
||||
#: apps/participation/views.py:243
|
||||
#: apps/participation/views.py:242
|
||||
msgid "You are not an organizer of the tournament."
|
||||
msgstr "Vous n'êtes pas un⋅e organisateur⋅rice du tournoi."
|
||||
|
||||
#: apps/participation/views.py:246
|
||||
#: apps/participation/views.py:245
|
||||
msgid "This team has no pending validation."
|
||||
msgstr "L'équipe n'a pas de validation en attente."
|
||||
|
||||
#: apps/participation/views.py:276
|
||||
#: apps/participation/views.py:275
|
||||
msgid "You must specify if you validate the registration or not."
|
||||
msgstr "Vous devez spécifier si vous validez l'inscription ou non."
|
||||
|
||||
#: apps/participation/views.py:309
|
||||
#: apps/participation/views.py:308
|
||||
#, python-brace-format
|
||||
msgid "Update team {trigram}"
|
||||
msgstr "Mise à jour de l'équipe {trigram}"
|
||||
|
||||
#: apps/participation/views.py:368 apps/participation/views.py:418
|
||||
#: apps/participation/views.py:367 apps/participation/views.py:417
|
||||
#, python-brace-format
|
||||
msgid "Motivation letter of {team}.{ext}"
|
||||
msgstr "Lettre de motivation de {team}.{ext}"
|
||||
|
||||
#: apps/participation/views.py:399
|
||||
#: apps/participation/views.py:398
|
||||
#, python-brace-format
|
||||
msgid "Photo authorization of {participant}.{ext}"
|
||||
msgstr "Autorisation de droit à l'image de {participant}.{ext}"
|
||||
|
||||
#: apps/participation/views.py:405
|
||||
#: apps/participation/views.py:404
|
||||
#, python-brace-format
|
||||
msgid "Parental authorization of {participant}.{ext}"
|
||||
msgstr "Autorisation parentale de {participant}.{ext}"
|
||||
|
||||
#: apps/participation/views.py:412
|
||||
#: apps/participation/views.py:411
|
||||
#, python-brace-format
|
||||
msgid "Health sheet of {participant}.{ext}"
|
||||
msgstr "Fiche sanitaire de {participant}.{ext}"
|
||||
|
||||
#: apps/participation/views.py:422
|
||||
#: apps/participation/views.py:421
|
||||
#, python-brace-format
|
||||
msgid "Photo authorizations of team {trigram}.zip"
|
||||
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
|
||||
|
||||
#: apps/participation/views.py:440
|
||||
#: apps/participation/views.py:439
|
||||
msgid "The team is already validated or the validation is pending."
|
||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
||||
|
||||
#: apps/participation/views.py:487
|
||||
#: apps/participation/views.py:486
|
||||
msgid "The team is not validated yet."
|
||||
msgstr "L'équipe n'est pas encore validée."
|
||||
|
||||
#: apps/participation/views.py:501
|
||||
#: apps/participation/views.py:500
|
||||
#, python-brace-format
|
||||
msgid "Participation of team {trigram}"
|
||||
msgstr "Participation de l'équipe {trigram}"
|
||||
|
||||
#: apps/participation/views.py:627
|
||||
#: apps/participation/views.py:626
|
||||
msgid "You can't upload a solution after the deadline."
|
||||
msgstr "Vous ne pouvez pas envoyer de solution après la date limite."
|
||||
|
||||
#: apps/participation/views.py:730
|
||||
#: apps/participation/views.py:729
|
||||
msgid "The following user is not registered as a jury:"
|
||||
msgstr "L'utilisateur⋅rice suivant n'est pas inscrit⋅e en tant que juré⋅e :"
|
||||
|
||||
#: apps/participation/views.py:738
|
||||
#: apps/participation/views.py:737
|
||||
msgid "Notes were successfully uploaded."
|
||||
msgstr "Les notes ont bien été envoyées."
|
||||
|
||||
#: apps/participation/views.py:850
|
||||
#: apps/participation/views.py:849
|
||||
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."
|
||||
|
||||
|
@ -1189,7 +1190,7 @@ msgstr "rôle"
|
|||
msgid "participant"
|
||||
msgstr "participant⋅e"
|
||||
|
||||
#: apps/registration/forms.py:25 apps/registration/models.py:259
|
||||
#: apps/registration/forms.py:25 apps/registration/models.py:268
|
||||
msgid "coach"
|
||||
msgstr "encadrant⋅e"
|
||||
|
||||
|
@ -1197,11 +1198,11 @@ msgstr "encadrant⋅e"
|
|||
msgid "This email address is already used."
|
||||
msgstr "Cette adresse e-mail est déjà utilisée."
|
||||
|
||||
#: apps/registration/forms.py:56 apps/registration/models.py:285
|
||||
#: apps/registration/forms.py:56 apps/registration/models.py:294
|
||||
msgid "volunteer"
|
||||
msgstr "bénévole"
|
||||
|
||||
#: apps/registration/forms.py:57 apps/registration/models.py:304
|
||||
#: apps/registration/forms.py:57 apps/registration/models.py:313
|
||||
msgid "admin"
|
||||
msgstr "admin"
|
||||
|
||||
|
@ -1226,7 +1227,7 @@ msgstr "email confirmé"
|
|||
msgid "Activate your TFJM² account"
|
||||
msgstr "Activez votre compte du TFJM²"
|
||||
|
||||
#: apps/registration/models.py:99 apps/registration/models.py:325
|
||||
#: apps/registration/models.py:99 apps/registration/models.py:334
|
||||
msgid "registration"
|
||||
msgstr "inscription"
|
||||
|
||||
|
@ -1254,19 +1255,27 @@ msgstr "Homme"
|
|||
msgid "Other"
|
||||
msgstr "Autre"
|
||||
|
||||
#: apps/registration/models.py:143
|
||||
#: apps/registration/models.py:144
|
||||
msgid "address"
|
||||
msgstr "adresse"
|
||||
|
||||
#: apps/registration/models.py:149
|
||||
#: apps/registration/models.py:148
|
||||
msgid "zip code"
|
||||
msgstr "code postal"
|
||||
|
||||
#: apps/registration/models.py:154
|
||||
msgid "city"
|
||||
msgstr "ville"
|
||||
|
||||
#: apps/registration/models.py:158
|
||||
msgid "phone number"
|
||||
msgstr "numéro de téléphone"
|
||||
|
||||
#: apps/registration/models.py:154
|
||||
#: apps/registration/models.py:163
|
||||
msgid "health issues"
|
||||
msgstr "problèmes de santé"
|
||||
|
||||
#: apps/registration/models.py:156
|
||||
#: apps/registration/models.py:165
|
||||
msgid ""
|
||||
"You can indicate here your allergies or anything that is important to know "
|
||||
"for organizers"
|
||||
|
@ -1274,136 +1283,136 @@ msgstr ""
|
|||
"Vous pouvez indiquer ici vos allergies ou n'importe quoi qui peut être bon à "
|
||||
"savoir pour les organisateur⋅rices"
|
||||
|
||||
#: apps/registration/models.py:160
|
||||
#: apps/registration/models.py:169
|
||||
msgid "photo authorization"
|
||||
msgstr "autorisation de droit à l'image"
|
||||
|
||||
#: apps/registration/models.py:192
|
||||
#: apps/registration/models.py:201
|
||||
msgid "12th grade"
|
||||
msgstr "Terminale"
|
||||
|
||||
#: apps/registration/models.py:193
|
||||
#: apps/registration/models.py:202
|
||||
msgid "11th grade"
|
||||
msgstr "Première"
|
||||
|
||||
#: apps/registration/models.py:194
|
||||
#: apps/registration/models.py:203
|
||||
msgid "10th grade or lower"
|
||||
msgstr "Seconde ou inférieur"
|
||||
|
||||
#: apps/registration/models.py:196
|
||||
#: apps/registration/models.py:205
|
||||
msgid "student class"
|
||||
msgstr "classe"
|
||||
|
||||
#: apps/registration/models.py:201
|
||||
#: apps/registration/models.py:210
|
||||
msgid "school"
|
||||
msgstr "école"
|
||||
|
||||
#: apps/registration/models.py:206
|
||||
#: apps/registration/models.py:215
|
||||
msgid "responsible name"
|
||||
msgstr "nom de læ responsable légal⋅e"
|
||||
|
||||
#: apps/registration/models.py:211
|
||||
#: apps/registration/models.py:220
|
||||
msgid "responsible phone number"
|
||||
msgstr "numéro de téléphone de læ responsable légal⋅e"
|
||||
|
||||
#: apps/registration/models.py:216
|
||||
#: apps/registration/models.py:225
|
||||
msgid "responsible email address"
|
||||
msgstr "adresse e-mail de læ responsable légal⋅e"
|
||||
|
||||
#: apps/registration/models.py:221
|
||||
#: apps/registration/models.py:230
|
||||
msgid "parental authorization"
|
||||
msgstr "autorisation parentale"
|
||||
|
||||
#: apps/registration/models.py:228
|
||||
#: apps/registration/models.py:237
|
||||
msgid "health sheet"
|
||||
msgstr "fiche sanitaire"
|
||||
|
||||
#: apps/registration/models.py:236
|
||||
#: apps/registration/models.py:245
|
||||
msgid "student"
|
||||
msgstr "étudiant⋅e"
|
||||
|
||||
#: apps/registration/models.py:244
|
||||
#: apps/registration/models.py:253
|
||||
msgid "student registration"
|
||||
msgstr "inscription d'élève"
|
||||
|
||||
#: apps/registration/models.py:245
|
||||
#: apps/registration/models.py:254
|
||||
msgid "student registrations"
|
||||
msgstr "inscriptions d'élève"
|
||||
|
||||
#: apps/registration/models.py:254 apps/registration/models.py:276
|
||||
#: apps/registration/models.py:263 apps/registration/models.py:285
|
||||
msgid "professional activity"
|
||||
msgstr "activité professionnelle"
|
||||
|
||||
#: apps/registration/models.py:267
|
||||
#: apps/registration/models.py:276
|
||||
msgid "coach registration"
|
||||
msgstr "inscription d'encadrant⋅e"
|
||||
|
||||
#: apps/registration/models.py:268
|
||||
#: apps/registration/models.py:277
|
||||
msgid "coach registrations"
|
||||
msgstr "inscriptions d'encadrant⋅es"
|
||||
|
||||
#: apps/registration/models.py:299
|
||||
#: apps/registration/models.py:308
|
||||
msgid "role of the administrator"
|
||||
msgstr "rôle de l'administrateur⋅rice"
|
||||
|
||||
#: apps/registration/models.py:312
|
||||
#: apps/registration/models.py:321
|
||||
msgid "admin registration"
|
||||
msgstr "inscription d'administrateur⋅rice"
|
||||
|
||||
#: apps/registration/models.py:313
|
||||
#: apps/registration/models.py:322
|
||||
msgid "admin registrations"
|
||||
msgstr "inscriptions d'administrateur⋅rices"
|
||||
|
||||
#: apps/registration/models.py:329
|
||||
#: apps/registration/models.py:338
|
||||
msgid "type"
|
||||
msgstr "type"
|
||||
|
||||
#: apps/registration/models.py:332
|
||||
#: apps/registration/models.py:341
|
||||
msgid "No payment"
|
||||
msgstr "Pas de paiement"
|
||||
|
||||
#: apps/registration/models.py:334
|
||||
#: apps/registration/models.py:343
|
||||
msgid "Scholarship"
|
||||
msgstr "Notification de bourse"
|
||||
|
||||
#: apps/registration/models.py:335
|
||||
#: apps/registration/models.py:344
|
||||
msgid "Bank transfer"
|
||||
msgstr "Virement bancaire"
|
||||
|
||||
#: apps/registration/models.py:336
|
||||
#: apps/registration/models.py:345
|
||||
msgid "Other (please indicate)"
|
||||
msgstr "Autre (veuillez spécifier)"
|
||||
|
||||
#: apps/registration/models.py:337
|
||||
#: apps/registration/models.py:346
|
||||
msgid "The tournament is free"
|
||||
msgstr "Le tournoi est gratuit"
|
||||
|
||||
#: apps/registration/models.py:344
|
||||
#: apps/registration/models.py:353
|
||||
msgid "scholarship file"
|
||||
msgstr "Notification de bourse"
|
||||
|
||||
#: apps/registration/models.py:345
|
||||
#: apps/registration/models.py:354
|
||||
msgid "only if you have a scholarship."
|
||||
msgstr "Nécessaire seulement si vous déclarez être boursier."
|
||||
|
||||
#: apps/registration/models.py:352
|
||||
#: apps/registration/models.py:361
|
||||
msgid "additional information"
|
||||
msgstr "informations additionnelles"
|
||||
|
||||
#: apps/registration/models.py:353
|
||||
#: apps/registration/models.py:362
|
||||
msgid "To help us to find your payment."
|
||||
msgstr "Pour nous aider à retrouver votre paiement, si nécessaire."
|
||||
|
||||
#: apps/registration/models.py:368
|
||||
#: apps/registration/models.py:377
|
||||
#, python-brace-format
|
||||
msgid "Payment of {registration}"
|
||||
msgstr "Paiement de {registration}"
|
||||
|
||||
#: apps/registration/models.py:371
|
||||
#: apps/registration/models.py:380
|
||||
msgid "payment"
|
||||
msgstr "paiement"
|
||||
|
||||
#: apps/registration/models.py:372
|
||||
#: apps/registration/models.py:381
|
||||
msgid "payments"
|
||||
msgstr "paiements"
|
||||
|
||||
|
@ -1575,8 +1584,8 @@ msgid ""
|
|||
"your scholarship attestation."
|
||||
msgstr ""
|
||||
"Le prix du tournoi est de %(price)s €. Les frais de participation sont "
|
||||
"offerts pour les encadrant⋅es et les étudiant⋅es boursièr⋅es. Si c'est le cas, "
|
||||
"merci de nous transmettre votre notification de bourse."
|
||||
"offerts pour les encadrant⋅es et les étudiant⋅es boursièr⋅es. Si c'est le "
|
||||
"cas, merci de nous transmettre votre notification de bourse."
|
||||
|
||||
#: apps/registration/templates/registration/payment_form.html:17
|
||||
msgid ""
|
||||
|
@ -1834,11 +1843,11 @@ msgstr "Autorisation parentale de {student}.{ext}"
|
|||
msgid "Scholarship attestation of {user}.{ext}"
|
||||
msgstr "Notification de bourse de {user}.{ext}"
|
||||
|
||||
#: tfjm/settings.py:163
|
||||
#: tfjm/settings.py:162
|
||||
msgid "English"
|
||||
msgstr "Anglais"
|
||||
|
||||
#: tfjm/settings.py:164
|
||||
#: tfjm/settings.py:163
|
||||
msgid "French"
|
||||
msgstr "Français"
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
Django>=3.2,<4.0
|
||||
django-address~=0.2
|
||||
django-bootstrap-datepicker-plus~=4.0
|
||||
django-cas-server~=1.3
|
||||
django-crispy-forms~=1.9
|
||||
|
|
|
@ -53,7 +53,6 @@ INSTALLED_APPS = [
|
|||
'django.contrib.staticfiles',
|
||||
'django.forms',
|
||||
|
||||
'address',
|
||||
'bootstrap_datepicker_plus',
|
||||
'crispy_forms',
|
||||
'django_filters',
|
||||
|
|
Loading…
Reference in New Issue