mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-08-30 16:41:17 +02:00
Compare commits
20 Commits
wei
...
phone_inpu
Author | SHA1 | Date | |
---|---|---|---|
|
0934b8fa34 | ||
|
7633c9ab4b | ||
|
92f6d11cb5 | ||
|
1fdb30d7d2 | ||
|
6975ed6df6 | ||
|
68e5f280b4 | ||
|
4fbbfd2365 | ||
|
0ac719b1f6 | ||
|
e55a6ae407 | ||
|
fc0071144e | ||
|
da30382f41 | ||
|
3b7f8b87c4 | ||
|
0992a8a7ee | ||
|
12477b33cb | ||
|
8c3ae338ea | ||
|
4975c1ab6f | ||
|
61999a31a5 | ||
|
b217f7ceec | ||
|
03c1bb41b6 | ||
|
f03c13a4b8 |
@@ -32,7 +32,7 @@ class ActivityForm(forms.ModelForm):
|
|||||||
def clean_organizer(self):
|
def clean_organizer(self):
|
||||||
organizer = self.cleaned_data['organizer']
|
organizer = self.cleaned_data['organizer']
|
||||||
if not organizer.note.is_active:
|
if not organizer.note.is_active:
|
||||||
self.add_error('organiser', _('The note of this club is inactive.'))
|
self.add_error('organizer', _('The note of this club is inactive.'))
|
||||||
return organizer
|
return organizer
|
||||||
|
|
||||||
def clean_date_end(self):
|
def clean_date_end(self):
|
||||||
|
@@ -10,6 +10,7 @@ from django.contrib.auth.forms import AuthenticationForm
|
|||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.forms import CheckboxSelectMultiple
|
from django.forms import CheckboxSelectMultiple
|
||||||
|
from phonenumber_field.formfields import PhoneNumberField
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from note.models import NoteSpecial, Alias
|
from note.models import NoteSpecial, Alias
|
||||||
@@ -45,6 +46,11 @@ class ProfileForm(forms.ModelForm):
|
|||||||
A form for the extras field provided by the :model:`member.Profile` model.
|
A form for the extras field provided by the :model:`member.Profile` model.
|
||||||
"""
|
"""
|
||||||
# Remove widget=forms.HiddenInput() if you want to use report frequency.
|
# Remove widget=forms.HiddenInput() if you want to use report frequency.
|
||||||
|
phone_number = PhoneNumberField(
|
||||||
|
widget=forms.TextInput(attrs={"type": "tel", "class": "form-control"}),
|
||||||
|
required=False
|
||||||
|
)
|
||||||
|
|
||||||
report_frequency = forms.IntegerField(required=False, initial=0, label=_("Report frequency"))
|
report_frequency = forms.IntegerField(required=False, initial=0, label=_("Report frequency"))
|
||||||
|
|
||||||
last_report = forms.DateTimeField(required=False, disabled=True, label=_("Last report date"))
|
last_report = forms.DateTimeField(required=False, disabled=True, label=_("Last report date"))
|
||||||
@@ -72,7 +78,12 @@ class ProfileForm(forms.ModelForm):
|
|||||||
if not self.instance.section or (("department" in self.changed_data
|
if not self.instance.section or (("department" in self.changed_data
|
||||||
or "promotion" in self.changed_data) and "section" not in self.changed_data):
|
or "promotion" in self.changed_data) and "section" not in self.changed_data):
|
||||||
self.instance.section = self.instance.section_generated
|
self.instance.section = self.instance.section_generated
|
||||||
return super().save(commit)
|
instance = super().save(commit=False)
|
||||||
|
if instance.phone_number:
|
||||||
|
instance.phone_number = instance.phone_number.as_e164
|
||||||
|
if commit:
|
||||||
|
instance.save()
|
||||||
|
return instance
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Profile
|
model = Profile
|
||||||
|
@@ -10,7 +10,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
{{ title }}
|
{{ title }}
|
||||||
</h3>
|
</h3>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form method="post">
|
<form method="post" id="profile-form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form | crispy }}
|
{{ form | crispy }}
|
||||||
{{ profile_form | crispy }}
|
{{ profile_form | crispy }}
|
||||||
@@ -21,3 +21,45 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extrajavascript %}
|
||||||
|
<!-- intl-tel-input CSS/JS -->
|
||||||
|
<script>
|
||||||
|
(() => {
|
||||||
|
const input = document.querySelector("input[name='phone_number']");
|
||||||
|
const form = document.querySelector("#profile-form");
|
||||||
|
|
||||||
|
if (!input || !form) {
|
||||||
|
console.error("Input phone_number ou form introuvable.");
|
||||||
|
}
|
||||||
|
|
||||||
|
const iti = window.intlTelInput(input, {
|
||||||
|
initialCountry: "auto",
|
||||||
|
nationalMode: false,
|
||||||
|
autoPlaceholder: "off",
|
||||||
|
geoIpLookup: callback => {
|
||||||
|
fetch("https://ipapi.co/json")
|
||||||
|
.then(res => res.json())
|
||||||
|
.then(data => callback(data.country_code))
|
||||||
|
.catch(() => callback("fr"));
|
||||||
|
},
|
||||||
|
loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.5.2/build/js/utils.js"),
|
||||||
|
});
|
||||||
|
|
||||||
|
form.addEventListener("submit", function(e){
|
||||||
|
if (!input.value.trim()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const number = iti.getNumber(intlTelInput.utils.numberFormat.E164);
|
||||||
|
if (number) {
|
||||||
|
input.value = number;
|
||||||
|
form.submit();
|
||||||
|
} else {
|
||||||
|
e.preventDefault();
|
||||||
|
input.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
@@ -69,7 +69,7 @@ class WEIRegistrationForm(forms.ModelForm):
|
|||||||
class WEIChooseBusForm(forms.Form):
|
class WEIChooseBusForm(forms.Form):
|
||||||
bus = forms.ModelMultipleChoiceField(
|
bus = forms.ModelMultipleChoiceField(
|
||||||
queryset=Bus.objects,
|
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,"
|
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."),
|
+ " in particular if you are a free eletron."),
|
||||||
widget=CheckboxSelectMultiple(),
|
widget=CheckboxSelectMultiple(),
|
||||||
|
@@ -27,41 +27,41 @@ WORDS = {
|
|||||||
"""Sur une échelle allant de 0 (= 0 alcool ou très peu) à 5 (= la fontaine de jouvence alcoolique),
|
"""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 ?""",
|
quel niveau de consommation d’alcool souhaiterais-tu ?""",
|
||||||
{
|
{
|
||||||
42: 4,
|
42: "",
|
||||||
47: 1,
|
47: "",
|
||||||
48: 3,
|
48: "",
|
||||||
45: 3.5,
|
45: "",
|
||||||
44: 4,
|
44: "",
|
||||||
46: 5,
|
46: "",
|
||||||
43: 3,
|
43: "",
|
||||||
49: 3
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"voie_post_bac": [
|
"voie_post_bac": [
|
||||||
"""Si la DA du bus de ton choix correspondait à une voie post-bac, laquelle serait-elle ?""",
|
"""Si la DA du bus de ton choix correspondait à une voie post-bac, laquelle serait-elle ?""",
|
||||||
{
|
{
|
||||||
42: "Double licence cuisine/arts du cirque option burger",
|
42: "",
|
||||||
47: "BTS Exploration de donjon",
|
47: "",
|
||||||
48: "Ecole des stars en herbe",
|
48: "",
|
||||||
45: "Déscolarisation précoce",
|
45: "",
|
||||||
44: "Rattrapage pour excès de kiff",
|
44: "",
|
||||||
46: "Double cursus STAPS / Licence d’histoire",
|
46: "",
|
||||||
43: "Recherche active d’un sugar daddy/d’un sugar mommy",
|
43: "",
|
||||||
49: "Licence de musicologie"
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"boite": [
|
"boite": [
|
||||||
"""Tu es seul·e sur une île déserte et devant toi il y a une sombre boîte de taille raisonnable.
|
"""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 ?""",
|
Qu’y a-t-il à l’intérieur ?""",
|
||||||
{
|
{
|
||||||
42: "Un burgouzz de valouzz",
|
42: "",
|
||||||
47: "Un ocarina (pour me téléporter hors de ce bourbier)",
|
47: "",
|
||||||
48: "Des paillettes, un micro de karaoké et une enceinte bluetooth",
|
48: "",
|
||||||
45: "",
|
45: "",
|
||||||
44: "Une 86 et un caisson pour taper du pied",
|
44: "",
|
||||||
46: "Une épée, un ballon et une tireuse",
|
46: "",
|
||||||
43: "Des lunettes de soleil",
|
43: "",
|
||||||
49: "Mon instrument de musique"
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"tardif": [
|
"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
|
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 ?""",
|
demain avec une journée similaire avec un autre groupe d’amis parce que t’es trop #busy. Que fais-tu ?""",
|
||||||
{
|
{
|
||||||
42: "On veut se déchaîner toute la nuit !!",
|
42: "",
|
||||||
47: "Je prends une glace et chill un moment avant d’aller dormir",
|
47: "",
|
||||||
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",
|
48: "",
|
||||||
45: "La fête continuuuuue",
|
45: "",
|
||||||
44: "Soirée sangria plage → boîte → lever de soleil sur la plage",
|
44: "",
|
||||||
46: "Minuit ? C’est l’heure du genepi. On commence les alcools forts !!",
|
46: "",
|
||||||
43: "T’enchaînes direct (faut pas les priver de ta présence)",
|
43: "",
|
||||||
49: "On continue en mode chill (soirée potins)"
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"cohesion": [
|
"cohesion": [
|
||||||
"""C’est la rentrée de Seconde et tu découvres ta classe, tes camarades et ta prof principale!!!
|
"""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 ?""",
|
qui vous propose une activité de cohésion. Laquelle est-elle ?""",
|
||||||
{
|
{
|
||||||
42: "Un relais cubi en ventriglisse",
|
42: "",
|
||||||
47: "Un jeu de rôle",
|
47: "",
|
||||||
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",
|
48: "",
|
||||||
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",
|
45: "",
|
||||||
44: "P’tit escape game + apéro",
|
44: "",
|
||||||
46: "Joute avec des boucliers Gilbert",
|
46: "",
|
||||||
43: "Tournage d’un clip de confessions nocturnes de Diam’s",
|
43: "",
|
||||||
49: "Je sais pas j’ai raté mon BAFA"
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"artiste": [
|
"artiste": [
|
||||||
"""C’est l’été et la saison des festivals a commencé. Tu regardes la programmation du festival
|
"""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 ?""",
|
pas loin de chez toi et tu découvres avec joie la présence d’un·e artiste. De qui s’agit-il ?""",
|
||||||
{
|
{
|
||||||
42: "Moto-Moto (il chantera son fameux tube “je les aime grosses, je les aime bombées”)",
|
42: "",
|
||||||
47: "Hatsune Miku",
|
47: "",
|
||||||
48: "Rihanna",
|
48: "",
|
||||||
45: "Vald",
|
45: "",
|
||||||
44: "Qui connaît vraiment les noms des artistes de tech ?",
|
44: "",
|
||||||
46: "Perceval",
|
46: "",
|
||||||
43: "Fatal bazooka",
|
43: "",
|
||||||
49: "Måneskin"
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"annonce_noel": [
|
"annonce_noel": [
|
||||||
@@ -112,77 +112,61 @@ WORDS = {
|
|||||||
D’un coup, tu te lèves, tapotes de manière pompeuse sur ton verre avec un de tes couverts.
|
D’un coup, tu te lèves, tapotes de manière pompeuse sur ton verre avec un de tes couverts.
|
||||||
Qu’annonces-tu ?""",
|
Qu’annonces-tu ?""",
|
||||||
{
|
{
|
||||||
42: """« Chère famille. Je sais bien que nous avions dit : pas de politique à table.
|
42: "",
|
||||||
Je ne peux toutefois me retenir de vous annoncer une grande nouvelle…
|
47: "",
|
||||||
j’ai décidé de quitter la ville pour consacrer ma vie au culte du Roi Julian.
|
48: "",
|
||||||
A moi la jungle luxuriante, là où le soleil chaud caresse les palmiers,
|
45: "",
|
||||||
où les lémuriens dansent avec frénésie et où chaque repas est une ode au burger sauvage.
|
44: "",
|
||||||
Longue vie à Sa Majesté le Roi Julian ! »""",
|
46: "",
|
||||||
47: "« J’ai perdu »",
|
43: "",
|
||||||
48: "« Mes chers parents je pars, j’arrête l’ENS pour devenir DJ slay à Ibiza »",
|
49: ""
|
||||||
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": [
|
"vacances": [
|
||||||
"""Les vacances sont là et t’aimerais bien partir quelque part, mais où ?""",
|
"""Les vacances sont là et t’aimerais bien partir quelque part, mais où ?""",
|
||||||
{
|
{
|
||||||
42: "A Madagascar, à bord d’un bus conduit par des pingouins",
|
42: "",
|
||||||
47: "Dans ma chambre",
|
47: "",
|
||||||
48: "Rio de Janeiro",
|
48: "",
|
||||||
45: "N'importe où tant qu'on peut sortir tous les soirs",
|
45: "",
|
||||||
44: "Tu suis les plans du club ski ou de piratens",
|
44: "",
|
||||||
46: "Carcassonne",
|
46: "",
|
||||||
43: "Coachella",
|
43: "",
|
||||||
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"
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"loisir": [
|
"loisir": [
|
||||||
"""T’as fini ta journée de cours et tu t’apprêtes à profiter d’une activité/hobby/loisir de ton choix.
|
"""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 ?""",
|
Laquelle est-ce ?""",
|
||||||
{
|
{
|
||||||
42: "Cueillir des noix de coco",
|
42: "",
|
||||||
47: "Essayer de travailler puis chill avec des potes autour d’un jeu en buvant du thé",
|
47: "",
|
||||||
48: "Repet du nouveau spectacle de mon club, before (potins) puis sortie avec les potes jusqu’au bout de la night",
|
48: "",
|
||||||
45: "Zoner avec les copaings jusqu’à pas d’heure",
|
45: "",
|
||||||
44: "Go Kfet pour se faire traquenard jusqu’à 3h du mat",
|
44: "",
|
||||||
46: "Déterminer ce qui est le plus solide entre mon crâne et une ecocup",
|
46: "",
|
||||||
43: "Revoir pour la 6e fois gossip girl au fond de ton lit",
|
43: "",
|
||||||
49: "Jouer de mon instrument préféré avec les copains/copines pour préparer le prochain concert #solidays"
|
49: ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"plan": [
|
"plan": [
|
||||||
"""Tu reçois un message sur la conversation de groupe que tu partages avec tes potes :
|
"""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 ?""",
|
vous êtes chaud·e·s pour vous retrouver. Quel plan t’attire le plus ?""",
|
||||||
{
|
{
|
||||||
42: """Après-midi piscine, puis before arrosé de mojito,
|
42: "",
|
||||||
avant d’aller s’éclater en pot avec toute la savane et de finir sur un after spécial pina colada""",
|
47: "",
|
||||||
47: """(matin) : Ptit jeu de rôle
|
48: "",
|
||||||
(repas) : le traditionnel poké-tacos
|
45: "",
|
||||||
(juste après le repas) : combat avec des épées en mousse avec les copains!
|
44: "",
|
||||||
(16h00) : pause thé
|
46: "",
|
||||||
(fin d’après midi) : initiation à la danse rock
|
43: "",
|
||||||
(soirée) : découverte d’un jeu de société avec des règles obscures
|
49: ""
|
||||||
""",
|
|
||||||
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 !"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IMAGES = {
|
IMAGES = {
|
||||||
"vacances": {
|
|
||||||
49: "/static/wei/img/logo_auvergne_rhone_alpes.jpg",
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NB_WORDS = 5
|
NB_WORDS = 5
|
||||||
|
@@ -37,13 +37,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if registration.validated %}
|
|
||||||
<a class="btn btn-warning" href="{% url "wei:wei_update_registration" pk=my_registration.pk %}"
|
<a class="btn btn-warning" href="{% url "wei:wei_update_registration" pk=my_registration.pk %}"
|
||||||
data-turbolinks="false">
|
data-turbolinks="false">
|
||||||
{% trans "Update my registration" %}
|
{% trans "Update my registration" %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% if not not_first_year %}
|
||||||
{% if my_registration.first_year %}
|
|
||||||
{% if not survey_complete %}
|
{% if not survey_complete %}
|
||||||
<a class="btn btn-warning" href="{% url "wei:wei_survey" pk=my_registration.pk %}" data-turbolinks="false">
|
<a class="btn btn-warning" href="{% url "wei:wei_survey" pk=my_registration.pk %}" data-turbolinks="false">
|
||||||
{% trans "Continue survey" %}
|
{% trans "Continue survey" %}
|
||||||
|
@@ -11,7 +11,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
{{ title }}
|
{{ title }}
|
||||||
</h3>
|
</h3>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form method="post">
|
<form id="registration-form" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
{{ membership_form|crispy }}
|
{{ membership_form|crispy }}
|
||||||
@@ -22,6 +22,46 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extrajavascript %}
|
{% block extrajavascript %}
|
||||||
|
<!-- intl-tel-input CSS/JS -->
|
||||||
|
<script>
|
||||||
|
(() => {
|
||||||
|
const input = document.querySelector("input[name='emergency_contact_phone']");
|
||||||
|
const form = document.querySelector("#registration-form");
|
||||||
|
|
||||||
|
if (!input || !form) {
|
||||||
|
console.error("Input phone_number ou form introuvable.");
|
||||||
|
}
|
||||||
|
|
||||||
|
const iti = window.intlTelInput(input, {
|
||||||
|
initialCountry: "auto",
|
||||||
|
nationalMode: false,
|
||||||
|
autoPlaceholder: "off",
|
||||||
|
geoIpLookup: callback => {
|
||||||
|
fetch("https://ipapi.co/json")
|
||||||
|
.then(res => res.json())
|
||||||
|
.then(data => callback(data.country_code))
|
||||||
|
.catch(() => callback("fr"));
|
||||||
|
},
|
||||||
|
loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.5.2/build/js/utils.js"),
|
||||||
|
});
|
||||||
|
|
||||||
|
form.addEventListener("submit", function(e){
|
||||||
|
if (!input.value.trim()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const number = iti.getNumber(intlTelInput.utils.numberFormat.E164);
|
||||||
|
if (number) {
|
||||||
|
input.value = number;
|
||||||
|
form.submit();
|
||||||
|
} else {
|
||||||
|
e.preventDefault();
|
||||||
|
input.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
{% if not object.membership %}
|
{% if not object.membership %}
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
@@ -214,8 +214,6 @@ class WEIDetailView(ProtectQuerysetMixin, LoginRequiredMixin, MultiTableMixin, D
|
|||||||
|
|
||||||
context["not_first_year"] = WEIMembership.objects.filter(user=self.request.user).exists()
|
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)
|
qs = WEIMembership.objects.filter(club=club, registration__first_year=True, bus__isnull=True)
|
||||||
context["can_validate_1a"] = PermissionBackend.check_perm(
|
context["can_validate_1a"] = PermissionBackend.check_perm(
|
||||||
self.request, "wei.change_weimembership_bus", qs.first()) if qs.exists() else False
|
self.request, "wei.change_weimembership_bus", qs.first()) if qs.exists() else False
|
||||||
|
@@ -7,9 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-15 18:17+0200\n"
|
"POT-Creation-Date: 2025-08-20 23:34+0200\n"
|
||||||
"PO-Revision-Date: 2022-04-11 22:05+0200\n"
|
"PO-Revision-Date: 2022-04-11 22:05+0200\n"
|
||||||
"Last-Translator: bleizi <bleizi@crans.org>\n"
|
"Last-Translator: ehouarn <ehouarn@crans.org>\n"
|
||||||
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
|
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,10 +19,8 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 3.0\n"
|
"X-Generator: Poedit 3.0\n"
|
||||||
|
|
||||||
#: apps/activity/api/serializers.py:77
|
#: apps/activity/api/serializers.py:77
|
||||||
#, fuzzy
|
|
||||||
#| msgid "This friendship already exists"
|
|
||||||
msgid "This opener already exists"
|
msgid "This opener already exists"
|
||||||
msgstr "Cette amitié existe déjà"
|
msgstr "Cette personne est déjà ouvreur⋅se"
|
||||||
|
|
||||||
#: apps/activity/apps.py:10 apps/activity/models.py:129
|
#: apps/activity/apps.py:10 apps/activity/models.py:129
|
||||||
#: apps/activity/models.py:169 apps/activity/models.py:329
|
#: apps/activity/models.py:169 apps/activity/models.py:329
|
||||||
@@ -66,7 +64,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/note/models/transactions.py:46 apps/note/models/transactions.py:299
|
||||||
#: apps/permission/models.py:329
|
#: apps/permission/models.py:329
|
||||||
#: apps/registration/templates/registration/future_profile_detail.html:16
|
#: apps/registration/templates/registration/future_profile_detail.html:16
|
||||||
#: apps/wei/models.py:77 apps/wei/models.py:150 apps/wei/tables.py:282
|
#: apps/wei/models.py:77 apps/wei/models.py:150 apps/wei/tables.py:342
|
||||||
#: apps/wei/templates/wei/base.html:26
|
#: apps/wei/templates/wei/base.html:26
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:14 apps/wrapped/models.py:16
|
#: apps/wei/templates/wei/weimembership_form.html:14 apps/wrapped/models.py:16
|
||||||
msgid "name"
|
msgid "name"
|
||||||
@@ -291,14 +289,14 @@ msgstr "Type"
|
|||||||
|
|
||||||
#: apps/activity/tables.py:86 apps/member/forms.py:199
|
#: apps/activity/tables.py:86 apps/member/forms.py:199
|
||||||
#: apps/registration/forms.py:91 apps/treasury/forms.py:131
|
#: apps/registration/forms.py:91 apps/treasury/forms.py:131
|
||||||
#: apps/wei/forms/registration.py:129
|
#: apps/wei/forms/registration.py:117
|
||||||
msgid "Last name"
|
msgid "Last name"
|
||||||
msgstr "Nom de famille"
|
msgstr "Nom de famille"
|
||||||
|
|
||||||
#: apps/activity/tables.py:88 apps/member/forms.py:204
|
#: apps/activity/tables.py:88 apps/member/forms.py:204
|
||||||
#: apps/note/templates/note/transaction_form.html:138
|
#: apps/note/templates/note/transaction_form.html:138
|
||||||
#: apps/registration/forms.py:96 apps/treasury/forms.py:133
|
#: apps/registration/forms.py:96 apps/treasury/forms.py:133
|
||||||
#: apps/wei/forms/registration.py:134
|
#: apps/wei/forms/registration.py:122
|
||||||
msgid "First name"
|
msgid "First name"
|
||||||
msgstr "Prénom"
|
msgstr "Prénom"
|
||||||
|
|
||||||
@@ -315,7 +313,7 @@ msgstr "Solde du compte"
|
|||||||
#: apps/note/tables.py:281 apps/treasury/tables.py:39
|
#: apps/note/tables.py:281 apps/treasury/tables.py:39
|
||||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
|
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
|
||||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:65
|
#: apps/treasury/templates/treasury/sogecredit_detail.html:65
|
||||||
#: apps/wei/tables.py:75 apps/wei/tables.py:118
|
#: apps/wei/tables.py:74 apps/wei/tables.py:75 apps/wei/tables.py:148
|
||||||
#: apps/wei/templates/wei/weiregistration_confirm_delete.html:31
|
#: 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_confirm_delete.html:18
|
||||||
#: note_kfet/templates/oauth2_provider/application_detail.html:39
|
#: note_kfet/templates/oauth2_provider/application_detail.html:39
|
||||||
@@ -406,6 +404,7 @@ msgstr "Entrée effectuée !"
|
|||||||
#: apps/wei/templates/wei/bus_form.html:17
|
#: apps/wei/templates/wei/bus_form.html:17
|
||||||
#: apps/wei/templates/wei/busteam_form.html:18
|
#: apps/wei/templates/wei/busteam_form.html:18
|
||||||
#: apps/wei/templates/wei/weiclub_form.html:17
|
#: apps/wei/templates/wei/weiclub_form.html:17
|
||||||
|
#: apps/wei/templates/wei/weimembership_update.html:17
|
||||||
#: apps/wei/templates/wei/weiregistration_form.html:18
|
#: apps/wei/templates/wei/weiregistration_form.html:18
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr "Envoyer"
|
msgstr "Envoyer"
|
||||||
@@ -462,7 +461,6 @@ msgstr "modifier"
|
|||||||
#: apps/activity/templates/activity/includes/activity_info.html:74
|
#: 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/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/permission/models.py:126 apps/treasury/tables.py:38
|
||||||
#: apps/wei/tables.py:74
|
|
||||||
msgid "delete"
|
msgid "delete"
|
||||||
msgstr "supprimer"
|
msgstr "supprimer"
|
||||||
|
|
||||||
@@ -537,7 +535,7 @@ msgstr "Pâtes METRO 5kg"
|
|||||||
|
|
||||||
#: apps/food/forms.py:53 apps/food/forms.py:81
|
#: apps/food/forms.py:53 apps/food/forms.py:81
|
||||||
msgid "Specific order given to GCKs"
|
msgid "Specific order given to GCKs"
|
||||||
msgstr ""
|
msgstr "Instruction donnée aux GCKs"
|
||||||
|
|
||||||
#: apps/food/forms.py:77
|
#: apps/food/forms.py:77
|
||||||
msgid "Lasagna"
|
msgid "Lasagna"
|
||||||
@@ -598,7 +596,7 @@ msgid "order"
|
|||||||
msgstr "consigne"
|
msgstr "consigne"
|
||||||
|
|
||||||
#: apps/food/models.py:107 apps/food/views.py:35
|
#: apps/food/models.py:107 apps/food/views.py:35
|
||||||
#: note_kfet/templates/base.html:72
|
#: note_kfet/templates/base.html:73
|
||||||
msgid "Food"
|
msgid "Food"
|
||||||
msgstr "Bouffe"
|
msgstr "Bouffe"
|
||||||
|
|
||||||
@@ -687,45 +685,45 @@ msgstr "Retour à la liste de nourriture"
|
|||||||
msgid "View food"
|
msgid "View food"
|
||||||
msgstr "Voir l'aliment"
|
msgstr "Voir l'aliment"
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:37
|
#: apps/food/templates/food/food_list.html:38
|
||||||
#: note_kfet/templates/base_search.html:15
|
#: note_kfet/templates/base_search.html:15
|
||||||
msgid "Search by attribute such as name..."
|
msgid "Search by attribute such as name..."
|
||||||
msgstr "Chercher par un attribut tel que le nom..."
|
msgstr "Chercher par un attribut tel que le nom..."
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:49
|
#: apps/food/templates/food/food_list.html:50
|
||||||
#: note_kfet/templates/base_search.html:23
|
#: note_kfet/templates/base_search.html:23
|
||||||
msgid "There is no results."
|
msgid "There is no results."
|
||||||
msgstr "Il n'y a pas de résultat."
|
msgstr "Il n'y a pas de résultat."
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:58
|
#: apps/food/templates/food/food_list.html:59
|
||||||
msgid "Meal served"
|
msgid "Meal served"
|
||||||
msgstr "Plat servis"
|
msgstr "Plat servis"
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:63
|
#: apps/food/templates/food/food_list.html:64
|
||||||
msgid "New meal"
|
msgid "New meal"
|
||||||
msgstr "Nouveau plat"
|
msgstr "Nouveau plat"
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:72
|
#: apps/food/templates/food/food_list.html:73
|
||||||
msgid "There is no meal served."
|
msgid "There is no meal served."
|
||||||
msgstr "Il n'y a pas de plat servi."
|
msgstr "Il n'y a pas de plat servi."
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:79
|
#: apps/food/templates/food/food_list.html:80
|
||||||
msgid "Free food"
|
msgid "Free food"
|
||||||
msgstr "Open"
|
msgstr "Open"
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:86
|
#: apps/food/templates/food/food_list.html:87
|
||||||
msgid "There is no free food."
|
msgid "There is no free food."
|
||||||
msgstr "Il n'y a pas de bouffe en open"
|
msgstr "Il n'y a pas de bouffe en open"
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:94
|
#: apps/food/templates/food/food_list.html:95
|
||||||
msgid "Food of your clubs"
|
msgid "Food of your clubs"
|
||||||
msgstr "Bouffe de tes clubs"
|
msgstr "Bouffe de tes clubs"
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:100
|
#: apps/food/templates/food/food_list.html:101
|
||||||
msgid "Food of club"
|
msgid "Food of club"
|
||||||
msgstr "Bouffe du club"
|
msgstr "Bouffe du club"
|
||||||
|
|
||||||
#: apps/food/templates/food/food_list.html:107
|
#: apps/food/templates/food/food_list.html:108
|
||||||
msgid "Yours club has not food yet."
|
msgid "Yours club has not food yet."
|
||||||
msgstr "Ton club n'a pas de bouffe pour l'instant"
|
msgstr "Ton club n'a pas de bouffe pour l'instant"
|
||||||
|
|
||||||
@@ -807,41 +805,41 @@ msgstr "Ajouter un nouveau QR-code"
|
|||||||
msgid "Add an aliment"
|
msgid "Add an aliment"
|
||||||
msgstr "Ajouter un nouvel aliment"
|
msgstr "Ajouter un nouvel aliment"
|
||||||
|
|
||||||
#: apps/food/views.py:228
|
#: apps/food/views.py:237
|
||||||
msgid "Add a meal"
|
msgid "Add a meal"
|
||||||
msgstr "Ajouter un plat"
|
msgstr "Ajouter un plat"
|
||||||
|
|
||||||
#: apps/food/views.py:259
|
#: apps/food/views.py:277
|
||||||
msgid "Manage ingredients of:"
|
msgid "Manage ingredients of:"
|
||||||
msgstr "Gestion des ingrédienrs de :"
|
msgstr "Gestion des ingrédienrs de :"
|
||||||
|
|
||||||
#: apps/food/views.py:273 apps/food/views.py:281
|
#: apps/food/views.py:291 apps/food/views.py:299
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Fully used in {meal}"
|
msgid "Fully used in {meal}"
|
||||||
msgstr "Aliment entièrement utilisé dans : {meal}"
|
msgstr "Aliment entièrement utilisé dans : {meal}"
|
||||||
|
|
||||||
#: apps/food/views.py:320
|
#: apps/food/views.py:346
|
||||||
msgid "Add the ingredient:"
|
msgid "Add the ingredient:"
|
||||||
msgstr "Ajouter l'ingrédient"
|
msgstr "Ajouter l'ingrédient"
|
||||||
|
|
||||||
#: apps/food/views.py:346
|
#: apps/food/views.py:372
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Food fully used in : {meal.name}"
|
msgid "Food fully used in : {meal.name}"
|
||||||
msgstr "Aliment entièrement utilisé dans : {meal.name}"
|
msgstr "Aliment entièrement utilisé dans : {meal.name}"
|
||||||
|
|
||||||
#: apps/food/views.py:365
|
#: apps/food/views.py:391
|
||||||
msgid "Update an aliment"
|
msgid "Update an aliment"
|
||||||
msgstr "Modifier un aliment"
|
msgstr "Modifier un aliment"
|
||||||
|
|
||||||
#: apps/food/views.py:413
|
#: apps/food/views.py:439
|
||||||
msgid "Details of:"
|
msgid "Details of:"
|
||||||
msgstr "Détails de :"
|
msgstr "Détails de :"
|
||||||
|
|
||||||
#: apps/food/views.py:423 apps/treasury/tables.py:149
|
#: apps/food/views.py:449 apps/treasury/tables.py:149
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Oui"
|
msgstr "Oui"
|
||||||
|
|
||||||
#: apps/food/views.py:425 apps/member/models.py:99 apps/treasury/tables.py:149
|
#: apps/food/views.py:451 apps/member/models.py:99 apps/treasury/tables.py:149
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Non"
|
msgstr "Non"
|
||||||
|
|
||||||
@@ -912,11 +910,11 @@ msgstr "cotisation pour adhérer (normalien·ne étudiant·e)"
|
|||||||
msgid "roles"
|
msgid "roles"
|
||||||
msgstr "rôles"
|
msgstr "rôles"
|
||||||
|
|
||||||
#: apps/member/admin.py:66 apps/member/models.py:351
|
#: apps/member/admin.py:66 apps/member/models.py:351 apps/wei/models.py:290
|
||||||
msgid "fee"
|
msgid "fee"
|
||||||
msgstr "cotisation"
|
msgstr "cotisation"
|
||||||
|
|
||||||
#: apps/member/apps.py:14 apps/wei/tables.py:226 apps/wei/tables.py:257
|
#: apps/member/apps.py:14 apps/wei/tables.py:286 apps/wei/tables.py:317
|
||||||
msgid "member"
|
msgid "member"
|
||||||
msgstr "adhérent·e"
|
msgstr "adhérent·e"
|
||||||
|
|
||||||
@@ -977,12 +975,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."
|
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/member/forms.py:185 apps/registration/forms.py:78
|
||||||
#: apps/wei/forms/registration.py:116
|
#: apps/wei/forms/registration.py:104
|
||||||
msgid "Credit type"
|
msgid "Credit type"
|
||||||
msgstr "Type de rechargement"
|
msgstr "Type de rechargement"
|
||||||
|
|
||||||
#: apps/member/forms.py:186 apps/registration/forms.py:79
|
#: apps/member/forms.py:186 apps/registration/forms.py:79
|
||||||
#: apps/wei/forms/registration.py:117
|
#: apps/wei/forms/registration.py:105
|
||||||
msgid "No credit"
|
msgid "No credit"
|
||||||
msgstr "Pas de rechargement"
|
msgstr "Pas de rechargement"
|
||||||
|
|
||||||
@@ -991,13 +989,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."
|
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/member/forms.py:192 apps/registration/forms.py:84
|
||||||
#: apps/wei/forms/registration.py:122
|
#: apps/wei/forms/registration.py:110
|
||||||
msgid "Credit amount"
|
msgid "Credit amount"
|
||||||
msgstr "Montant à créditer"
|
msgstr "Montant à créditer"
|
||||||
|
|
||||||
#: apps/member/forms.py:209 apps/note/templates/note/transaction_form.html:144
|
#: apps/member/forms.py:209 apps/note/templates/note/transaction_form.html:144
|
||||||
#: apps/registration/forms.py:101 apps/treasury/forms.py:135
|
#: apps/registration/forms.py:101 apps/treasury/forms.py:135
|
||||||
#: apps/wei/forms/registration.py:139
|
#: apps/wei/forms/registration.py:127
|
||||||
msgid "Bank"
|
msgid "Bank"
|
||||||
msgstr "Banque"
|
msgstr "Banque"
|
||||||
|
|
||||||
@@ -1422,7 +1420,7 @@ msgstr "Membres du club"
|
|||||||
|
|
||||||
#: apps/member/templates/member/club_detail.html:40
|
#: apps/member/templates/member/club_detail.html:40
|
||||||
#: apps/member/templates/member/profile_detail.html:32
|
#: apps/member/templates/member/profile_detail.html:32
|
||||||
#: apps/wei/templates/wei/weiclub_detail.html:75
|
#: apps/wei/templates/wei/weiclub_detail.html:105
|
||||||
msgid "Transaction history"
|
msgid "Transaction history"
|
||||||
msgstr "Historique des transactions"
|
msgstr "Historique des transactions"
|
||||||
|
|
||||||
@@ -1976,8 +1974,8 @@ msgstr ""
|
|||||||
"mode de paiement et un⋅e utilisateur⋅rice ou un club"
|
"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:357 apps/note/models/transactions.py:360
|
||||||
#: apps/note/models/transactions.py:363 apps/wei/views.py:1103
|
#: apps/note/models/transactions.py:363 apps/wei/views.py:1135
|
||||||
#: apps/wei/views.py:1107
|
#: apps/wei/views.py:1139
|
||||||
msgid "This field is required."
|
msgid "This field is required."
|
||||||
msgstr "Ce champ est requis."
|
msgstr "Ce champ est requis."
|
||||||
|
|
||||||
@@ -2079,8 +2077,6 @@ msgstr "Historique des transactions récentes"
|
|||||||
#: apps/note/templates/note/mails/weekly_report.txt:32
|
#: 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.html:40
|
||||||
#: apps/registration/templates/registration/mails/email_validation_email.txt:16
|
#: 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"
|
msgid "Mail generated by the Note Kfet on the"
|
||||||
msgstr "Mail généré par la Note Kfet le"
|
msgstr "Mail généré par la Note Kfet le"
|
||||||
|
|
||||||
@@ -2484,7 +2480,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: apps/registration/templates/registration/future_profile_detail.html:73
|
#: apps/registration/templates/registration/future_profile_detail.html:73
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:127
|
#: apps/wei/templates/wei/weimembership_form.html:127
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:192
|
#: apps/wei/templates/wei/weimembership_form.html:194
|
||||||
msgid "Validate registration"
|
msgid "Validate registration"
|
||||||
msgstr "Valider l'inscription"
|
msgstr "Valider l'inscription"
|
||||||
|
|
||||||
@@ -2761,7 +2757,7 @@ msgstr "Crédits de la Société générale"
|
|||||||
msgid "Soge credit for {user}"
|
msgid "Soge credit for {user}"
|
||||||
msgstr "Crédit de la société générale pour l'utilisateur·rice {user}"
|
msgstr "Crédit de la société générale pour l'utilisateur·rice {user}"
|
||||||
|
|
||||||
#: apps/treasury/models.py:446
|
#: apps/treasury/models.py:444
|
||||||
msgid ""
|
msgid ""
|
||||||
"This user doesn't have enough money to pay the memberships with its note. "
|
"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."
|
"Please ask her/him to credit the note before invalidating this credit."
|
||||||
@@ -2943,7 +2939,7 @@ msgstr ""
|
|||||||
"supprimer la demande de crédit."
|
"supprimer la demande de crédit."
|
||||||
|
|
||||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:63
|
#: apps/treasury/templates/treasury/sogecredit_detail.html:63
|
||||||
#: apps/wei/tables.py:60 apps/wei/tables.py:102
|
#: apps/wei/tables.py:60 apps/wei/tables.py:131
|
||||||
msgid "Validate"
|
msgid "Validate"
|
||||||
msgstr "Valider"
|
msgstr "Valider"
|
||||||
|
|
||||||
@@ -3012,22 +3008,21 @@ 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/apps.py:10 apps/wei/models.py:47 apps/wei/models.py:48
|
||||||
#: apps/wei/models.py:72 apps/wei/models.py:197
|
#: apps/wei/models.py:72 apps/wei/models.py:197
|
||||||
#: note_kfet/templates/base.html:108
|
#: note_kfet/templates/base.html:109
|
||||||
msgid "WEI"
|
msgid "WEI"
|
||||||
msgstr "WEI"
|
msgstr "WEI"
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:37
|
#: apps/wei/forms/registration.py:38
|
||||||
msgid "The selected user is not validated. Please validate its account first"
|
msgid "The selected user is not validated. Please validate its account first"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"L'utilisateur·rice sélectionné·e n'est pas validé·e. Merci de d'abord "
|
"L'utilisateur·rice sélectionné·e n'est pas validé·e. Merci de d'abord "
|
||||||
"valider son compte"
|
"valider son compte"
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:84 apps/wei/models.py:145
|
#: apps/wei/forms/registration.py:72 apps/wei/models.py:107
|
||||||
#: apps/wei/models.py:354
|
msgid "Bus"
|
||||||
msgid "bus"
|
msgstr "Bus"
|
||||||
msgstr "bus"
|
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:85
|
#: apps/wei/forms/registration.py:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"This choice is not definitive. The WEI organizers are free to attribute for "
|
"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."
|
"you a bus and a team, in particular if you are a free eletron."
|
||||||
@@ -3036,11 +3031,11 @@ msgstr ""
|
|||||||
"vous attribuer un bus et une équipe, en particulier si vous êtes un·e "
|
"vous attribuer un bus et une équipe, en particulier si vous êtes un·e "
|
||||||
"électron libre."
|
"électron libre."
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:92
|
#: apps/wei/forms/registration.py:80
|
||||||
msgid "Team"
|
msgid "Team"
|
||||||
msgstr "Équipe"
|
msgstr "Équipe"
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:94
|
#: apps/wei/forms/registration.py:82
|
||||||
msgid ""
|
msgid ""
|
||||||
"Leave this field empty if you won't be in a team (staff, bus chief, free "
|
"Leave this field empty if you won't be in a team (staff, bus chief, free "
|
||||||
"electron)"
|
"electron)"
|
||||||
@@ -3048,25 +3043,35 @@ msgstr ""
|
|||||||
"Laissez ce champ vide si vous ne serez pas dans une équipe (staff, chef de "
|
"Laissez ce champ vide si vous ne serez pas dans une équipe (staff, chef de "
|
||||||
"bus ou électron libre)"
|
"bus ou électron libre)"
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:100 apps/wei/forms/registration.py:110
|
#: apps/wei/forms/registration.py:88 apps/wei/forms/registration.py:98
|
||||||
#: apps/wei/models.py:179
|
#: apps/wei/models.py:179
|
||||||
msgid "WEI Roles"
|
msgid "WEI Roles"
|
||||||
msgstr "Rôles au WEI"
|
msgstr "Rôles au WEI"
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:101
|
#: apps/wei/forms/registration.py:89
|
||||||
msgid "Select the roles that you are interested in."
|
msgid "Select the roles that you are interested in."
|
||||||
msgstr "Sélectionnez les rôles qui vous intéressent."
|
msgstr "Sélectionnez les rôles qui vous intéressent."
|
||||||
|
|
||||||
#: apps/wei/forms/registration.py:160
|
#: apps/wei/forms/registration.py:148
|
||||||
msgid "This team doesn't belong to the given bus."
|
msgid "This team doesn't belong to the given bus."
|
||||||
msgstr "Cette équipe n'appartient pas à ce 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/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38
|
||||||
#: apps/wei/forms/surveys/wei2025.py:36
|
|
||||||
msgid "Choose a word:"
|
msgid "Choose a word:"
|
||||||
msgstr "Choisissez un mot :"
|
msgstr "Choisissez un mot :"
|
||||||
|
|
||||||
#: apps/wei/forms/surveys/wei2025.py:123
|
#: 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
|
||||||
msgid "Rate between 0 and 5."
|
msgid "Rate between 0 and 5."
|
||||||
msgstr "Note entre 0 et 5."
|
msgstr "Note entre 0 et 5."
|
||||||
|
|
||||||
@@ -3084,7 +3089,7 @@ msgstr "début"
|
|||||||
msgid "date end"
|
msgid "date end"
|
||||||
msgstr "fin"
|
msgstr "fin"
|
||||||
|
|
||||||
#: apps/wei/models.py:37
|
#: apps/wei/models.py:37 apps/wei/templates/wei/base.html:53
|
||||||
msgid "deposit amount"
|
msgid "deposit amount"
|
||||||
msgstr "montant de la caution"
|
msgstr "montant de la caution"
|
||||||
|
|
||||||
@@ -3092,7 +3097,7 @@ msgstr "montant de la caution"
|
|||||||
msgid "membership fee (soge credit)"
|
msgid "membership fee (soge credit)"
|
||||||
msgstr "Cotisation pour adhérer (crédit sogé)"
|
msgstr "Cotisation pour adhérer (crédit sogé)"
|
||||||
|
|
||||||
#: apps/wei/models.py:81 apps/wei/tables.py:305
|
#: apps/wei/models.py:81 apps/wei/tables.py:365
|
||||||
msgid "seat count in the bus"
|
msgid "seat count in the bus"
|
||||||
msgstr "nombre de sièges dans le bus"
|
msgstr "nombre de sièges dans le bus"
|
||||||
|
|
||||||
@@ -3105,14 +3110,14 @@ msgid "Information about the survey for new members, encoded in JSON"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Informations sur le sondage pour les nouveaux membres, encodées en JSON"
|
"Informations sur le sondage pour les nouveaux membres, encodées en JSON"
|
||||||
|
|
||||||
#: apps/wei/models.py:107
|
#: apps/wei/models.py:108 apps/wei/templates/wei/weiclub_detail.html:63
|
||||||
msgid "Bus"
|
|
||||||
msgstr "Bus"
|
|
||||||
|
|
||||||
#: apps/wei/models.py:108 apps/wei/templates/wei/weiclub_detail.html:51
|
|
||||||
msgid "Buses"
|
msgid "Buses"
|
||||||
msgstr "Bus"
|
msgstr "Bus"
|
||||||
|
|
||||||
|
#: apps/wei/models.py:145 apps/wei/models.py:375
|
||||||
|
msgid "bus"
|
||||||
|
msgstr "bus"
|
||||||
|
|
||||||
#: apps/wei/models.py:154
|
#: apps/wei/models.py:154
|
||||||
msgid "color"
|
msgid "color"
|
||||||
msgstr "couleur"
|
msgstr "couleur"
|
||||||
@@ -3138,10 +3143,9 @@ msgstr "Rôle au WEI"
|
|||||||
msgid "Credit from Société générale"
|
msgid "Credit from Société générale"
|
||||||
msgstr "Crédit de la Société générale"
|
msgstr "Crédit de la Société générale"
|
||||||
|
|
||||||
#: apps/wei/models.py:207 apps/wei/templates/wei/weimembership_form.html:98
|
#: apps/wei/models.py:207
|
||||||
#: apps/wei/views.py:997
|
msgid "Deposit given"
|
||||||
msgid "Deposit check given"
|
msgstr "Caution donnée"
|
||||||
msgstr "Chèque de caution donné"
|
|
||||||
|
|
||||||
#: apps/wei/models.py:213
|
#: apps/wei/models.py:213
|
||||||
msgid "Check"
|
msgid "Check"
|
||||||
@@ -3152,10 +3156,8 @@ msgid "Note transaction"
|
|||||||
msgstr "Transaction Note"
|
msgstr "Transaction Note"
|
||||||
|
|
||||||
#: apps/wei/models.py:217
|
#: apps/wei/models.py:217
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Credit type"
|
|
||||||
msgid "deposit type"
|
msgid "deposit type"
|
||||||
msgstr "Type de rechargement"
|
msgstr "type de caution"
|
||||||
|
|
||||||
#: apps/wei/models.py:221 apps/wei/templates/wei/weimembership_form.html:64
|
#: apps/wei/models.py:221 apps/wei/templates/wei/weimembership_form.html:64
|
||||||
msgid "birth date"
|
msgid "birth date"
|
||||||
@@ -3228,35 +3230,35 @@ msgstr ""
|
|||||||
"Informations sur l'inscription (bus pour les 2A+, questionnaire pour les "
|
"Informations sur l'inscription (bus pour les 2A+, questionnaire pour les "
|
||||||
"1A), encodées en JSON"
|
"1A), encodées en JSON"
|
||||||
|
|
||||||
#: apps/wei/models.py:290
|
#: apps/wei/models.py:296
|
||||||
msgid "WEI User"
|
msgid "WEI User"
|
||||||
msgstr "Participant·e au WEI"
|
msgstr "Participant·e au WEI"
|
||||||
|
|
||||||
#: apps/wei/models.py:291
|
#: apps/wei/models.py:297
|
||||||
msgid "WEI Users"
|
msgid "WEI Users"
|
||||||
msgstr "Participant·e·s au WEI"
|
msgstr "Participant·e·s au WEI"
|
||||||
|
|
||||||
#: apps/wei/models.py:364
|
#: apps/wei/models.py:385
|
||||||
msgid "team"
|
msgid "team"
|
||||||
msgstr "équipe"
|
msgstr "équipe"
|
||||||
|
|
||||||
#: apps/wei/models.py:374
|
#: apps/wei/models.py:395
|
||||||
msgid "WEI registration"
|
msgid "WEI registration"
|
||||||
msgstr "Inscription au WEI"
|
msgstr "Inscription au WEI"
|
||||||
|
|
||||||
#: apps/wei/models.py:378
|
#: apps/wei/models.py:399
|
||||||
msgid "WEI membership"
|
msgid "WEI membership"
|
||||||
msgstr "Adhésion au WEI"
|
msgstr "Adhésion au WEI"
|
||||||
|
|
||||||
#: apps/wei/models.py:379
|
#: apps/wei/models.py:400
|
||||||
msgid "WEI memberships"
|
msgid "WEI memberships"
|
||||||
msgstr "Adhésions au WEI"
|
msgstr "Adhésions au WEI"
|
||||||
|
|
||||||
#: apps/wei/tables.py:105
|
#: apps/wei/tables.py:135
|
||||||
msgid "The user does not have enough money."
|
msgid "The user does not have enough money."
|
||||||
msgstr "L'utilisateur⋅rice n'a pas assez d'argent."
|
msgstr "L'utilisateur⋅rice n'a pas assez d'argent."
|
||||||
|
|
||||||
#: apps/wei/tables.py:108
|
#: apps/wei/tables.py:138
|
||||||
msgid ""
|
msgid ""
|
||||||
"The user is in first year. You may validate the credit, the algorithm will "
|
"The user is in first year. You may validate the credit, the algorithm will "
|
||||||
"run later."
|
"run later."
|
||||||
@@ -3264,44 +3266,44 @@ msgstr ""
|
|||||||
"L'utilisateur·rice est en première année, vous pouvez valider le crédit, "
|
"L'utilisateur·rice est en première année, vous pouvez valider le crédit, "
|
||||||
"l'algorithme tournera plus tard."
|
"l'algorithme tournera plus tard."
|
||||||
|
|
||||||
#: apps/wei/tables.py:111
|
#: apps/wei/tables.py:141
|
||||||
msgid "The user has enough money, you can validate the registration."
|
msgid "The user has enough money, you can validate the registration."
|
||||||
msgstr "L'utilisateur⋅rice a assez d'argent, l'inscription est possible."
|
msgstr "L'utilisateur⋅rice a assez d'argent, l'inscription est possible."
|
||||||
|
|
||||||
#: apps/wei/tables.py:143
|
#: apps/wei/tables.py:174
|
||||||
msgid "Year"
|
msgid "Year"
|
||||||
msgstr "Année"
|
msgstr "Année"
|
||||||
|
|
||||||
#: apps/wei/tables.py:180 apps/wei/templates/wei/weimembership_form.html:102
|
#: apps/wei/tables.py:240 apps/wei/templates/wei/weimembership_form.html:102
|
||||||
msgid "preferred bus"
|
msgid "preferred bus"
|
||||||
msgstr "bus préféré"
|
msgstr "bus préféré"
|
||||||
|
|
||||||
#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:38
|
#: apps/wei/tables.py:270 apps/wei/templates/wei/bus_detail.html:38
|
||||||
#: apps/wei/templates/wei/busteam_detail.html:52
|
#: apps/wei/templates/wei/busteam_detail.html:52
|
||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Équipes"
|
msgstr "Équipes"
|
||||||
|
|
||||||
#: apps/wei/tables.py:219 apps/wei/tables.py:260
|
#: apps/wei/tables.py:279 apps/wei/tables.py:320
|
||||||
msgid "Members count"
|
msgid "Members count"
|
||||||
msgstr "Nombre de membres"
|
msgstr "Nombre de membres"
|
||||||
|
|
||||||
#: apps/wei/tables.py:226 apps/wei/tables.py:257
|
#: apps/wei/tables.py:286 apps/wei/tables.py:317
|
||||||
msgid "members"
|
msgid "members"
|
||||||
msgstr "adhérent·es"
|
msgstr "adhérent·es"
|
||||||
|
|
||||||
#: apps/wei/tables.py:287
|
#: apps/wei/tables.py:347
|
||||||
msgid "suggested first year"
|
msgid "suggested first year"
|
||||||
msgstr "1A suggéré·es"
|
msgstr "1A suggéré·es"
|
||||||
|
|
||||||
#: apps/wei/tables.py:293
|
#: apps/wei/tables.py:353
|
||||||
msgid "validated first year"
|
msgid "validated first year"
|
||||||
msgstr "1A validé·es"
|
msgstr "1A validé·es"
|
||||||
|
|
||||||
#: apps/wei/tables.py:299
|
#: apps/wei/tables.py:359
|
||||||
msgid "validated staff"
|
msgid "validated staff"
|
||||||
msgstr "2A+ validé·es"
|
msgstr "2A+ validé·es"
|
||||||
|
|
||||||
#: apps/wei/tables.py:310
|
#: apps/wei/tables.py:370
|
||||||
msgid "free seats"
|
msgid "free seats"
|
||||||
msgstr "sièges libres"
|
msgstr "sièges libres"
|
||||||
|
|
||||||
@@ -3342,19 +3344,15 @@ msgstr "Prix du WEI (élèves)"
|
|||||||
msgid "WEI fee (unpaid students)"
|
msgid "WEI fee (unpaid students)"
|
||||||
msgstr "Prix du WEI (étudiant⋅es)"
|
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
|
#: apps/wei/templates/wei/base.html:74
|
||||||
msgid "WEI list"
|
msgid "WEI list"
|
||||||
msgstr "Liste des WEI"
|
msgstr "Liste des WEI"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/base.html:79 apps/wei/views.py:550
|
#: apps/wei/templates/wei/base.html:79 apps/wei/views.py:585
|
||||||
msgid "Register 1A"
|
msgid "Register 1A"
|
||||||
msgstr "Inscrire un⋅e 1A"
|
msgstr "Inscrire un⋅e 1A"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/base.html:83 apps/wei/views.py:646
|
#: apps/wei/templates/wei/base.html:83 apps/wei/views.py:681
|
||||||
msgid "Register 2A+"
|
msgid "Register 2A+"
|
||||||
msgstr "Inscrire un⋅e 2A+"
|
msgstr "Inscrire un⋅e 2A+"
|
||||||
|
|
||||||
@@ -3371,8 +3369,8 @@ msgid "View club"
|
|||||||
msgstr "Voir le club"
|
msgstr "Voir le club"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/bus_detail.html:26
|
#: apps/wei/templates/wei/bus_detail.html:26
|
||||||
msgid "Edit information"
|
msgid "Edit information for survey"
|
||||||
msgstr "Modifier les informations"
|
msgstr "Modifier les informations du sondage"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/bus_detail.html:28
|
#: apps/wei/templates/wei/bus_detail.html:28
|
||||||
#: apps/wei/templates/wei/busteam_detail.html:24
|
#: apps/wei/templates/wei/busteam_detail.html:24
|
||||||
@@ -3391,8 +3389,8 @@ msgstr "Télécharger au format PDF"
|
|||||||
|
|
||||||
#: apps/wei/templates/wei/survey.html:11
|
#: apps/wei/templates/wei/survey.html:11
|
||||||
#: apps/wei/templates/wei/survey_closed.html:11
|
#: apps/wei/templates/wei/survey_closed.html:11
|
||||||
#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1165
|
#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1246
|
||||||
#: apps/wei/views.py:1220 apps/wei/views.py:1267
|
#: apps/wei/views.py:1305 apps/wei/views.py:1352
|
||||||
msgid "Survey WEI"
|
msgid "Survey WEI"
|
||||||
msgstr "Questionnaire WEI"
|
msgstr "Questionnaire WEI"
|
||||||
|
|
||||||
@@ -3421,19 +3419,27 @@ msgstr "M'inscrire au WEI ! – 1A"
|
|||||||
msgid "Register to the WEI! – 2A+"
|
msgid "Register to the WEI! – 2A+"
|
||||||
msgstr "M'inscrire au WEI ! – 2A+"
|
msgstr "M'inscrire au WEI ! – 2A+"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weiclub_detail.html:40
|
#: apps/wei/templates/wei/weiclub_detail.html:42
|
||||||
msgid "Update my registration"
|
msgid "Update my registration"
|
||||||
msgstr "Modifier mon inscription"
|
msgstr "Modifier mon inscription"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weiclub_detail.html:63
|
#: 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
|
||||||
msgid "Members of the WEI"
|
msgid "Members of the WEI"
|
||||||
msgstr "Membres du WEI"
|
msgstr "Membres du WEI"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weiclub_detail.html:89
|
#: apps/wei/templates/wei/weiclub_detail.html:87
|
||||||
msgid "Unvalidated registrations"
|
msgid "Unvalidated registrations"
|
||||||
msgstr "Inscriptions non validées"
|
msgstr "Inscriptions non validées"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weiclub_detail.html:99
|
#: apps/wei/templates/wei/weiclub_detail.html:97
|
||||||
msgid "Attribute buses"
|
msgid "Attribute buses"
|
||||||
msgstr "Répartition dans les bus"
|
msgstr "Répartition dans les bus"
|
||||||
|
|
||||||
@@ -3469,6 +3475,10 @@ msgstr "Informations brutes du sondage"
|
|||||||
msgid "The algorithm didn't run."
|
msgid "The algorithm didn't run."
|
||||||
msgstr "L'algorithme n'a pas été exécuté."
|
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
|
#: apps/wei/templates/wei/weimembership_form.html:105
|
||||||
msgid "preferred team"
|
msgid "preferred team"
|
||||||
msgstr "équipe préférée"
|
msgstr "équipe préférée"
|
||||||
@@ -3524,33 +3534,31 @@ msgstr "Paiements requis"
|
|||||||
msgid "Membership fees: %(amount)s"
|
msgid "Membership fees: %(amount)s"
|
||||||
msgstr "Frais d'inscription : %(amount)s"
|
msgstr "Frais d'inscription : %(amount)s"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:153
|
#: apps/wei/templates/wei/weimembership_form.html:154
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Deposit (by Note transaction): %(amount)s"
|
msgid "Deposit (by Note transaction): %(amount)s"
|
||||||
msgstr "Caution (par transaction) : %(amount)s"
|
msgstr "Caution (par transaction) : %(amount)s"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:157
|
#: apps/wei/templates/wei/weimembership_form.html:158
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Deposit (by check): %(amount)s"
|
msgid "Deposit (by check): %(amount)s"
|
||||||
msgstr "Caution (par chèque) : %(amount)s"
|
msgstr "Caution (par chèque) : %(amount)s"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:161
|
#: apps/wei/templates/wei/weimembership_form.html:163
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Total needed: %(total)s"
|
msgid "Total needed: %(total)s"
|
||||||
msgstr "Total nécessaire : %(total)s"
|
msgstr "Total nécessaire : %(total)s"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:165
|
#: apps/wei/templates/wei/weimembership_form.html:167
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Current balance: %(balance)s"
|
msgid "Current balance: %(balance)s"
|
||||||
msgstr "Solde actuel : %(balance)s"
|
msgstr "Solde actuel : %(balance)s"
|
||||||
|
|
||||||
#: apps/wei/templates/wei/weimembership_form.html:172
|
#: apps/wei/templates/wei/weimembership_form.html:174
|
||||||
#, fuzzy
|
msgid "The user didn't give her/his caution."
|
||||||
#| msgid "The user didn't give her/his deposit check."
|
msgstr "L'utilisateur⋅rice n'a pas donné sa caution."
|
||||||
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:180
|
#: apps/wei/templates/wei/weimembership_form.html:182
|
||||||
msgid ""
|
msgid ""
|
||||||
"This user is not a member of the Kfet club for the coming year. The "
|
"This user is not a member of the Kfet club for the coming year. The "
|
||||||
"membership will be processed automatically, the WEI registration includes "
|
"membership will be processed automatically, the WEI registration includes "
|
||||||
@@ -3593,63 +3601,63 @@ msgstr "Chercher un WEI"
|
|||||||
msgid "WEI Detail"
|
msgid "WEI Detail"
|
||||||
msgstr "Détails du WEI"
|
msgstr "Détails du WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:212
|
#: apps/wei/views.py:230
|
||||||
msgid "View members of the WEI"
|
msgid "View members of the WEI"
|
||||||
msgstr "Voir les membres du WEI"
|
msgstr "Voir les membres du WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:245
|
#: apps/wei/views.py:263
|
||||||
msgid "Find WEI Membership"
|
msgid "Find WEI Membership"
|
||||||
msgstr "Trouver une adhésion au WEI"
|
msgstr "Trouver une adhésion au WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:255
|
#: apps/wei/views.py:273
|
||||||
msgid "View registrations to the WEI"
|
msgid "View registrations to the WEI"
|
||||||
msgstr "Voir les inscriptions au WEI"
|
msgstr "Voir les inscriptions au WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:284
|
#: apps/wei/views.py:319
|
||||||
msgid "Find WEI Registration"
|
msgid "Find WEI Registration"
|
||||||
msgstr "Trouver une inscription au WEI"
|
msgstr "Trouver une inscription au WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:295
|
#: apps/wei/views.py:330
|
||||||
msgid "Update the WEI"
|
msgid "Update the WEI"
|
||||||
msgstr "Modifier le WEI"
|
msgstr "Modifier le WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:316
|
#: apps/wei/views.py:351
|
||||||
msgid "Create new bus"
|
msgid "Create new bus"
|
||||||
msgstr "Ajouter un nouveau bus"
|
msgstr "Ajouter un nouveau bus"
|
||||||
|
|
||||||
#: apps/wei/views.py:354
|
#: apps/wei/views.py:389
|
||||||
msgid "Update bus"
|
msgid "Update bus"
|
||||||
msgstr "Modifier le bus"
|
msgstr "Modifier le bus"
|
||||||
|
|
||||||
#: apps/wei/views.py:386
|
#: apps/wei/views.py:421
|
||||||
msgid "Manage bus"
|
msgid "Manage bus"
|
||||||
msgstr "Gérer le bus"
|
msgstr "Gérer le bus"
|
||||||
|
|
||||||
#: apps/wei/views.py:413
|
#: apps/wei/views.py:448
|
||||||
msgid "Create new team"
|
msgid "Create new team"
|
||||||
msgstr "Créer une nouvelle équipe"
|
msgstr "Créer une nouvelle équipe"
|
||||||
|
|
||||||
#: apps/wei/views.py:457
|
#: apps/wei/views.py:492
|
||||||
msgid "Update team"
|
msgid "Update team"
|
||||||
msgstr "Modifier l'équipe"
|
msgstr "Modifier l'équipe"
|
||||||
|
|
||||||
#: apps/wei/views.py:492
|
#: apps/wei/views.py:527
|
||||||
msgid "Manage WEI team"
|
msgid "Manage WEI team"
|
||||||
msgstr "Gérer l'équipe WEI"
|
msgstr "Gérer l'équipe WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:514
|
#: apps/wei/views.py:549
|
||||||
msgid "Register first year student to the WEI"
|
msgid "Register first year student to the WEI"
|
||||||
msgstr "Inscrire un⋅e 1A au WEI"
|
msgstr "Inscrire un⋅e 1A au WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:571 apps/wei/views.py:664
|
#: apps/wei/views.py:606 apps/wei/views.py:699
|
||||||
msgid "Check if you will open a Société Générale account"
|
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."
|
msgstr "Cochez cette case si vous ouvrez un compte à la Société Générale."
|
||||||
|
|
||||||
#: apps/wei/views.py:582 apps/wei/views.py:694
|
#: apps/wei/views.py:617 apps/wei/views.py:729
|
||||||
msgid "This user is already registered to this WEI."
|
msgid "This user is already registered to this WEI."
|
||||||
msgstr "Cette personne est déjà inscrite au WEI."
|
msgstr "Cette personne est déjà inscrite au WEI."
|
||||||
|
|
||||||
#: apps/wei/views.py:587
|
#: apps/wei/views.py:622
|
||||||
msgid ""
|
msgid ""
|
||||||
"This user can't be in her/his first year since he/she has already "
|
"This user can't be in her/his first year since he/she has already "
|
||||||
"participated to a WEI."
|
"participated to a WEI."
|
||||||
@@ -3657,65 +3665,67 @@ msgstr ""
|
|||||||
"Cet⋅te utilisateur⋅rice ne peut pas être en première année puisqu'iel a déjà "
|
"Cet⋅te utilisateur⋅rice ne peut pas être en première année puisqu'iel a déjà "
|
||||||
"participé à un WEI."
|
"participé à un WEI."
|
||||||
|
|
||||||
#: apps/wei/views.py:610
|
#: apps/wei/views.py:645
|
||||||
msgid "Register old student to the WEI"
|
msgid "Register old student to the WEI"
|
||||||
msgstr "Inscrire un⋅e 2A+ au WEI"
|
msgstr "Inscrire un⋅e 2A+ au WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:668 apps/wei/views.py:773
|
#: apps/wei/views.py:703 apps/wei/views.py:826
|
||||||
msgid "You already opened an account in the Société générale."
|
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."
|
msgstr "Vous avez déjà ouvert un compte auprès de la société générale."
|
||||||
|
|
||||||
#: apps/wei/views.py:681 apps/wei/views.py:790
|
#: apps/wei/views.py:716 apps/wei/views.py:822
|
||||||
msgid "Choose how you want to pay the deposit"
|
msgid "Choose how you want to pay the deposit"
|
||||||
msgstr "Choisissez comment payer la caution"
|
msgstr "Choisissez comment payer la caution"
|
||||||
|
|
||||||
#: apps/wei/views.py:733
|
#: apps/wei/views.py:768
|
||||||
msgid "Update WEI Registration"
|
msgid "Update WEI Registration"
|
||||||
msgstr "Modifier l'inscription WEI"
|
msgstr "Modifier l'inscription WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:816
|
#: 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
|
||||||
msgid "No membership found for this registration"
|
msgid "No membership found for this registration"
|
||||||
msgstr "Pas d'adhésion trouvée pour cette inscription"
|
msgstr "Pas d'adhésion trouvée pour cette inscription"
|
||||||
|
|
||||||
#: apps/wei/views.py:825
|
#: apps/wei/views.py:860
|
||||||
msgid "You don't have the permission to update memberships"
|
msgid "You don't have the permission to update memberships"
|
||||||
msgstr "Vous n'avez pas la permission de modifier une inscription"
|
msgstr "Vous n'avez pas la permission de modifier une inscription"
|
||||||
|
|
||||||
#: apps/wei/views.py:831
|
#: apps/wei/views.py:866
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You don't have the permission to update the field %(field)s"
|
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"
|
msgstr "Vous n'avez pas la permission de modifier le champ %(field)s"
|
||||||
|
|
||||||
#: apps/wei/views.py:876
|
#: apps/wei/views.py:907
|
||||||
msgid "Delete WEI registration"
|
msgid "Delete WEI registration"
|
||||||
msgstr "Supprimer l'inscription WEI"
|
msgstr "Supprimer l'inscription WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:887
|
#: apps/wei/views.py:918
|
||||||
msgid "You don't have the right to delete this WEI registration."
|
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."
|
msgstr "Vous n'avez pas la permission de supprimer cette inscription au WEI."
|
||||||
|
|
||||||
#: apps/wei/views.py:905
|
#: apps/wei/views.py:936
|
||||||
msgid "Validate WEI registration"
|
msgid "Validate WEI registration"
|
||||||
msgstr "Valider l'inscription WEI"
|
msgstr "Valider l'inscription WEI"
|
||||||
|
|
||||||
#: apps/wei/views.py:998
|
#: apps/wei/views.py:1030
|
||||||
msgid "Please make sure the check is given before validating the registration"
|
msgid "Only treasurers can validate this field"
|
||||||
msgstr ""
|
msgstr "Seul·e·s les trésorier·ère·s peuvent valider ce champ"
|
||||||
"Merci de vous assurer que le chèque a bien été donné avant de valider "
|
|
||||||
"l'adhésion"
|
|
||||||
|
|
||||||
#: apps/wei/views.py:1004
|
#: apps/wei/views.py:1036
|
||||||
msgid "Create deposit transaction"
|
msgid "Create deposit transaction"
|
||||||
msgstr "Créer une transaction de caution"
|
msgstr "Créer une transaction de caution"
|
||||||
|
|
||||||
#: apps/wei/views.py:1005
|
#: apps/wei/views.py:1037
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"A transaction of %(amount).2f€ will be created from the user's Note account"
|
"A transaction of %(amount).2f€ will be created from the user's Note account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Un transaction de %(amount).2f€ va être créée depuis la note de l'utilisateur"
|
"Un transaction de %(amount).2f€ va être créée depuis la note de l'utilisateur"
|
||||||
|
|
||||||
#: apps/wei/views.py:1093
|
#: apps/wei/views.py:1125
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This user doesn't have enough money to join this club and pay the deposit. "
|
"This user doesn't have enough money to join this club and pay the deposit. "
|
||||||
@@ -3725,20 +3735,24 @@ msgstr ""
|
|||||||
"payer la caution. Solde actuel : %(balance)d€, crédit : %(credit)d€, "
|
"payer la caution. Solde actuel : %(balance)d€, crédit : %(credit)d€, "
|
||||||
"requis : %(needed)d€"
|
"requis : %(needed)d€"
|
||||||
|
|
||||||
#: apps/wei/views.py:1146
|
#: apps/wei/views.py:1178
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Deposit %(name)s"
|
msgid "Deposit %(name)s"
|
||||||
msgstr "Caution %(name)s"
|
msgstr "Caution %(name)s"
|
||||||
|
|
||||||
#: apps/wei/views.py:1360
|
#: apps/wei/views.py:1203
|
||||||
|
msgid "Update WEI Membership"
|
||||||
|
msgstr "Modifier une adhésion au WEI"
|
||||||
|
|
||||||
|
#: apps/wei/views.py:1445
|
||||||
msgid "Attribute buses to first year members"
|
msgid "Attribute buses to first year members"
|
||||||
msgstr "Répartir les 1A dans les bus"
|
msgstr "Répartir les 1A dans les bus"
|
||||||
|
|
||||||
#: apps/wei/views.py:1386
|
#: apps/wei/views.py:1471
|
||||||
msgid "Attribute bus"
|
msgid "Attribute bus"
|
||||||
msgstr "Attribuer un bus"
|
msgstr "Attribuer un bus"
|
||||||
|
|
||||||
#: apps/wei/views.py:1426
|
#: apps/wei/views.py:1511
|
||||||
msgid ""
|
msgid ""
|
||||||
"No first year student without a bus found. Either all of them have a bus, or "
|
"No first year student without a bus found. Either all of them have a bus, or "
|
||||||
"none has filled the survey yet."
|
"none has filled the survey yet."
|
||||||
@@ -4095,14 +4109,6 @@ msgstr "La note est indisponible pour le moment"
|
|||||||
msgid "Thank you for your understanding -- The Respos Info of BDE"
|
msgid "Thank you for your understanding -- The Respos Info of BDE"
|
||||||
msgstr "Merci de votre compréhension -- Les Respos Info du 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
|
#: note_kfet/templates/cas/logged.html:8
|
||||||
msgid ""
|
msgid ""
|
||||||
"<h3>Log In Successful</h3>You have successfully logged into the Central "
|
"<h3>Log In Successful</h3>You have successfully logged into the Central "
|
||||||
@@ -4110,9 +4116,10 @@ msgid ""
|
|||||||
"your web browser when you are done accessing services that require "
|
"your web browser when you are done accessing services that require "
|
||||||
"authentication!"
|
"authentication!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<h3>Connection réussie</h3>Vous vous êtes bien connecté au Service Central d'Authentification."
|
"<h3>Connection réussie</h3>Vous vous êtes bien connecté au Service Central "
|
||||||
"<br/>Pour des raisons de sécurité, veuillez vous déconnecter et fermer votre navigateur internet "
|
"d'Authentification.<br/>Pour des raisons de sécurité, veuillez vous "
|
||||||
"une fois que vous aurez fini d'accéder aux services qui requiert une authentification !"
|
"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
|
#: note_kfet/templates/cas/logged.html:14
|
||||||
msgid "Log me out from all my sessions"
|
msgid "Log me out from all my sessions"
|
||||||
@@ -4358,6 +4365,18 @@ msgstr ""
|
|||||||
"d'adhésion. Vous devez également valider votre adresse email en suivant le "
|
"d'adhésion. Vous devez également valider votre adresse email en suivant le "
|
||||||
"lien que vous avez reçu."
|
"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"
|
#~ msgid "caution amount"
|
||||||
#~ msgstr "montant de la caution"
|
#~ msgstr "montant de la caution"
|
||||||
|
|
||||||
|
@@ -305,8 +305,8 @@ PIC_WIDTH = 200
|
|||||||
PIC_RATIO = 1
|
PIC_RATIO = 1
|
||||||
|
|
||||||
# Custom phone number format
|
# Custom phone number format
|
||||||
PHONENUMBER_DB_FORMAT = 'NATIONAL'
|
PHONENUMBER_DB_FORMAT = 'E164'
|
||||||
PHONENUMBER_DEFAULT_REGION = 'FR'
|
PHONENUMBER_DEFAULT_REGION = None
|
||||||
|
|
||||||
# We add custom information to CAS, in order to give a normalized name to other services
|
# We add custom information to CAS, in order to give a normalized name to other services
|
||||||
CAS_AUTH_CLASS = 'member.auth.CustomAuthUser'
|
CAS_AUTH_CLASS = 'member.auth.CustomAuthUser'
|
||||||
|
@@ -30,6 +30,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
<link rel="stylesheet" href="{% static "font-awesome/css/font-awesome.min.css" %}">
|
<link rel="stylesheet" href="{% static "font-awesome/css/font-awesome.min.css" %}">
|
||||||
<link rel="stylesheet" href="{% static "css/custom.css" %}">
|
<link rel="stylesheet" href="{% static "css/custom.css" %}">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intl-tel-input@25.5.2/build/css/intlTelInput.css">
|
||||||
|
|
||||||
{# JQuery, Bootstrap and Turbolinks JavaScript #}
|
{# JQuery, Bootstrap and Turbolinks JavaScript #}
|
||||||
<script src="{% static "jquery/jquery.min.js" %}"></script>
|
<script src="{% static "jquery/jquery.min.js" %}"></script>
|
||||||
<script src="{% static "popper.js/umd/popper.min.js" %}"></script>
|
<script src="{% static "popper.js/umd/popper.min.js" %}"></script>
|
||||||
@@ -41,6 +43,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
{# Translation in javascript files #}
|
{# Translation in javascript files #}
|
||||||
<script src="{% static "js/jsi18n/"|add:LANGUAGE_CODE|add:".js" %}"></script>
|
<script src="{% static "js/jsi18n/"|add:LANGUAGE_CODE|add:".js" %}"></script>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/intl-tel-input@25.5.2/build/js/intlTelInput.min.js"></script>
|
||||||
|
|
||||||
{# If extra ressources are needed for a form, load here #}
|
{# If extra ressources are needed for a form, load here #}
|
||||||
{% if form.media %}
|
{% if form.media %}
|
||||||
{{ form.media }}
|
{{ form.media }}
|
||||||
|
@@ -19,7 +19,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form method="post">
|
<form method="post" id="profile_form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
{{ profile_form|crispy }}
|
{{ profile_form|crispy }}
|
||||||
@@ -31,3 +31,45 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extrajavascript %}
|
||||||
|
<!-- intl-tel-input CSS/JS -->
|
||||||
|
<script>
|
||||||
|
(() => {
|
||||||
|
const input = document.querySelector("input[name='phone_number']");
|
||||||
|
const form = document.querySelector("#profile_form");
|
||||||
|
|
||||||
|
if (!input || !form) {
|
||||||
|
console.error("Input phone_number ou form introuvable.");
|
||||||
|
}
|
||||||
|
|
||||||
|
const iti = window.intlTelInput(input, {
|
||||||
|
initialCountry: "auto",
|
||||||
|
nationalMode: false,
|
||||||
|
autoPlaceholder: "off",
|
||||||
|
geoIpLookup: callback => {
|
||||||
|
fetch("https://ipapi.co/json")
|
||||||
|
.then(res => res.json())
|
||||||
|
.then(data => callback(data.country_code))
|
||||||
|
.catch(() => callback("fr"));
|
||||||
|
},
|
||||||
|
loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.5.2/build/js/utils.js"),
|
||||||
|
});
|
||||||
|
|
||||||
|
form.addEventListener("submit", function(e){
|
||||||
|
if (!input.value.trim()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const number = iti.getNumber(intlTelInput.utils.numberFormat.E164);
|
||||||
|
if (number) {
|
||||||
|
input.value = number;
|
||||||
|
form.submit();
|
||||||
|
} else {
|
||||||
|
e.preventDefault();
|
||||||
|
input.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
Reference in New Issue
Block a user