mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-09-04 10:20:07 +02:00
Compare commits
3 Commits
fd8cd0ff4e
...
wei
Author | SHA1 | Date | |
---|---|---|---|
|
034ad9a4ce | ||
|
897d37f74d | ||
|
55be3c9836 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -48,6 +48,7 @@ backups/
|
||||
env/
|
||||
venv/
|
||||
db.sqlite3
|
||||
shell.nix
|
||||
|
||||
# ansibles customs host
|
||||
ansible/host_vars/*.yaml
|
||||
|
@@ -32,7 +32,7 @@ class ActivityForm(forms.ModelForm):
|
||||
def clean_organizer(self):
|
||||
organizer = self.cleaned_data['organizer']
|
||||
if not organizer.note.is_active:
|
||||
self.add_error('organizer', _('The note of this club is inactive.'))
|
||||
self.add_error('organiser', _('The note of this club is inactive.'))
|
||||
return organizer
|
||||
|
||||
def clean_date_end(self):
|
||||
|
@@ -69,7 +69,7 @@ class WEIRegistrationForm(forms.ModelForm):
|
||||
class WEIChooseBusForm(forms.Form):
|
||||
bus = forms.ModelMultipleChoiceField(
|
||||
queryset=Bus.objects,
|
||||
label=_("Bus"),
|
||||
label=_("bus"),
|
||||
help_text=_("This choice is not definitive. The WEI organizers are free to attribute for you a bus and a team,"
|
||||
+ " in particular if you are a free eletron."),
|
||||
widget=CheckboxSelectMultiple(),
|
||||
|
@@ -17,7 +17,7 @@ from ...models import WEIMembership, Bus
|
||||
|
||||
WORDS = {
|
||||
'list': [
|
||||
'Fiesta', 'Graillance', 'Move it move it', 'Calme', 'Nert et geek', 'Jeux de rôles et danse rock',
|
||||
'Fiesta', 'Graillance', 'Move it move it', 'Calme', 'Nerd et geek', 'Jeux de rôles et danse rock',
|
||||
'Strass et paillettes', 'Spectaculaire', 'Splendide', 'Flow inégalable', 'Rap', 'Battles légendaires',
|
||||
'Techno', 'Alcool', 'Kiffeur·euse', 'Rugby', 'Médiéval', 'Festif',
|
||||
'Stylé', 'Chipie', 'Rétro', 'Vache', 'Farfadet', 'Fanfare',
|
||||
@@ -27,41 +27,41 @@ WORDS = {
|
||||
"""Sur une échelle allant de 0 (= 0 alcool ou très peu) à 5 (= la fontaine de jouvence alcoolique),
|
||||
quel niveau de consommation d’alcool souhaiterais-tu ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: 4,
|
||||
47: 1,
|
||||
48: 3,
|
||||
45: 3.5,
|
||||
44: 4,
|
||||
46: 5,
|
||||
43: 3,
|
||||
49: 3
|
||||
}
|
||||
],
|
||||
"voie_post_bac": [
|
||||
"""Si la DA du bus de ton choix correspondait à une voie post-bac, laquelle serait-elle ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: "Double licence cuisine/arts du cirque option burger",
|
||||
47: "BTS Exploration de donjon",
|
||||
48: "Ecole des stars en herbe",
|
||||
45: "Déscolarisation précoce",
|
||||
44: "Rattrapage pour excès de kiff",
|
||||
46: "Double cursus STAPS / Licence d’histoire",
|
||||
43: "Recherche active d’un sugar daddy/d’un sugar mommy",
|
||||
49: "Licence de musicologie"
|
||||
}
|
||||
],
|
||||
"boite": [
|
||||
"""Tu es seul·e sur une île déserte et devant toi il y a une sombre boîte de taille raisonnable.
|
||||
Qu’y a-t-il à l’intérieur ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: "Un burgouzz de valouzz",
|
||||
47: "Un ocarina (pour me téléporter hors de ce bourbier)",
|
||||
48: "Des paillettes, un micro de karaoké et une enceinte bluetooth",
|
||||
45: "Un kebab",
|
||||
44: "Une 86 et un caisson pour taper du pied",
|
||||
46: "Une épée, un ballon et une tireuse",
|
||||
43: "Des lunettes de soleil",
|
||||
49: "Mon instrument de musique"
|
||||
}
|
||||
],
|
||||
"tardif": [
|
||||
@@ -69,42 +69,42 @@ WORDS = {
|
||||
qu’après tout, il n’y a plus personne sur la plage à cette heure-ci. Tu n’habites pas loin mais t’enchaînes
|
||||
demain avec une journée similaire avec un autre groupe d’amis parce que t’es trop #busy. Que fais-tu ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: "On veut se déchaîner toute la nuit !!",
|
||||
47: "Je prends une glace et chill un moment avant d’aller dormir",
|
||||
48: "J’enfile mes boogie shoes pour enflammer le dancefloor avec elleux et lancer un concours de slay, le perdant finit la bouteille de rhum",
|
||||
45: "La fête continuuuuue",
|
||||
44: "Soirée sangria plage → boîte → lever de soleil sur la plage",
|
||||
46: "Minuit ? C’est l’heure du genepi. On commence les alcools forts !!",
|
||||
43: "T’enchaînes direct (faut pas les priver de ta présence)",
|
||||
49: "On continue en mode chill (soirée potins)"
|
||||
}
|
||||
],
|
||||
"cohesion": [
|
||||
"""C’est la rentrée de Seconde et tu découvres ta classe, tes camarades et ta prof principale!!!
|
||||
qui vous propose une activité de cohésion. Laquelle est-elle ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: "Un relais cubi en ventriglisse",
|
||||
47: "Un jeu de rôle",
|
||||
48: "Organiser la soirée de l’année dans le lycée. Le thème : SLAY (Spotlight, Love, Amaze/All-night, Yeah), paillettes, disco",
|
||||
45: "La prof de français propose un slam parce qu'elle pense que c'est du rap littéraire qui fera plaisir aux élèves",
|
||||
44: "P’tit escape game + apéro",
|
||||
46: "Joute avec des boucliers Gilbert",
|
||||
43: "Tournage d’un clip de confessions nocturnes de Diam’s",
|
||||
49: "Je sais pas j’ai raté mon BAFA"
|
||||
}
|
||||
],
|
||||
"artiste": [
|
||||
"""C’est l’été et la saison des festivals a commencé. Tu regardes la programmation du festival
|
||||
pas loin de chez toi et tu découvres avec joie la présence d’un·e artiste. De qui s’agit-il ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: "Moto-Moto (il chantera son fameux tube “je les aime grosses, je les aime bombées”)",
|
||||
47: "Hatsune Miku",
|
||||
48: "Rihanna",
|
||||
45: "Vald",
|
||||
44: "Qui connaît vraiment les noms des artistes de tech ?",
|
||||
46: "Perceval",
|
||||
43: "Fatal bazooka",
|
||||
49: "Måneskin"
|
||||
}
|
||||
],
|
||||
"annonce_noel": [
|
||||
@@ -112,61 +112,103 @@ WORDS = {
|
||||
D’un coup, tu te lèves, tapotes de manière pompeuse sur ton verre avec un de tes couverts.
|
||||
Qu’annonces-tu ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: """« Chère famille. Je sais bien que nous avions dit : pas de politique à table.
|
||||
Je ne peux toutefois me retenir de vous annoncer une grande nouvelle…
|
||||
j’ai décidé de quitter la ville pour consacrer ma vie au culte du Roi Julian.
|
||||
A moi la jungle luxuriante, là où le soleil chaud caresse les palmiers,
|
||||
où les lémuriens dansent avec frénésie et où chaque repas est une ode au burger sauvage.
|
||||
Longue vie à Sa Majesté le Roi Julian ! »""",
|
||||
47: "« J’ai perdu »",
|
||||
48: "« Mes chers parents je pars, j’arrête l’ENS pour devenir DJ slay à Ibiza »",
|
||||
45: "J’interromps le repas pour rapper les 6min de bande organisée",
|
||||
44: "« Digestif ? Pétanque ? Les deux ? »",
|
||||
46: "« Montjoie St Denis à bas la Macronie »",
|
||||
43: "« Je suis enceinte » (c’est faux j’ai juste besoin d’attention)",
|
||||
49: """Discours de remerciement :
|
||||
je lance un powerpoint de 65 slides et sors une feuille A4 blanche (je fais semblant de lire mon discours dessus)"""
|
||||
}
|
||||
],
|
||||
"vacances": [
|
||||
"""Les vacances sont là et t’aimerais bien partir quelque part, mais où ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: "A Madagascar, à bord d’un bus conduit par des pingouins",
|
||||
47: "Dans ma chambre",
|
||||
48: "Rio de Janeiro",
|
||||
45: "N'importe où tant qu'on peut sortir tous les soirs",
|
||||
44: "Tu suis les plans du club ski ou de piratens",
|
||||
46: "Carcassonne",
|
||||
43: "Coachella",
|
||||
49: "Dans les montagnes de la république populaire d’Auvergne-Rhônes-Alpes pour profiter de la fraîcheur, de la nature et de mes ami·e·s"
|
||||
}
|
||||
],
|
||||
"loisir": [
|
||||
"""T’as fini ta journée de cours et tu t’apprêtes à profiter d’une activité/hobby/loisir de ton choix.
|
||||
Laquelle est-ce ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: "Cueillir des noix de coco",
|
||||
47: "Essayer de travailler puis chill avec des potes autour d’un jeu en buvant du thé",
|
||||
48: "Repet du nouveau spectacle de mon club, before (potins) puis sortie avec les potes jusqu’au bout de la night",
|
||||
45: "Zoner avec les copaings jusqu’à pas d’heure",
|
||||
44: "Go Kfet pour se faire traquenard jusqu’à 3h du mat",
|
||||
46: "Déterminer ce qui est le plus solide entre mon crâne et une ecocup",
|
||||
43: "Revoir pour la 6e fois gossip girl au fond de ton lit",
|
||||
49: "Jouer de mon instrument préféré avec les copains/copines pour préparer le prochain concert #solidays"
|
||||
}
|
||||
],
|
||||
"plan": [
|
||||
"""Tu reçois un message sur la conversation de groupe que tu partages avec tes potes :
|
||||
vous êtes chaud·e·s pour vous retrouver. Quel plan t’attire le plus ?""",
|
||||
{
|
||||
42: "",
|
||||
47: "",
|
||||
48: "",
|
||||
45: "",
|
||||
44: "",
|
||||
46: "",
|
||||
43: "",
|
||||
49: ""
|
||||
42: """Après-midi piscine, puis before arrosé de mojito,
|
||||
avant d’aller s’éclater en pot avec toute la savane et de finir sur un after spécial pina colada""",
|
||||
47: """(matin) : Ptit jeu de rôle
|
||||
(repas) : le traditionnel poké-tacos
|
||||
(juste après le repas) : combat avec des épées en mousse avec les copains!
|
||||
(16h00) : pause thé
|
||||
(fin d’après midi) : initiation à la danse rock
|
||||
(soirée) : découverte d’un jeu de société avec des règles obscures
|
||||
""",
|
||||
48: "Soirée champagne and chic : spectacle et dîner au moulin rouge puis soirée sur les champs",
|
||||
45: "Se regrouper pour une soirée, même si il n’est encore que 10h",
|
||||
44: "P’tit poké qui termine en koin koin avec after poker",
|
||||
46: "Une dégustation de bière, un rugby et toute autre activité joviale",
|
||||
43: "Un brunch de pour papoter puis friperies",
|
||||
49: "Soirée raclette !"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
'stats': [
|
||||
{
|
||||
"question": """Le WEI est structuré par bus, et au sein de chaque bus, par équipes.
|
||||
Pour toi, être dans une équipe où tout le monde reste sobre (primo-entrants comme encadrants) c'est :""",
|
||||
"answers": [
|
||||
(1, "Inenvisageable"),
|
||||
(2, "À contre cœur"),
|
||||
(3, "Pourquoi pas"),
|
||||
(4, "Souhaitable"),
|
||||
(5, "Nécessaire"),
|
||||
],
|
||||
"help_text": "(De toute façon aucun alcool n'est consommé pendant les trajets du bus, ni aller, ni retour.)",
|
||||
},
|
||||
{
|
||||
"question": "Faire partie d'un bus qui n'apporte pas de boisson alcoolisée pour ses membres, pour toi c'est :",
|
||||
"answers": [
|
||||
(1, "Inenvisageable"),
|
||||
(2, "À contre cœur"),
|
||||
(3, "Pourquoi pas"),
|
||||
(4, "Souhaitable"),
|
||||
(5, "Nécessaire"),
|
||||
],
|
||||
"help_text": """(Tout les bus apportent de l'alcool cette année, cette question sert à l'organisation pour l'année prochaine.
|
||||
De plus il y aura de toute façon de l'alcool commun au WEI et aucun alcool n'est consommé pendant les trajets en bus.)""",
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
IMAGES = {
|
||||
"vacances": {
|
||||
49: "/static/wei/img/logo_auvergne_rhone_alpes.jpg",
|
||||
}
|
||||
}
|
||||
|
||||
NB_WORDS = 5
|
||||
@@ -219,7 +261,7 @@ class WEISurveyForm2025(forms.Form):
|
||||
all_preferred_words = WORDS['list']
|
||||
rng.shuffle(all_preferred_words)
|
||||
self.fields["words"].choices = [(w, w) for w in all_preferred_words]
|
||||
else:
|
||||
elif information.step <= len(WORDS['questions']):
|
||||
questions = list(WORDS['questions'].items())
|
||||
idx = information.step - 1
|
||||
if idx < len(questions):
|
||||
@@ -235,6 +277,15 @@ class WEISurveyForm2025(forms.Form):
|
||||
widget=OptionalImageRadioSelect(images=IMAGES.get(q, {})),
|
||||
required=True,
|
||||
)
|
||||
elif information.step == len(WORDS['questions']) + 1:
|
||||
for i, v in enumerate(WORDS['stats']):
|
||||
self.fields[f'stat_{i}'] = forms.ChoiceField(
|
||||
label=v['question'],
|
||||
choices=v['answers'],
|
||||
widget=forms.RadioSelect(),
|
||||
required=False,
|
||||
help_text=_(v.get('help_text', ''))
|
||||
)
|
||||
|
||||
def clean_words(self):
|
||||
data = self.cleaned_data['words']
|
||||
@@ -361,7 +412,7 @@ class WEISurvey2025(WEISurvey):
|
||||
setattr(self.information, "word" + str(i), word)
|
||||
self.information.step += 1
|
||||
self.save()
|
||||
else:
|
||||
elif 1 <= self.information.step <= len(WORDS['questions']):
|
||||
questions = list(WORDS['questions'].keys())
|
||||
idx = self.information.step - 1
|
||||
if idx < len(questions):
|
||||
@@ -369,6 +420,13 @@ class WEISurvey2025(WEISurvey):
|
||||
setattr(self.information, q, form.cleaned_data[q])
|
||||
self.information.step += 1
|
||||
self.save()
|
||||
else:
|
||||
for i, __ in enumerate(WORDS['stats']):
|
||||
ans = form.cleaned_data.get(f'stat_{i}')
|
||||
if ans is not None:
|
||||
setattr(self.information, f'stat_{i}', ans)
|
||||
self.information.step += 1
|
||||
self.save()
|
||||
|
||||
@classmethod
|
||||
def get_algorithm_class(cls):
|
||||
@@ -378,7 +436,7 @@ class WEISurvey2025(WEISurvey):
|
||||
"""
|
||||
The survey is complete once the bus is chosen.
|
||||
"""
|
||||
return self.information.step > len(WORDS['questions'])
|
||||
return self.information.step > len(WORDS['questions']) + 1
|
||||
|
||||
@classmethod
|
||||
@lru_cache()
|
||||
|
BIN
apps/wei/static/wei/img/logo_auvergne_rhone_alpes.jpg
Normal file
BIN
apps/wei/static/wei/img/logo_auvergne_rhone_alpes.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
@@ -37,11 +37,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if registration.validated %}
|
||||
<a class="btn btn-warning" href="{% url "wei:wei_update_registration" pk=my_registration.pk %}"
|
||||
data-turbolinks="false">
|
||||
{% trans "Update my registration" %}
|
||||
</a>
|
||||
{% if not not_first_year %}
|
||||
{% endif %}
|
||||
{% if my_registration.first_year %}
|
||||
{% if not survey_complete %}
|
||||
<a class="btn btn-warning" href="{% url "wei:wei_survey" pk=my_registration.pk %}" data-turbolinks="false">
|
||||
{% trans "Continue survey" %}
|
||||
|
@@ -53,9 +53,11 @@ class TestWEIAlgorithm(TestCase):
|
||||
birth_date='2000-01-01',
|
||||
)
|
||||
information = WEISurveyInformation2025(registration)
|
||||
for j in range(1, 21):
|
||||
for j in range(1, 1 + NB_WORDS):
|
||||
setattr(information, f'word{j}', random.choice(WORDS['list']))
|
||||
information.step = 20
|
||||
for q in WORDS['questions']:
|
||||
setattr(information, q, random.choice(list(WORDS['questions'][q][1].keys())))
|
||||
information.step = len(WORDS['questions']) + 2
|
||||
information.save(registration)
|
||||
registration.save()
|
||||
|
||||
@@ -87,7 +89,7 @@ class TestWEIAlgorithm(TestCase):
|
||||
setattr(information, f'word{j}', random.choice(WORDS['list']))
|
||||
for q in WORDS['questions']:
|
||||
setattr(information, q, random.choice(list(WORDS['questions'][q][1].keys())))
|
||||
information.step = len(WORDS['questions']) + 1
|
||||
information.step = len(WORDS['questions']) + 2
|
||||
information.save(registration)
|
||||
registration.save()
|
||||
survey = WEISurvey2025(registration)
|
||||
|
@@ -214,6 +214,8 @@ class WEIDetailView(ProtectQuerysetMixin, LoginRequiredMixin, MultiTableMixin, D
|
||||
|
||||
context["not_first_year"] = WEIMembership.objects.filter(user=self.request.user).exists()
|
||||
|
||||
context["registration_validated"] = WEIMembership.objects.filter(registration=my_registration).exists() if my_registration else False
|
||||
|
||||
qs = WEIMembership.objects.filter(club=club, registration__first_year=True, bus__isnull=True)
|
||||
context["can_validate_1a"] = PermissionBackend.check_perm(
|
||||
self.request, "wei.change_weimembership_bus", qs.first()) if qs.exists() else False
|
||||
|
@@ -7,9 +7,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-08-20 23:34+0200\n"
|
||||
"POT-Creation-Date: 2025-07-15 18:17+0200\n"
|
||||
"PO-Revision-Date: 2022-04-11 22:05+0200\n"
|
||||
"Last-Translator: ehouarn <ehouarn@crans.org>\n"
|
||||
"Last-Translator: bleizi <bleizi@crans.org>\n"
|
||||
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -19,8 +19,10 @@ msgstr ""
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
|
||||
#: apps/activity/api/serializers.py:77
|
||||
#, fuzzy
|
||||
#| msgid "This friendship already exists"
|
||||
msgid "This opener already exists"
|
||||
msgstr "Cette personne est déjà ouvreur⋅se"
|
||||
msgstr "Cette amitié existe déjà"
|
||||
|
||||
#: apps/activity/apps.py:10 apps/activity/models.py:129
|
||||
#: apps/activity/models.py:169 apps/activity/models.py:329
|
||||
@@ -64,7 +66,7 @@ msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
|
||||
#: apps/note/models/transactions.py:46 apps/note/models/transactions.py:299
|
||||
#: apps/permission/models.py:329
|
||||
#: apps/registration/templates/registration/future_profile_detail.html:16
|
||||
#: apps/wei/models.py:77 apps/wei/models.py:150 apps/wei/tables.py:342
|
||||
#: apps/wei/models.py:77 apps/wei/models.py:150 apps/wei/tables.py:282
|
||||
#: apps/wei/templates/wei/base.html:26
|
||||
#: apps/wei/templates/wei/weimembership_form.html:14 apps/wrapped/models.py:16
|
||||
msgid "name"
|
||||
@@ -289,14 +291,14 @@ msgstr "Type"
|
||||
|
||||
#: apps/activity/tables.py:86 apps/member/forms.py:199
|
||||
#: apps/registration/forms.py:91 apps/treasury/forms.py:131
|
||||
#: apps/wei/forms/registration.py:117
|
||||
#: apps/wei/forms/registration.py:129
|
||||
msgid "Last name"
|
||||
msgstr "Nom de famille"
|
||||
|
||||
#: apps/activity/tables.py:88 apps/member/forms.py:204
|
||||
#: apps/note/templates/note/transaction_form.html:138
|
||||
#: apps/registration/forms.py:96 apps/treasury/forms.py:133
|
||||
#: apps/wei/forms/registration.py:122
|
||||
#: apps/wei/forms/registration.py:134
|
||||
msgid "First name"
|
||||
msgstr "Prénom"
|
||||
|
||||
@@ -313,7 +315,7 @@ msgstr "Solde du compte"
|
||||
#: apps/note/tables.py:281 apps/treasury/tables.py:39
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
|
||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:65
|
||||
#: apps/wei/tables.py:74 apps/wei/tables.py:75 apps/wei/tables.py:148
|
||||
#: apps/wei/tables.py:75 apps/wei/tables.py:118
|
||||
#: apps/wei/templates/wei/weiregistration_confirm_delete.html:31
|
||||
#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:18
|
||||
#: note_kfet/templates/oauth2_provider/application_detail.html:39
|
||||
@@ -404,7 +406,6 @@ msgstr "Entrée effectuée !"
|
||||
#: apps/wei/templates/wei/bus_form.html:17
|
||||
#: apps/wei/templates/wei/busteam_form.html:18
|
||||
#: apps/wei/templates/wei/weiclub_form.html:17
|
||||
#: apps/wei/templates/wei/weimembership_update.html:17
|
||||
#: apps/wei/templates/wei/weiregistration_form.html:18
|
||||
msgid "Submit"
|
||||
msgstr "Envoyer"
|
||||
@@ -461,6 +462,7 @@ msgstr "modifier"
|
||||
#: apps/activity/templates/activity/includes/activity_info.html:74
|
||||
#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:279
|
||||
#: apps/permission/models.py:126 apps/treasury/tables.py:38
|
||||
#: apps/wei/tables.py:74
|
||||
msgid "delete"
|
||||
msgstr "supprimer"
|
||||
|
||||
@@ -535,7 +537,7 @@ msgstr "Pâtes METRO 5kg"
|
||||
|
||||
#: apps/food/forms.py:53 apps/food/forms.py:81
|
||||
msgid "Specific order given to GCKs"
|
||||
msgstr "Instruction donnée aux GCKs"
|
||||
msgstr ""
|
||||
|
||||
#: apps/food/forms.py:77
|
||||
msgid "Lasagna"
|
||||
@@ -596,7 +598,7 @@ msgid "order"
|
||||
msgstr "consigne"
|
||||
|
||||
#: apps/food/models.py:107 apps/food/views.py:35
|
||||
#: note_kfet/templates/base.html:73
|
||||
#: note_kfet/templates/base.html:72
|
||||
msgid "Food"
|
||||
msgstr "Bouffe"
|
||||
|
||||
@@ -685,45 +687,45 @@ msgstr "Retour à la liste de nourriture"
|
||||
msgid "View food"
|
||||
msgstr "Voir l'aliment"
|
||||
|
||||
#: apps/food/templates/food/food_list.html:38
|
||||
#: apps/food/templates/food/food_list.html:37
|
||||
#: note_kfet/templates/base_search.html:15
|
||||
msgid "Search by attribute such as name..."
|
||||
msgstr "Chercher par un attribut tel que le nom..."
|
||||
|
||||
#: apps/food/templates/food/food_list.html:50
|
||||
#: apps/food/templates/food/food_list.html:49
|
||||
#: note_kfet/templates/base_search.html:23
|
||||
msgid "There is no results."
|
||||
msgstr "Il n'y a pas de résultat."
|
||||
|
||||
#: apps/food/templates/food/food_list.html:59
|
||||
#: apps/food/templates/food/food_list.html:58
|
||||
msgid "Meal served"
|
||||
msgstr "Plat servis"
|
||||
|
||||
#: apps/food/templates/food/food_list.html:64
|
||||
#: apps/food/templates/food/food_list.html:63
|
||||
msgid "New meal"
|
||||
msgstr "Nouveau plat"
|
||||
|
||||
#: apps/food/templates/food/food_list.html:73
|
||||
#: apps/food/templates/food/food_list.html:72
|
||||
msgid "There is no meal served."
|
||||
msgstr "Il n'y a pas de plat servi."
|
||||
|
||||
#: apps/food/templates/food/food_list.html:80
|
||||
#: apps/food/templates/food/food_list.html:79
|
||||
msgid "Free food"
|
||||
msgstr "Open"
|
||||
|
||||
#: apps/food/templates/food/food_list.html:87
|
||||
#: apps/food/templates/food/food_list.html:86
|
||||
msgid "There is no free food."
|
||||
msgstr "Il n'y a pas de bouffe en open"
|
||||
|
||||
#: apps/food/templates/food/food_list.html:95
|
||||
#: apps/food/templates/food/food_list.html:94
|
||||
msgid "Food of your clubs"
|
||||
msgstr "Bouffe de tes clubs"
|
||||
|
||||
#: apps/food/templates/food/food_list.html:101
|
||||
#: apps/food/templates/food/food_list.html:100
|
||||
msgid "Food of club"
|
||||
msgstr "Bouffe du club"
|
||||
|
||||
#: apps/food/templates/food/food_list.html:108
|
||||
#: apps/food/templates/food/food_list.html:107
|
||||
msgid "Yours club has not food yet."
|
||||
msgstr "Ton club n'a pas de bouffe pour l'instant"
|
||||
|
||||
@@ -805,41 +807,41 @@ msgstr "Ajouter un nouveau QR-code"
|
||||
msgid "Add an aliment"
|
||||
msgstr "Ajouter un nouvel aliment"
|
||||
|
||||
#: apps/food/views.py:237
|
||||
#: apps/food/views.py:228
|
||||
msgid "Add a meal"
|
||||
msgstr "Ajouter un plat"
|
||||
|
||||
#: apps/food/views.py:277
|
||||
#: apps/food/views.py:259
|
||||
msgid "Manage ingredients of:"
|
||||
msgstr "Gestion des ingrédienrs de :"
|
||||
|
||||
#: apps/food/views.py:291 apps/food/views.py:299
|
||||
#: apps/food/views.py:273 apps/food/views.py:281
|
||||
#, python-brace-format
|
||||
msgid "Fully used in {meal}"
|
||||
msgstr "Aliment entièrement utilisé dans : {meal}"
|
||||
|
||||
#: apps/food/views.py:346
|
||||
#: apps/food/views.py:320
|
||||
msgid "Add the ingredient:"
|
||||
msgstr "Ajouter l'ingrédient"
|
||||
|
||||
#: apps/food/views.py:372
|
||||
#: apps/food/views.py:346
|
||||
#, python-brace-format
|
||||
msgid "Food fully used in : {meal.name}"
|
||||
msgstr "Aliment entièrement utilisé dans : {meal.name}"
|
||||
|
||||
#: apps/food/views.py:391
|
||||
#: apps/food/views.py:365
|
||||
msgid "Update an aliment"
|
||||
msgstr "Modifier un aliment"
|
||||
|
||||
#: apps/food/views.py:439
|
||||
#: apps/food/views.py:413
|
||||
msgid "Details of:"
|
||||
msgstr "Détails de :"
|
||||
|
||||
#: apps/food/views.py:449 apps/treasury/tables.py:149
|
||||
#: apps/food/views.py:423 apps/treasury/tables.py:149
|
||||
msgid "Yes"
|
||||
msgstr "Oui"
|
||||
|
||||
#: apps/food/views.py:451 apps/member/models.py:99 apps/treasury/tables.py:149
|
||||
#: apps/food/views.py:425 apps/member/models.py:99 apps/treasury/tables.py:149
|
||||
msgid "No"
|
||||
msgstr "Non"
|
||||
|
||||
@@ -910,11 +912,11 @@ msgstr "cotisation pour adhérer (normalien·ne étudiant·e)"
|
||||
msgid "roles"
|
||||
msgstr "rôles"
|
||||
|
||||
#: apps/member/admin.py:66 apps/member/models.py:351 apps/wei/models.py:290
|
||||
#: apps/member/admin.py:66 apps/member/models.py:351
|
||||
msgid "fee"
|
||||
msgstr "cotisation"
|
||||
|
||||
#: apps/member/apps.py:14 apps/wei/tables.py:286 apps/wei/tables.py:317
|
||||
#: apps/member/apps.py:14 apps/wei/tables.py:226 apps/wei/tables.py:257
|
||||
msgid "member"
|
||||
msgstr "adhérent·e"
|
||||
|
||||
@@ -975,12 +977,12 @@ msgid "Check this case if the Société Générale paid the inscription."
|
||||
msgstr "Cochez cette case si la Société Générale a payé l'inscription."
|
||||
|
||||
#: apps/member/forms.py:185 apps/registration/forms.py:78
|
||||
#: apps/wei/forms/registration.py:104
|
||||
#: apps/wei/forms/registration.py:116
|
||||
msgid "Credit type"
|
||||
msgstr "Type de rechargement"
|
||||
|
||||
#: apps/member/forms.py:186 apps/registration/forms.py:79
|
||||
#: apps/wei/forms/registration.py:105
|
||||
#: apps/wei/forms/registration.py:117
|
||||
msgid "No credit"
|
||||
msgstr "Pas de rechargement"
|
||||
|
||||
@@ -989,13 +991,13 @@ msgid "You can credit the note of the user."
|
||||
msgstr "Vous pouvez créditer la note de l'utilisateur⋅rice avant l'adhésion."
|
||||
|
||||
#: apps/member/forms.py:192 apps/registration/forms.py:84
|
||||
#: apps/wei/forms/registration.py:110
|
||||
#: apps/wei/forms/registration.py:122
|
||||
msgid "Credit amount"
|
||||
msgstr "Montant à créditer"
|
||||
|
||||
#: apps/member/forms.py:209 apps/note/templates/note/transaction_form.html:144
|
||||
#: apps/registration/forms.py:101 apps/treasury/forms.py:135
|
||||
#: apps/wei/forms/registration.py:127
|
||||
#: apps/wei/forms/registration.py:139
|
||||
msgid "Bank"
|
||||
msgstr "Banque"
|
||||
|
||||
@@ -1420,7 +1422,7 @@ msgstr "Membres du club"
|
||||
|
||||
#: apps/member/templates/member/club_detail.html:40
|
||||
#: apps/member/templates/member/profile_detail.html:32
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:105
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:75
|
||||
msgid "Transaction history"
|
||||
msgstr "Historique des transactions"
|
||||
|
||||
@@ -1974,8 +1976,8 @@ msgstr ""
|
||||
"mode de paiement et un⋅e utilisateur⋅rice ou un club"
|
||||
|
||||
#: apps/note/models/transactions.py:357 apps/note/models/transactions.py:360
|
||||
#: apps/note/models/transactions.py:363 apps/wei/views.py:1135
|
||||
#: apps/wei/views.py:1139
|
||||
#: apps/note/models/transactions.py:363 apps/wei/views.py:1103
|
||||
#: apps/wei/views.py:1107
|
||||
msgid "This field is required."
|
||||
msgstr "Ce champ est requis."
|
||||
|
||||
@@ -2077,6 +2079,8 @@ msgstr "Historique des transactions récentes"
|
||||
#: apps/note/templates/note/mails/weekly_report.txt:32
|
||||
#: apps/registration/templates/registration/mails/email_validation_email.html:40
|
||||
#: apps/registration/templates/registration/mails/email_validation_email.txt:16
|
||||
#: apps/scripts/templates/scripts/food_report.html:48
|
||||
#: apps/scripts/templates/scripts/food_report.txt:14
|
||||
msgid "Mail generated by the Note Kfet on the"
|
||||
msgstr "Mail généré par la Note Kfet le"
|
||||
|
||||
@@ -2480,7 +2484,7 @@ msgstr ""
|
||||
|
||||
#: apps/registration/templates/registration/future_profile_detail.html:73
|
||||
#: apps/wei/templates/wei/weimembership_form.html:127
|
||||
#: apps/wei/templates/wei/weimembership_form.html:194
|
||||
#: apps/wei/templates/wei/weimembership_form.html:192
|
||||
msgid "Validate registration"
|
||||
msgstr "Valider l'inscription"
|
||||
|
||||
@@ -2757,7 +2761,7 @@ msgstr "Crédits de la Société générale"
|
||||
msgid "Soge credit for {user}"
|
||||
msgstr "Crédit de la société générale pour l'utilisateur·rice {user}"
|
||||
|
||||
#: apps/treasury/models.py:444
|
||||
#: apps/treasury/models.py:446
|
||||
msgid ""
|
||||
"This user doesn't have enough money to pay the memberships with its note. "
|
||||
"Please ask her/him to credit the note before invalidating this credit."
|
||||
@@ -2939,7 +2943,7 @@ msgstr ""
|
||||
"supprimer la demande de crédit."
|
||||
|
||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:63
|
||||
#: apps/wei/tables.py:60 apps/wei/tables.py:131
|
||||
#: apps/wei/tables.py:60 apps/wei/tables.py:102
|
||||
msgid "Validate"
|
||||
msgstr "Valider"
|
||||
|
||||
@@ -3008,21 +3012,22 @@ msgstr "Gérer les crédits de la Société générale"
|
||||
|
||||
#: apps/wei/apps.py:10 apps/wei/models.py:47 apps/wei/models.py:48
|
||||
#: apps/wei/models.py:72 apps/wei/models.py:197
|
||||
#: note_kfet/templates/base.html:109
|
||||
#: note_kfet/templates/base.html:108
|
||||
msgid "WEI"
|
||||
msgstr "WEI"
|
||||
|
||||
#: apps/wei/forms/registration.py:38
|
||||
#: apps/wei/forms/registration.py:37
|
||||
msgid "The selected user is not validated. Please validate its account first"
|
||||
msgstr ""
|
||||
"L'utilisateur·rice sélectionné·e n'est pas validé·e. Merci de d'abord "
|
||||
"valider son compte"
|
||||
|
||||
#: apps/wei/forms/registration.py:72 apps/wei/models.py:107
|
||||
msgid "Bus"
|
||||
msgstr "Bus"
|
||||
#: apps/wei/forms/registration.py:84 apps/wei/models.py:145
|
||||
#: apps/wei/models.py:354
|
||||
msgid "bus"
|
||||
msgstr "bus"
|
||||
|
||||
#: apps/wei/forms/registration.py:73
|
||||
#: apps/wei/forms/registration.py:85
|
||||
msgid ""
|
||||
"This choice is not definitive. The WEI organizers are free to attribute for "
|
||||
"you a bus and a team, in particular if you are a free eletron."
|
||||
@@ -3031,11 +3036,11 @@ msgstr ""
|
||||
"vous attribuer un bus et une équipe, en particulier si vous êtes un·e "
|
||||
"électron libre."
|
||||
|
||||
#: apps/wei/forms/registration.py:80
|
||||
#: apps/wei/forms/registration.py:92
|
||||
msgid "Team"
|
||||
msgstr "Équipe"
|
||||
|
||||
#: apps/wei/forms/registration.py:82
|
||||
#: apps/wei/forms/registration.py:94
|
||||
msgid ""
|
||||
"Leave this field empty if you won't be in a team (staff, bus chief, free "
|
||||
"electron)"
|
||||
@@ -3043,35 +3048,25 @@ msgstr ""
|
||||
"Laissez ce champ vide si vous ne serez pas dans une équipe (staff, chef de "
|
||||
"bus ou électron libre)"
|
||||
|
||||
#: apps/wei/forms/registration.py:88 apps/wei/forms/registration.py:98
|
||||
#: apps/wei/forms/registration.py:100 apps/wei/forms/registration.py:110
|
||||
#: apps/wei/models.py:179
|
||||
msgid "WEI Roles"
|
||||
msgstr "Rôles au WEI"
|
||||
|
||||
#: apps/wei/forms/registration.py:89
|
||||
#: apps/wei/forms/registration.py:101
|
||||
msgid "Select the roles that you are interested in."
|
||||
msgstr "Sélectionnez les rôles qui vous intéressent."
|
||||
|
||||
#: apps/wei/forms/registration.py:148
|
||||
#: apps/wei/forms/registration.py:160
|
||||
msgid "This team doesn't belong to the given bus."
|
||||
msgstr "Cette équipe n'appartient pas à ce bus."
|
||||
|
||||
#: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38
|
||||
#: apps/wei/forms/surveys/wei2025.py:36
|
||||
msgid "Choose a word:"
|
||||
msgstr "Choisissez un mot :"
|
||||
|
||||
#: apps/wei/forms/surveys/wei2025.py:211
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Select {NB_WORDS} words that describe the WEI experience you want to have."
|
||||
msgstr ""
|
||||
|
||||
#: apps/wei/forms/surveys/wei2025.py:242
|
||||
#, python-brace-format
|
||||
msgid "Please choose exactly {NB_WORDS} words"
|
||||
msgstr ""
|
||||
|
||||
#: apps/wei/forms/surveys/wei2025.py:288
|
||||
#: apps/wei/forms/surveys/wei2025.py:123
|
||||
msgid "Rate between 0 and 5."
|
||||
msgstr "Note entre 0 et 5."
|
||||
|
||||
@@ -3089,7 +3084,7 @@ msgstr "début"
|
||||
msgid "date end"
|
||||
msgstr "fin"
|
||||
|
||||
#: apps/wei/models.py:37 apps/wei/templates/wei/base.html:53
|
||||
#: apps/wei/models.py:37
|
||||
msgid "deposit amount"
|
||||
msgstr "montant de la caution"
|
||||
|
||||
@@ -3097,7 +3092,7 @@ msgstr "montant de la caution"
|
||||
msgid "membership fee (soge credit)"
|
||||
msgstr "Cotisation pour adhérer (crédit sogé)"
|
||||
|
||||
#: apps/wei/models.py:81 apps/wei/tables.py:365
|
||||
#: apps/wei/models.py:81 apps/wei/tables.py:305
|
||||
msgid "seat count in the bus"
|
||||
msgstr "nombre de sièges dans le bus"
|
||||
|
||||
@@ -3110,13 +3105,13 @@ msgid "Information about the survey for new members, encoded in JSON"
|
||||
msgstr ""
|
||||
"Informations sur le sondage pour les nouveaux membres, encodées en JSON"
|
||||
|
||||
#: apps/wei/models.py:108 apps/wei/templates/wei/weiclub_detail.html:63
|
||||
msgid "Buses"
|
||||
#: apps/wei/models.py:107
|
||||
msgid "Bus"
|
||||
msgstr "Bus"
|
||||
|
||||
#: apps/wei/models.py:145 apps/wei/models.py:375
|
||||
msgid "bus"
|
||||
msgstr "bus"
|
||||
#: apps/wei/models.py:108 apps/wei/templates/wei/weiclub_detail.html:51
|
||||
msgid "Buses"
|
||||
msgstr "Bus"
|
||||
|
||||
#: apps/wei/models.py:154
|
||||
msgid "color"
|
||||
@@ -3143,9 +3138,10 @@ msgstr "Rôle au WEI"
|
||||
msgid "Credit from Société générale"
|
||||
msgstr "Crédit de la Société générale"
|
||||
|
||||
#: apps/wei/models.py:207
|
||||
msgid "Deposit given"
|
||||
msgstr "Caution donnée"
|
||||
#: apps/wei/models.py:207 apps/wei/templates/wei/weimembership_form.html:98
|
||||
#: apps/wei/views.py:997
|
||||
msgid "Deposit check given"
|
||||
msgstr "Chèque de caution donné"
|
||||
|
||||
#: apps/wei/models.py:213
|
||||
msgid "Check"
|
||||
@@ -3156,8 +3152,10 @@ msgid "Note transaction"
|
||||
msgstr "Transaction Note"
|
||||
|
||||
#: apps/wei/models.py:217
|
||||
#, fuzzy
|
||||
#| msgid "Credit type"
|
||||
msgid "deposit type"
|
||||
msgstr "type de caution"
|
||||
msgstr "Type de rechargement"
|
||||
|
||||
#: apps/wei/models.py:221 apps/wei/templates/wei/weimembership_form.html:64
|
||||
msgid "birth date"
|
||||
@@ -3230,35 +3228,35 @@ msgstr ""
|
||||
"Informations sur l'inscription (bus pour les 2A+, questionnaire pour les "
|
||||
"1A), encodées en JSON"
|
||||
|
||||
#: apps/wei/models.py:296
|
||||
#: apps/wei/models.py:290
|
||||
msgid "WEI User"
|
||||
msgstr "Participant·e au WEI"
|
||||
|
||||
#: apps/wei/models.py:297
|
||||
#: apps/wei/models.py:291
|
||||
msgid "WEI Users"
|
||||
msgstr "Participant·e·s au WEI"
|
||||
|
||||
#: apps/wei/models.py:385
|
||||
#: apps/wei/models.py:364
|
||||
msgid "team"
|
||||
msgstr "équipe"
|
||||
|
||||
#: apps/wei/models.py:395
|
||||
#: apps/wei/models.py:374
|
||||
msgid "WEI registration"
|
||||
msgstr "Inscription au WEI"
|
||||
|
||||
#: apps/wei/models.py:399
|
||||
#: apps/wei/models.py:378
|
||||
msgid "WEI membership"
|
||||
msgstr "Adhésion au WEI"
|
||||
|
||||
#: apps/wei/models.py:400
|
||||
#: apps/wei/models.py:379
|
||||
msgid "WEI memberships"
|
||||
msgstr "Adhésions au WEI"
|
||||
|
||||
#: apps/wei/tables.py:135
|
||||
#: apps/wei/tables.py:105
|
||||
msgid "The user does not have enough money."
|
||||
msgstr "L'utilisateur⋅rice n'a pas assez d'argent."
|
||||
|
||||
#: apps/wei/tables.py:138
|
||||
#: apps/wei/tables.py:108
|
||||
msgid ""
|
||||
"The user is in first year. You may validate the credit, the algorithm will "
|
||||
"run later."
|
||||
@@ -3266,44 +3264,44 @@ msgstr ""
|
||||
"L'utilisateur·rice est en première année, vous pouvez valider le crédit, "
|
||||
"l'algorithme tournera plus tard."
|
||||
|
||||
#: apps/wei/tables.py:141
|
||||
#: apps/wei/tables.py:111
|
||||
msgid "The user has enough money, you can validate the registration."
|
||||
msgstr "L'utilisateur⋅rice a assez d'argent, l'inscription est possible."
|
||||
|
||||
#: apps/wei/tables.py:174
|
||||
#: apps/wei/tables.py:143
|
||||
msgid "Year"
|
||||
msgstr "Année"
|
||||
|
||||
#: apps/wei/tables.py:240 apps/wei/templates/wei/weimembership_form.html:102
|
||||
#: apps/wei/tables.py:180 apps/wei/templates/wei/weimembership_form.html:102
|
||||
msgid "preferred bus"
|
||||
msgstr "bus préféré"
|
||||
|
||||
#: apps/wei/tables.py:270 apps/wei/templates/wei/bus_detail.html:38
|
||||
#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:38
|
||||
#: apps/wei/templates/wei/busteam_detail.html:52
|
||||
msgid "Teams"
|
||||
msgstr "Équipes"
|
||||
|
||||
#: apps/wei/tables.py:279 apps/wei/tables.py:320
|
||||
#: apps/wei/tables.py:219 apps/wei/tables.py:260
|
||||
msgid "Members count"
|
||||
msgstr "Nombre de membres"
|
||||
|
||||
#: apps/wei/tables.py:286 apps/wei/tables.py:317
|
||||
#: apps/wei/tables.py:226 apps/wei/tables.py:257
|
||||
msgid "members"
|
||||
msgstr "adhérent·es"
|
||||
|
||||
#: apps/wei/tables.py:347
|
||||
#: apps/wei/tables.py:287
|
||||
msgid "suggested first year"
|
||||
msgstr "1A suggéré·es"
|
||||
|
||||
#: apps/wei/tables.py:353
|
||||
#: apps/wei/tables.py:293
|
||||
msgid "validated first year"
|
||||
msgstr "1A validé·es"
|
||||
|
||||
#: apps/wei/tables.py:359
|
||||
#: apps/wei/tables.py:299
|
||||
msgid "validated staff"
|
||||
msgstr "2A+ validé·es"
|
||||
|
||||
#: apps/wei/tables.py:370
|
||||
#: apps/wei/tables.py:310
|
||||
msgid "free seats"
|
||||
msgstr "sièges libres"
|
||||
|
||||
@@ -3344,15 +3342,19 @@ msgstr "Prix du WEI (élèves)"
|
||||
msgid "WEI fee (unpaid students)"
|
||||
msgstr "Prix du WEI (étudiant⋅es)"
|
||||
|
||||
#: apps/wei/templates/wei/base.html:53
|
||||
msgid "Deposit amount"
|
||||
msgstr "Caution"
|
||||
|
||||
#: apps/wei/templates/wei/base.html:74
|
||||
msgid "WEI list"
|
||||
msgstr "Liste des WEI"
|
||||
|
||||
#: apps/wei/templates/wei/base.html:79 apps/wei/views.py:585
|
||||
#: apps/wei/templates/wei/base.html:79 apps/wei/views.py:550
|
||||
msgid "Register 1A"
|
||||
msgstr "Inscrire un⋅e 1A"
|
||||
|
||||
#: apps/wei/templates/wei/base.html:83 apps/wei/views.py:681
|
||||
#: apps/wei/templates/wei/base.html:83 apps/wei/views.py:646
|
||||
msgid "Register 2A+"
|
||||
msgstr "Inscrire un⋅e 2A+"
|
||||
|
||||
@@ -3369,8 +3371,8 @@ msgid "View club"
|
||||
msgstr "Voir le club"
|
||||
|
||||
#: apps/wei/templates/wei/bus_detail.html:26
|
||||
msgid "Edit information for survey"
|
||||
msgstr "Modifier les informations du sondage"
|
||||
msgid "Edit information"
|
||||
msgstr "Modifier les informations"
|
||||
|
||||
#: apps/wei/templates/wei/bus_detail.html:28
|
||||
#: apps/wei/templates/wei/busteam_detail.html:24
|
||||
@@ -3389,8 +3391,8 @@ msgstr "Télécharger au format PDF"
|
||||
|
||||
#: apps/wei/templates/wei/survey.html:11
|
||||
#: apps/wei/templates/wei/survey_closed.html:11
|
||||
#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1246
|
||||
#: apps/wei/views.py:1305 apps/wei/views.py:1352
|
||||
#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1165
|
||||
#: apps/wei/views.py:1220 apps/wei/views.py:1267
|
||||
msgid "Survey WEI"
|
||||
msgstr "Questionnaire WEI"
|
||||
|
||||
@@ -3419,27 +3421,19 @@ msgstr "M'inscrire au WEI ! – 1A"
|
||||
msgid "Register to the WEI! – 2A+"
|
||||
msgstr "M'inscrire au WEI ! – 2A+"
|
||||
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:42
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:40
|
||||
msgid "Update my registration"
|
||||
msgstr "Modifier mon inscription"
|
||||
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:47
|
||||
msgid "Continue survey"
|
||||
msgstr "Continuer le questionnaire"
|
||||
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:51
|
||||
msgid "Restart survey"
|
||||
msgstr "Recommencer le questionnaire"
|
||||
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:75
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:63
|
||||
msgid "Members of the WEI"
|
||||
msgstr "Membres du WEI"
|
||||
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:87
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:89
|
||||
msgid "Unvalidated registrations"
|
||||
msgstr "Inscriptions non validées"
|
||||
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:97
|
||||
#: apps/wei/templates/wei/weiclub_detail.html:99
|
||||
msgid "Attribute buses"
|
||||
msgstr "Répartition dans les bus"
|
||||
|
||||
@@ -3475,10 +3469,6 @@ msgstr "Informations brutes du sondage"
|
||||
msgid "The algorithm didn't run."
|
||||
msgstr "L'algorithme n'a pas été exécuté."
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:98 apps/wei/views.py:1029
|
||||
msgid "Deposit check given"
|
||||
msgstr "Chèque de caution donné"
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:105
|
||||
msgid "preferred team"
|
||||
msgstr "équipe préférée"
|
||||
@@ -3534,31 +3524,33 @@ msgstr "Paiements requis"
|
||||
msgid "Membership fees: %(amount)s"
|
||||
msgstr "Frais d'inscription : %(amount)s"
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:154
|
||||
#: apps/wei/templates/wei/weimembership_form.html:153
|
||||
#, python-format
|
||||
msgid "Deposit (by Note transaction): %(amount)s"
|
||||
msgstr "Caution (par transaction) : %(amount)s"
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:158
|
||||
#: apps/wei/templates/wei/weimembership_form.html:157
|
||||
#, python-format
|
||||
msgid "Deposit (by check): %(amount)s"
|
||||
msgstr "Caution (par chèque) : %(amount)s"
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:163
|
||||
#: apps/wei/templates/wei/weimembership_form.html:161
|
||||
#, python-format
|
||||
msgid "Total needed: %(total)s"
|
||||
msgstr "Total nécessaire : %(total)s"
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:167
|
||||
#: apps/wei/templates/wei/weimembership_form.html:165
|
||||
#, python-format
|
||||
msgid "Current balance: %(balance)s"
|
||||
msgstr "Solde actuel : %(balance)s"
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:174
|
||||
msgid "The user didn't give her/his caution."
|
||||
msgstr "L'utilisateur⋅rice n'a pas donné sa caution."
|
||||
#: apps/wei/templates/wei/weimembership_form.html:172
|
||||
#, fuzzy
|
||||
#| msgid "The user didn't give her/his deposit check."
|
||||
msgid "The user didn't give her/his caution check."
|
||||
msgstr "L'utilisateur⋅rice n'a pas donné son chèque de caution."
|
||||
|
||||
#: apps/wei/templates/wei/weimembership_form.html:182
|
||||
#: apps/wei/templates/wei/weimembership_form.html:180
|
||||
msgid ""
|
||||
"This user is not a member of the Kfet club for the coming year. The "
|
||||
"membership will be processed automatically, the WEI registration includes "
|
||||
@@ -3601,63 +3593,63 @@ msgstr "Chercher un WEI"
|
||||
msgid "WEI Detail"
|
||||
msgstr "Détails du WEI"
|
||||
|
||||
#: apps/wei/views.py:230
|
||||
#: apps/wei/views.py:212
|
||||
msgid "View members of the WEI"
|
||||
msgstr "Voir les membres du WEI"
|
||||
|
||||
#: apps/wei/views.py:263
|
||||
#: apps/wei/views.py:245
|
||||
msgid "Find WEI Membership"
|
||||
msgstr "Trouver une adhésion au WEI"
|
||||
|
||||
#: apps/wei/views.py:273
|
||||
#: apps/wei/views.py:255
|
||||
msgid "View registrations to the WEI"
|
||||
msgstr "Voir les inscriptions au WEI"
|
||||
|
||||
#: apps/wei/views.py:319
|
||||
#: apps/wei/views.py:284
|
||||
msgid "Find WEI Registration"
|
||||
msgstr "Trouver une inscription au WEI"
|
||||
|
||||
#: apps/wei/views.py:330
|
||||
#: apps/wei/views.py:295
|
||||
msgid "Update the WEI"
|
||||
msgstr "Modifier le WEI"
|
||||
|
||||
#: apps/wei/views.py:351
|
||||
#: apps/wei/views.py:316
|
||||
msgid "Create new bus"
|
||||
msgstr "Ajouter un nouveau bus"
|
||||
|
||||
#: apps/wei/views.py:389
|
||||
#: apps/wei/views.py:354
|
||||
msgid "Update bus"
|
||||
msgstr "Modifier le bus"
|
||||
|
||||
#: apps/wei/views.py:421
|
||||
#: apps/wei/views.py:386
|
||||
msgid "Manage bus"
|
||||
msgstr "Gérer le bus"
|
||||
|
||||
#: apps/wei/views.py:448
|
||||
#: apps/wei/views.py:413
|
||||
msgid "Create new team"
|
||||
msgstr "Créer une nouvelle équipe"
|
||||
|
||||
#: apps/wei/views.py:492
|
||||
#: apps/wei/views.py:457
|
||||
msgid "Update team"
|
||||
msgstr "Modifier l'équipe"
|
||||
|
||||
#: apps/wei/views.py:527
|
||||
#: apps/wei/views.py:492
|
||||
msgid "Manage WEI team"
|
||||
msgstr "Gérer l'équipe WEI"
|
||||
|
||||
#: apps/wei/views.py:549
|
||||
#: apps/wei/views.py:514
|
||||
msgid "Register first year student to the WEI"
|
||||
msgstr "Inscrire un⋅e 1A au WEI"
|
||||
|
||||
#: apps/wei/views.py:606 apps/wei/views.py:699
|
||||
#: apps/wei/views.py:571 apps/wei/views.py:664
|
||||
msgid "Check if you will open a Société Générale account"
|
||||
msgstr "Cochez cette case si vous ouvrez un compte à la Société Générale."
|
||||
|
||||
#: apps/wei/views.py:617 apps/wei/views.py:729
|
||||
#: apps/wei/views.py:582 apps/wei/views.py:694
|
||||
msgid "This user is already registered to this WEI."
|
||||
msgstr "Cette personne est déjà inscrite au WEI."
|
||||
|
||||
#: apps/wei/views.py:622
|
||||
#: apps/wei/views.py:587
|
||||
msgid ""
|
||||
"This user can't be in her/his first year since he/she has already "
|
||||
"participated to a WEI."
|
||||
@@ -3665,67 +3657,65 @@ msgstr ""
|
||||
"Cet⋅te utilisateur⋅rice ne peut pas être en première année puisqu'iel a déjà "
|
||||
"participé à un WEI."
|
||||
|
||||
#: apps/wei/views.py:645
|
||||
#: apps/wei/views.py:610
|
||||
msgid "Register old student to the WEI"
|
||||
msgstr "Inscrire un⋅e 2A+ au WEI"
|
||||
|
||||
#: apps/wei/views.py:703 apps/wei/views.py:826
|
||||
#: apps/wei/views.py:668 apps/wei/views.py:773
|
||||
msgid "You already opened an account in the Société générale."
|
||||
msgstr "Vous avez déjà ouvert un compte auprès de la société générale."
|
||||
|
||||
#: apps/wei/views.py:716 apps/wei/views.py:822
|
||||
#: apps/wei/views.py:681 apps/wei/views.py:790
|
||||
msgid "Choose how you want to pay the deposit"
|
||||
msgstr "Choisissez comment payer la caution"
|
||||
|
||||
#: apps/wei/views.py:768
|
||||
#: apps/wei/views.py:733
|
||||
msgid "Update WEI Registration"
|
||||
msgstr "Modifier l'inscription WEI"
|
||||
|
||||
#: apps/wei/views.py:812
|
||||
msgid "Tick if the deposit check has been given"
|
||||
msgstr "Cochez si le chèque de caution a été donné"
|
||||
|
||||
#: apps/wei/views.py:851
|
||||
#: apps/wei/views.py:816
|
||||
msgid "No membership found for this registration"
|
||||
msgstr "Pas d'adhésion trouvée pour cette inscription"
|
||||
|
||||
#: apps/wei/views.py:860
|
||||
#: apps/wei/views.py:825
|
||||
msgid "You don't have the permission to update memberships"
|
||||
msgstr "Vous n'avez pas la permission de modifier une inscription"
|
||||
|
||||
#: apps/wei/views.py:866
|
||||
#: apps/wei/views.py:831
|
||||
#, python-format
|
||||
msgid "You don't have the permission to update the field %(field)s"
|
||||
msgstr "Vous n'avez pas la permission de modifier le champ %(field)s"
|
||||
|
||||
#: apps/wei/views.py:907
|
||||
#: apps/wei/views.py:876
|
||||
msgid "Delete WEI registration"
|
||||
msgstr "Supprimer l'inscription WEI"
|
||||
|
||||
#: apps/wei/views.py:918
|
||||
#: apps/wei/views.py:887
|
||||
msgid "You don't have the right to delete this WEI registration."
|
||||
msgstr "Vous n'avez pas la permission de supprimer cette inscription au WEI."
|
||||
|
||||
#: apps/wei/views.py:936
|
||||
#: apps/wei/views.py:905
|
||||
msgid "Validate WEI registration"
|
||||
msgstr "Valider l'inscription WEI"
|
||||
|
||||
#: apps/wei/views.py:1030
|
||||
msgid "Only treasurers can validate this field"
|
||||
msgstr "Seul·e·s les trésorier·ère·s peuvent valider ce champ"
|
||||
#: apps/wei/views.py:998
|
||||
msgid "Please make sure the check is given before validating the registration"
|
||||
msgstr ""
|
||||
"Merci de vous assurer que le chèque a bien été donné avant de valider "
|
||||
"l'adhésion"
|
||||
|
||||
#: apps/wei/views.py:1036
|
||||
#: apps/wei/views.py:1004
|
||||
msgid "Create deposit transaction"
|
||||
msgstr "Créer une transaction de caution"
|
||||
|
||||
#: apps/wei/views.py:1037
|
||||
#: apps/wei/views.py:1005
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A transaction of %(amount).2f€ will be created from the user's Note account"
|
||||
msgstr ""
|
||||
"Un transaction de %(amount).2f€ va être créée depuis la note de l'utilisateur"
|
||||
|
||||
#: apps/wei/views.py:1125
|
||||
#: apps/wei/views.py:1093
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This user doesn't have enough money to join this club and pay the deposit. "
|
||||
@@ -3735,24 +3725,20 @@ msgstr ""
|
||||
"payer la caution. Solde actuel : %(balance)d€, crédit : %(credit)d€, "
|
||||
"requis : %(needed)d€"
|
||||
|
||||
#: apps/wei/views.py:1178
|
||||
#: apps/wei/views.py:1146
|
||||
#, python-format
|
||||
msgid "Deposit %(name)s"
|
||||
msgstr "Caution %(name)s"
|
||||
|
||||
#: apps/wei/views.py:1203
|
||||
msgid "Update WEI Membership"
|
||||
msgstr "Modifier une adhésion au WEI"
|
||||
|
||||
#: apps/wei/views.py:1445
|
||||
#: apps/wei/views.py:1360
|
||||
msgid "Attribute buses to first year members"
|
||||
msgstr "Répartir les 1A dans les bus"
|
||||
|
||||
#: apps/wei/views.py:1471
|
||||
#: apps/wei/views.py:1386
|
||||
msgid "Attribute bus"
|
||||
msgstr "Attribuer un bus"
|
||||
|
||||
#: apps/wei/views.py:1511
|
||||
#: apps/wei/views.py:1426
|
||||
msgid ""
|
||||
"No first year student without a bus found. Either all of them have a bus, or "
|
||||
"none has filled the survey yet."
|
||||
@@ -4109,6 +4095,14 @@ msgstr "La note est indisponible pour le moment"
|
||||
msgid "Thank you for your understanding -- The Respos Info of BDE"
|
||||
msgstr "Merci de votre compréhension -- Les Respos Info du BDE"
|
||||
|
||||
#: note_kfet/templates/base_search.html:15
|
||||
msgid "Search by attribute such as name..."
|
||||
msgstr "Chercher par un attribut tel que le nom..."
|
||||
|
||||
#: note_kfet/templates/base_search.html:23
|
||||
msgid "There is no results."
|
||||
msgstr "Il n'y a pas de résultat."
|
||||
|
||||
#: note_kfet/templates/cas/logged.html:8
|
||||
msgid ""
|
||||
"<h3>Log In Successful</h3>You have successfully logged into the Central "
|
||||
@@ -4116,10 +4110,9 @@ msgid ""
|
||||
"your web browser when you are done accessing services that require "
|
||||
"authentication!"
|
||||
msgstr ""
|
||||
"<h3>Connection réussie</h3>Vous vous êtes bien connecté au Service Central "
|
||||
"d'Authentification.<br/>Pour des raisons de sécurité, veuillez vous "
|
||||
"déconnecter et fermer votre navigateur internet une fois que vous aurez fini "
|
||||
"d'accéder aux services qui requiert une authentification !"
|
||||
"<h3>Connection réussie</h3>Vous vous êtes bien connecté au Service Central d'Authentification."
|
||||
"<br/>Pour des raisons de sécurité, veuillez vous déconnecter et fermer votre navigateur internet "
|
||||
"une fois que vous aurez fini d'accéder aux services qui requiert une authentification !"
|
||||
|
||||
#: note_kfet/templates/cas/logged.html:14
|
||||
msgid "Log me out from all my sessions"
|
||||
@@ -4365,18 +4358,6 @@ msgstr ""
|
||||
"d'adhésion. Vous devez également valider votre adresse email en suivant le "
|
||||
"lien que vous avez reçu."
|
||||
|
||||
#~ msgid "Choose {NB_WORDS} words:"
|
||||
#~ msgstr "Choisissez {NB_WORDS} mots :"
|
||||
|
||||
#~ msgid "Deposit amount"
|
||||
#~ msgstr "Caution"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Please make sure the check is given before validating the registration"
|
||||
#~ msgstr ""
|
||||
#~ "Merci de vous assurer que le chèque a bien été donné avant de valider "
|
||||
#~ "l'adhésion"
|
||||
|
||||
#~ msgid "caution amount"
|
||||
#~ msgstr "montant de la caution"
|
||||
|
||||
|
@@ -1,34 +0,0 @@
|
||||
# This is a workaround meant for use with the nix package manager. If you don't know what it is or don't use it, please ignore this file.
|
||||
#
|
||||
# The nk20 javascript static location are hardcoded for imperative system.
|
||||
# This make ./manage.py collectstatic hard to use with nixos.
|
||||
#
|
||||
# A workaround is to enter a FHSUserEnv with the static placed under /share/javascript/<static>.
|
||||
# This emulate a debian like system and enable collecting static normally with ./manage.py collectstatics.
|
||||
# The regular shell.nix should be enough for other configurations.
|
||||
#
|
||||
# Warning, you are still supposed to use pip package with a venv !
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
(pkgs.buildFHSUserEnv {
|
||||
name = "pipzone";
|
||||
targetPkgs = pkgs: (with pkgs;
|
||||
let
|
||||
fhs-static = stdenv.mkDerivation {
|
||||
name = "fhs-static";
|
||||
buildCommand = ''
|
||||
mkdir -p $out/share/javascript/bootstrap4
|
||||
mkdir -p $out/share/javascript/jquery
|
||||
ln -s ${python39Packages.xstatic-bootstrap}/lib/python3.9/site-packages/xstatic/pkg/bootstrap/data/* $out/share/javascript/bootstrap4
|
||||
ln -s ${python39Packages.xstatic-jquery}/lib/python3.9/site-packages/xstatic/pkg/jquery/data/* $out/share/javascript/jquery
|
||||
'';
|
||||
};
|
||||
in [
|
||||
fhs-static
|
||||
python39
|
||||
gettext
|
||||
python39Packages.pip
|
||||
python39Packages.virtualenv
|
||||
python39Packages.setuptools
|
||||
]);
|
||||
runScript = "bash";
|
||||
}).env
|
23
shell.nix
23
shell.nix
@@ -1,23 +0,0 @@
|
||||
# This is meant for use with the nix package manager. If you don't know what it is or don't use it, please ignore this file.
|
||||
#
|
||||
# This shell.nix contains all dependencies require to create a venv and pip install -r requirements.txt.
|
||||
#
|
||||
# Please check shell-static.nix for running ./manage.py collectstatics.
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
python39
|
||||
python39Packages.pip
|
||||
python39Packages.setuptools
|
||||
gettext
|
||||
|
||||
];
|
||||
shellHook = ''
|
||||
# Tells pip to put packages into $PIP_PREFIX instead of the usual locations.
|
||||
# See https://pip.pypa.io/en/stable/user_guide/#environment-variables.
|
||||
export PIP_PREFIX=$(pwd)/_build/pip_packages
|
||||
export PYTHONPATH="$PIP_PREFIX/${pkgs.python39.sitePackages}:$PYTHONPATH"
|
||||
export PATH="$PIP_PREFIX/bin:$PATH"
|
||||
unset SOURCE_DATE_EPOCH
|
||||
'';
|
||||
}
|
Reference in New Issue
Block a user