1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-06-29 20:51:11 +02:00

Compare commits

..

3 Commits

Author SHA1 Message Date
ddafaa0661 Merge branch 'nix-shell' into 'main'
Nix shell

See merge request bde/nk20!201
2023-08-24 21:53:28 +02:00
dde1baa25c typo 2022-08-21 19:50:53 +02:00
7a7ee47e0b Add two shell.nix to enable easier development on nixos. 2022-08-21 19:46:11 +02:00
12 changed files with 223 additions and 303 deletions

1
.gitignore vendored
View File

@ -48,7 +48,6 @@ backups/
env/
venv/
db.sqlite3
shell.nix
# ansibles customs host
ansible/host_vars/*.yaml

View File

@ -47,13 +47,6 @@ class ProfileForm(forms.ModelForm):
last_report = forms.DateTimeField(required=False, disabled=True, label=_("Last report date"))
VSS_charter_read = forms.BooleanField(
required=True,
label=_("Anti-VSS (<em>Violences Sexistes et Sexuelles</em>) charter read and approved"),
help_text=_("Tick after having read and accepted the anti-VSS charter \
<a href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> available here in pdf</a>")
)
def clean_promotion(self):
promotion = self.cleaned_data["promotion"]
if promotion > timezone.now().year:

View File

@ -1,18 +0,0 @@
# Generated by Django 2.2.28 on 2023-08-31 09:50
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('member', '0010_new_default_year'),
]
operations = [
migrations.AddField(
model_name='profile',
name='VSS_charter_read',
field=models.BooleanField(default=False, verbose_name='VSS charter read'),
),
]

View File

@ -134,11 +134,6 @@ class Profile(models.Model):
default=False,
)
VSS_charter_read = models.BooleanField(
verbose_name=_("VSS charter read"),
default=False
)
@property
def ens_year(self):
"""

View File

@ -335,7 +335,6 @@ class TestMemberships(TestCase):
ml_sports_registration=True,
ml_art_registration=True,
report_frequency=7,
VSS_charter_read=True
))
self.assertRedirects(response, self.user.profile.get_absolute_url(), 302, 200)
self.assertTrue(User.objects.filter(username="toto changed").exists())

View File

@ -3259,8 +3259,6 @@
136,
137,
150,
163,
164,
166,
167,
168,
@ -3580,20 +3578,6 @@
]
}
},
{
"model": "permission.role",
"pk": 21,
"fields": {
"for_club": 1,
"name": "GC anti-VSS",
"permissions": [
150,
163,
164,
182
]
}
},
{
"model": "wei.weirole",
"pk": 12,

View File

@ -48,7 +48,6 @@ class TestSignup(TestCase):
ml_events_registration="en",
ml_sport_registration=True,
ml_art_registration=True,
VSS_charter_read=True
))
self.assertRedirects(response, reverse("registration:email_validation_sent"), 302, 200)
self.assertTrue(User.objects.filter(username="toto").exists())
@ -106,7 +105,6 @@ class TestSignup(TestCase):
ml_events_registration="en",
ml_sport_registration=True,
ml_art_registration=True,
VSS_charter_read=True
))
self.assertTrue(response.status_code, 200)
@ -126,7 +124,6 @@ class TestSignup(TestCase):
ml_events_registration="en",
ml_sport_registration=True,
ml_art_registration=True,
VSS_charter_read=True
))
self.assertTrue(response.status_code, 200)
@ -146,27 +143,6 @@ class TestSignup(TestCase):
ml_events_registration="en",
ml_sport_registration=True,
ml_art_registration=True,
VSS_charter_read=True
))
self.assertTrue(response.status_code, 200)
# The VSS charter is not read
response = self.client.post(reverse("registration:signup"), dict(
first_name="Toto",
last_name="TOTO",
username="Ihaveanotherusername",
email="othertoto@example.com",
password1="toto1234",
password2="toto1234",
phone_number="+33123456789",
department="EXT",
promotion=Club.objects.get(name="BDE").membership_start.year,
address="Earth",
paid=False,
ml_events_registration="en",
ml_sport_registration=True,
ml_art_registration=True,
VSS_charter_read=False
))
self.assertTrue(response.status_code, 200)

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 13:25+0200\n"
"POT-Creation-Date: 2023-07-09 14:46+0200\n"
"PO-Revision-Date: 2020-11-16 20:02+0000\n"
"Last-Translator: bleizi <bleizi@crans.org>\n"
"Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20/de/>\n"
@ -53,7 +53,7 @@ msgid "You can't invite more than 3 people to this activity."
msgstr "Sie dürfen höchstens 3 Leute zu dieser Veranstaltung einladen."
#: apps/activity/models.py:28 apps/activity/models.py:63
#: apps/member/models.py:204
#: apps/member/models.py:199
#: apps/member/templates/member/includes/club_info.html:4
#: apps/member/templates/member/includes/profile_info.html:4
#: apps/note/models/notes.py:263 apps/note/models/transactions.py:26
@ -114,7 +114,7 @@ msgstr "Wo findet die Veranstaltung statt ? (z.B Kfet)."
msgid "type"
msgstr "Type"
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:312
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:307
#: apps/note/models/notes.py:148 apps/treasury/models.py:287
#: apps/wei/models.py:173 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15
@ -262,15 +262,15 @@ msgstr "entfernen"
msgid "Type"
msgstr "Type"
#: apps/activity/tables.py:84 apps/member/forms.py:193
#: apps/registration/forms.py:93 apps/treasury/forms.py:131
#: apps/activity/tables.py:84 apps/member/forms.py:186
#: apps/registration/forms.py:92 apps/treasury/forms.py:131
#: apps/wei/forms/registration.py:104
msgid "Last name"
msgstr "Nachname"
#: apps/activity/tables.py:86 apps/member/forms.py:198
#: apps/activity/tables.py:86 apps/member/forms.py:191
#: apps/note/templates/note/transaction_form.html:138
#: apps/registration/forms.py:98 apps/treasury/forms.py:133
#: apps/registration/forms.py:97 apps/treasury/forms.py:133
#: apps/wei/forms/registration.py:109
msgid "First name"
msgstr "Vorname"
@ -498,21 +498,21 @@ msgstr "Changelogs"
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
msgstr "Changelog \"{action}\" für Model {model} an {timestamp}"
#: apps/member/admin.py:50 apps/member/models.py:231
#: apps/member/admin.py:50 apps/member/models.py:226
#: apps/member/templates/member/includes/club_info.html:34
msgid "membership fee (paid students)"
msgstr "Mitgliedschaftpreis (bezahlte Studenten)"
#: apps/member/admin.py:51 apps/member/models.py:236
#: apps/member/admin.py:51 apps/member/models.py:231
#: apps/member/templates/member/includes/club_info.html:37
msgid "membership fee (unpaid students)"
msgstr "Mitgliedschaftpreis (unbezahlte Studenten)"
#: apps/member/admin.py:65 apps/member/models.py:324
#: apps/member/admin.py:65 apps/member/models.py:319
msgid "roles"
msgstr "Rollen"
#: apps/member/admin.py:66 apps/member/models.py:338
#: apps/member/admin.py:66 apps/member/models.py:333
msgid "fee"
msgstr "Preis"
@ -532,81 +532,65 @@ msgstr "Bericht Frequenz"
msgid "Last report date"
msgstr "Letzen Bericht Datum"
#: apps/member/forms.py:52
msgid ""
"Anti-VSS (<em>Violences Sexistes et Sexuelles</em>) charter read and approved"
msgstr ""
"Anti-VSS (<em>Violences Sexistes et Sexuelles</em>) Charta gelesen und angenommen"
#: apps/member/forms.py:53
msgid ""
"Tick after having read and accepted the anti-VSS charter <a "
"href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> "
"available here in pdf</a>"
msgstr ""
"Kreuzen Sie an, nachdem Sie die Anti-VSS-Charta gelesen und akzeptiert haben, <a "
"href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> "
"die hier als pdf-Datei verfügbar ist</a>"
#: apps/member/forms.py:60
msgid "You can't register to the note if you come from the future."
msgstr "Sie dürfen nicht einloggen wenn sie aus der Zukunft kommen."
#: apps/member/forms.py:86
#: apps/member/forms.py:79
msgid "select an image"
msgstr "Wählen sie ein Bild aus"
#: apps/member/forms.py:87
#: apps/member/forms.py:80
msgid "Maximal size: 2MB"
msgstr "Maximal Größe: 2MB"
#: apps/member/forms.py:112
#: apps/member/forms.py:105
msgid "This image cannot be loaded."
msgstr "Dieses Bild kann nicht geladen werden."
#: apps/member/forms.py:148 apps/member/views.py:103
#: apps/registration/forms.py:35 apps/registration/views.py:266
#: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:34 apps/registration/views.py:266
msgid "An alias with a similar name already exists."
msgstr "Ein ähnliches Alias ist schon benutzt."
#: apps/member/forms.py:172
#: apps/member/forms.py:165
msgid "Inscription paid by Société Générale"
msgstr "Mitgliedschaft von der Société Générale bezahlt"
#: apps/member/forms.py:174
#: apps/member/forms.py:167
msgid "Check this case if the Société Générale paid the inscription."
msgstr "Die Société Générale die Mitgliedschaft bezahlt."
#: apps/member/forms.py:179 apps/registration/forms.py:80
#: apps/member/forms.py:172 apps/registration/forms.py:79
#: apps/wei/forms/registration.py:91
msgid "Credit type"
msgstr "Kredittype"
#: apps/member/forms.py:180 apps/registration/forms.py:81
#: apps/member/forms.py:173 apps/registration/forms.py:80
#: apps/wei/forms/registration.py:92
msgid "No credit"
msgstr "Kein Kredit"
#: apps/member/forms.py:182
#: apps/member/forms.py:175
msgid "You can credit the note of the user."
msgstr "Sie dûrfen diese Note kreditieren."
#: apps/member/forms.py:186 apps/registration/forms.py:86
#: apps/member/forms.py:179 apps/registration/forms.py:85
#: apps/wei/forms/registration.py:97
msgid "Credit amount"
msgstr "Kreditanzahl"
#: apps/member/forms.py:203 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:103 apps/treasury/forms.py:135
#: apps/member/forms.py:196 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:102 apps/treasury/forms.py:135
#: apps/wei/forms/registration.py:114
msgid "Bank"
msgstr "Bank"
#: apps/member/forms.py:230
#: apps/member/forms.py:223
msgid "User"
msgstr "User"
#: apps/member/forms.py:244
#: apps/member/forms.py:237
msgid "Roles"
msgstr "Rollen"
@ -793,19 +777,15 @@ msgstr "email bestätigt"
msgid "registration valid"
msgstr "Anmeldung gültig"
#: apps/member/models.py:138
msgid "VSS charter read"
msgstr "VSS-Charta gelesen"
#: apps/member/models.py:167 apps/member/models.py:168
#: apps/member/models.py:162 apps/member/models.py:163
msgid "user profile"
msgstr "Userprofile"
#: apps/member/models.py:178
#: apps/member/models.py:173
msgid "Activate your Note Kfet account"
msgstr "Ihre Note Kfet Konto bestätigen"
#: apps/member/models.py:209
#: apps/member/models.py:204
#: apps/member/templates/member/includes/club_info.html:55
#: apps/member/templates/member/includes/profile_info.html:40
#: apps/registration/templates/registration/future_profile_detail.html:22
@ -814,88 +794,88 @@ msgstr "Ihre Note Kfet Konto bestätigen"
msgid "email"
msgstr "Email"
#: apps/member/models.py:216
#: apps/member/models.py:211
msgid "parent club"
msgstr "Urclub"
#: apps/member/models.py:225
#: apps/member/models.py:220
msgid "require memberships"
msgstr "erfordern Mitgliedschaft"
#: apps/member/models.py:226
#: apps/member/models.py:221
msgid "Uncheck if this club don't require memberships."
msgstr ""
"Deaktivieren Sie diese Option, wenn für diesen Club keine Mitgliedschaft "
"erforderlich ist."
#: apps/member/models.py:242
#: apps/member/models.py:237
#: apps/member/templates/member/includes/club_info.html:26
msgid "membership duration"
msgstr "Mitgliedscahftzeit"
#: apps/member/models.py:243
#: apps/member/models.py:238
msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr "Wie lang am höchsten eine Mitgliedschaft dauern kann."
#: apps/member/models.py:250
#: apps/member/models.py:245
#: apps/member/templates/member/includes/club_info.html:16
msgid "membership start"
msgstr "Mitgliedschaftanfangsdatum"
#: apps/member/models.py:251
#: apps/member/models.py:246
msgid "Date from which the members can renew their membership."
msgstr "Ab wann kann man sein Mitgliedschaft erneuern."
#: apps/member/models.py:257
#: apps/member/models.py:252
#: apps/member/templates/member/includes/club_info.html:21
msgid "membership end"
msgstr "Mitgliedschaftenddatum"
#: apps/member/models.py:258
#: apps/member/models.py:253
msgid "Maximal date of a membership, after which members must renew it."
msgstr ""
"Maximales Datum einer Mitgliedschaft, nach dem Mitglieder es erneuern müssen."
#: apps/member/models.py:293 apps/member/models.py:318
#: apps/member/models.py:288 apps/member/models.py:313
#: apps/note/models/notes.py:176
msgid "club"
msgstr "Club"
#: apps/member/models.py:294
#: apps/member/models.py:289
msgid "clubs"
msgstr "Clubs"
#: apps/member/models.py:329
#: apps/member/models.py:324
msgid "membership starts on"
msgstr "Mitgliedschaft fängt an"
#: apps/member/models.py:333
#: apps/member/models.py:328
msgid "membership ends on"
msgstr "Mitgliedschaft endet am"
#: apps/member/models.py:435
#: apps/member/models.py:430
#, python-brace-format
msgid "The role {role} does not apply to the club {club}."
msgstr "Die Rolle {role} ist nicht erlaubt für das Club {club}."
#: apps/member/models.py:444 apps/member/views.py:712
#: apps/member/models.py:439 apps/member/views.py:712
msgid "User is already a member of the club"
msgstr "User ist schon ein Mitglied dieser club"
#: apps/member/models.py:456 apps/member/views.py:721
#: apps/member/models.py:451 apps/member/views.py:721
msgid "User is not a member of the parent club"
msgstr "User ist noch nicht Mitglied des Urclubs"
#: apps/member/models.py:509
#: apps/member/models.py:504
#, python-brace-format
msgid "Membership of {user} for the club {club}"
msgstr "Mitgliedschaft von {user} für das Club {club}"
#: apps/member/models.py:512 apps/note/models/transactions.py:389
#: apps/member/models.py:507 apps/note/models/transactions.py:389
msgid "membership"
msgstr "Mitgliedschaft"
#: apps/member/models.py:513
#: apps/member/models.py:508
msgid "memberships"
msgstr "Mitgliedschaften"
@ -1880,7 +1860,7 @@ msgstr "Angabefeld gilt nur zum Anzeigen und Ändern von Berechtigungstypen."
msgid "for club"
msgstr "Für Club"
#: apps/permission/models.py:351 apps/permission/models.py:352
#: apps/permission/models.py:350 apps/permission/models.py:351
msgid "role permissions"
msgstr "Berechtigung Rollen"
@ -2002,15 +1982,15 @@ msgstr "Alle Rechten"
msgid "registration"
msgstr "Anmeldung"
#: apps/registration/forms.py:41
#: apps/registration/forms.py:40
msgid "This email address is already used."
msgstr "Diese email adresse ist schon benutzt."
#: apps/registration/forms.py:61
#: apps/registration/forms.py:60
msgid "Register to the WEI"
msgstr "Zu WEI anmelden"
#: apps/registration/forms.py:63
#: apps/registration/forms.py:62
msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you "
"will be able to register later, after validating your account in the Kfet."
@ -2019,15 +1999,15 @@ msgstr ""
"falls Zweifel, können Sie sich später nach Bestätigung Ihres Kontos im Kfet "
"registrieren."
#: apps/registration/forms.py:108
#: apps/registration/forms.py:107
msgid "Join BDE Club"
msgstr "BDE Mitglieder werden"
#: apps/registration/forms.py:115
#: apps/registration/forms.py:114
msgid "Join Kfet Club"
msgstr "Kfet Mitglieder werden"
#: apps/registration/forms.py:124
#: apps/registration/forms.py:123
msgid "Join BDA Club"
msgstr "BDA Mitglieder werden"
@ -2651,7 +2631,6 @@ msgid "This team doesn't belong to the given bus."
msgstr "Dieses Team gehört nicht zum angegebenen Bus."
#: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38
#: apps/wei/forms/surveys/wei2023.py:38
msgid "Choose a word:"
msgstr "Wählen Sie ein Wort:"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 13:25+0200\n"
"POT-Creation-Date: 2023-07-09 14:46+0200\n"
"PO-Revision-Date: 2022-04-11 23:12+0200\n"
"Last-Translator: bleizi <bleizi@crans.org>\n"
"Language-Team: \n"
@ -52,7 +52,7 @@ msgid "You can't invite more than 3 people to this activity."
msgstr "Usted no puede invitar más de 3 persona a esta actividad."
#: apps/activity/models.py:28 apps/activity/models.py:63
#: apps/member/models.py:204
#: apps/member/models.py:199
#: apps/member/templates/member/includes/club_info.html:4
#: apps/member/templates/member/includes/profile_info.html:4
#: apps/note/models/notes.py:263 apps/note/models/transactions.py:26
@ -113,7 +113,7 @@ msgstr "Lugar donde se organiza la actividad, por ejemplo la Kfet."
msgid "type"
msgstr "tipo"
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:312
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:307
#: apps/note/models/notes.py:148 apps/treasury/models.py:287
#: apps/wei/models.py:173 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15
@ -261,15 +261,15 @@ msgstr "quitar"
msgid "Type"
msgstr "Tipo"
#: apps/activity/tables.py:84 apps/member/forms.py:193
#: apps/registration/forms.py:93 apps/treasury/forms.py:131
#: apps/activity/tables.py:84 apps/member/forms.py:186
#: apps/registration/forms.py:92 apps/treasury/forms.py:131
#: apps/wei/forms/registration.py:104
msgid "Last name"
msgstr "Apellido"
#: apps/activity/tables.py:86 apps/member/forms.py:198
#: apps/activity/tables.py:86 apps/member/forms.py:191
#: apps/note/templates/note/transaction_form.html:138
#: apps/registration/forms.py:98 apps/treasury/forms.py:133
#: apps/registration/forms.py:97 apps/treasury/forms.py:133
#: apps/wei/forms/registration.py:109
msgid "First name"
msgstr "Nombre"
@ -495,21 +495,21 @@ msgstr "diario de cambios"
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
msgstr ""
#: apps/member/admin.py:50 apps/member/models.py:231
#: apps/member/admin.py:50 apps/member/models.py:226
#: apps/member/templates/member/includes/club_info.html:34
msgid "membership fee (paid students)"
msgstr "pago de afiliación (estudiantes pagados)"
#: apps/member/admin.py:51 apps/member/models.py:236
#: apps/member/admin.py:51 apps/member/models.py:231
#: apps/member/templates/member/includes/club_info.html:37
msgid "membership fee (unpaid students)"
msgstr "pago de afiliación (estudiantes no pagados)"
#: apps/member/admin.py:65 apps/member/models.py:324
#: apps/member/admin.py:65 apps/member/models.py:319
msgid "roles"
msgstr "papel"
#: apps/member/admin.py:66 apps/member/models.py:338
#: apps/member/admin.py:66 apps/member/models.py:333
msgid "fee"
msgstr "pago"
@ -529,81 +529,65 @@ msgstr "Frecuencia de los informes (en días)"
msgid "Last report date"
msgstr "Fecha del último informe"
#: apps/member/forms.py:52
msgid ""
"Anti-VSS (<em>Violences Sexistes et Sexuelles</em>) charter read and approved"
msgstr ""
"Carta Anti-VSS (<em>Violences Sexistes et Sexuelles</em>) leída y aprobada"
#: apps/member/forms.py:53
msgid ""
"Tick after having read and accepted the anti-VSS charter <a "
"href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> "
"available here in pdf</a>"
msgstr ""
"Marque después de leer y aceptar la carta anti-VVS <a "
"href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> "
"disponible en pdf aquí</a>"
#: apps/member/forms.py:60
msgid "You can't register to the note if you come from the future."
msgstr "Usted no puede registrar si viene del futuro."
#: apps/member/forms.py:86
#: apps/member/forms.py:79
msgid "select an image"
msgstr "elegir una imagen"
#: apps/member/forms.py:87
#: apps/member/forms.py:80
msgid "Maximal size: 2MB"
msgstr "Tamaño máximo : 2Mo"
#: apps/member/forms.py:112
#: apps/member/forms.py:105
msgid "This image cannot be loaded."
msgstr "Esta imagen no puede ser cargada."
#: apps/member/forms.py:148 apps/member/views.py:103
#: apps/registration/forms.py:35 apps/registration/views.py:266
#: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:34 apps/registration/views.py:266
msgid "An alias with a similar name already exists."
msgstr "Un alias similar ya existe."
#: apps/member/forms.py:172
#: apps/member/forms.py:165
msgid "Inscription paid by Société Générale"
msgstr "Registración pagadas por Société Générale"
#: apps/member/forms.py:174
#: apps/member/forms.py:167
msgid "Check this case if the Société Générale paid the inscription."
msgstr "Marcar esta casilla si Société Générale pagó la registración."
#: apps/member/forms.py:179 apps/registration/forms.py:80
#: apps/member/forms.py:172 apps/registration/forms.py:79
#: apps/wei/forms/registration.py:91
msgid "Credit type"
msgstr "Tipo de crédito"
#: apps/member/forms.py:180 apps/registration/forms.py:81
#: apps/member/forms.py:173 apps/registration/forms.py:80
#: apps/wei/forms/registration.py:92
msgid "No credit"
msgstr "No crédito"
#: apps/member/forms.py:182
#: apps/member/forms.py:175
msgid "You can credit the note of the user."
msgstr "Usted puede acreditar la note del usuario."
#: apps/member/forms.py:186 apps/registration/forms.py:86
#: apps/member/forms.py:179 apps/registration/forms.py:85
#: apps/wei/forms/registration.py:97
msgid "Credit amount"
msgstr "Valor del crédito"
#: apps/member/forms.py:203 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:103 apps/treasury/forms.py:135
#: apps/member/forms.py:196 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:102 apps/treasury/forms.py:135
#: apps/wei/forms/registration.py:114
msgid "Bank"
msgstr "Banco"
#: apps/member/forms.py:230
#: apps/member/forms.py:223
msgid "User"
msgstr "Usuario"
#: apps/member/forms.py:244
#: apps/member/forms.py:237
msgid "Roles"
msgstr "Papeles"
@ -788,19 +772,15 @@ msgstr "correo electrónico confirmado"
msgid "registration valid"
msgstr "registración valida"
#: apps/member/models.py:138
msgid "VSS charter read"
msgstr "Carta VSS leída"
#: apps/member/models.py:167 apps/member/models.py:168
#: apps/member/models.py:162 apps/member/models.py:163
msgid "user profile"
msgstr "perfil usuario"
#: apps/member/models.py:178
#: apps/member/models.py:173
msgid "Activate your Note Kfet account"
msgstr "Active su cuenta Note Kfet"
#: apps/member/models.py:209
#: apps/member/models.py:204
#: apps/member/templates/member/includes/club_info.html:55
#: apps/member/templates/member/includes/profile_info.html:40
#: apps/registration/templates/registration/future_profile_detail.html:22
@ -809,87 +789,87 @@ msgstr "Active su cuenta Note Kfet"
msgid "email"
msgstr "correo electrónico"
#: apps/member/models.py:216
#: apps/member/models.py:211
msgid "parent club"
msgstr "club pariente"
#: apps/member/models.py:225
#: apps/member/models.py:220
msgid "require memberships"
msgstr "necesita afiliaciones"
#: apps/member/models.py:226
#: apps/member/models.py:221
msgid "Uncheck if this club don't require memberships."
msgstr "Desmarcar si este club no usa afiliaciones."
#: apps/member/models.py:242
#: apps/member/models.py:237
#: apps/member/templates/member/includes/club_info.html:26
msgid "membership duration"
msgstr "duración de la afiliación"
#: apps/member/models.py:243
#: apps/member/models.py:238
msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr "La duración máxima (en días) de una afiliación (NULL = infinito)."
#: apps/member/models.py:250
#: apps/member/models.py:245
#: apps/member/templates/member/includes/club_info.html:16
msgid "membership start"
msgstr "inicio de la afiliación"
#: apps/member/models.py:251
#: apps/member/models.py:246
msgid "Date from which the members can renew their membership."
msgstr "Fecha a partir de la cual los miembros pueden prorrogar su afiliación."
#: apps/member/models.py:257
#: apps/member/models.py:252
#: apps/member/templates/member/includes/club_info.html:21
msgid "membership end"
msgstr "fin de la afiliación"
#: apps/member/models.py:258
#: apps/member/models.py:253
msgid "Maximal date of a membership, after which members must renew it."
msgstr ""
"Ultima fecha de una afiliación, después de la cual los miembros tienen que "
"prorrogarla."
#: apps/member/models.py:293 apps/member/models.py:318
#: apps/member/models.py:288 apps/member/models.py:313
#: apps/note/models/notes.py:176
msgid "club"
msgstr "club"
#: apps/member/models.py:294
#: apps/member/models.py:289
msgid "clubs"
msgstr "clubs"
#: apps/member/models.py:329
#: apps/member/models.py:324
msgid "membership starts on"
msgstr "afiliación empezá el"
#: apps/member/models.py:333
#: apps/member/models.py:328
msgid "membership ends on"
msgstr "afiliación termina el"
#: apps/member/models.py:435
#: apps/member/models.py:430
#, python-brace-format
msgid "The role {role} does not apply to the club {club}."
msgstr "El papel {role} no se encuentra en el club {club}."
#: apps/member/models.py:444 apps/member/views.py:712
#: apps/member/models.py:439 apps/member/views.py:712
msgid "User is already a member of the club"
msgstr "Usuario ya esta un miembro del club"
#: apps/member/models.py:456 apps/member/views.py:721
#: apps/member/models.py:451 apps/member/views.py:721
msgid "User is not a member of the parent club"
msgstr "Usuario no es un miembro del club pariente"
#: apps/member/models.py:509
#: apps/member/models.py:504
#, python-brace-format
msgid "Membership of {user} for the club {club}"
msgstr "Afiliación of {user} for the club {club}"
#: apps/member/models.py:512 apps/note/models/transactions.py:389
#: apps/member/models.py:507 apps/note/models/transactions.py:389
msgid "membership"
msgstr "afiliación"
#: apps/member/models.py:513
#: apps/member/models.py:508
msgid "memberships"
msgstr "afiliaciones"
@ -1865,7 +1845,7 @@ msgstr ""
msgid "for club"
msgstr "interesa el club"
#: apps/permission/models.py:351 apps/permission/models.py:352
#: apps/permission/models.py:350 apps/permission/models.py:351
msgid "role permissions"
msgstr "permisos por papeles"
@ -1983,15 +1963,15 @@ msgstr "Todos los permisos"
msgid "registration"
msgstr "afiliación"
#: apps/registration/forms.py:41
#: apps/registration/forms.py:40
msgid "This email address is already used."
msgstr "Este correo electrónico ya esta utilizado."
#: apps/registration/forms.py:61
#: apps/registration/forms.py:60
msgid "Register to the WEI"
msgstr "Registrarse en el WEI"
#: apps/registration/forms.py:63
#: apps/registration/forms.py:62
msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you "
"will be able to register later, after validating your account in the Kfet."
@ -1999,15 +1979,15 @@ msgstr ""
"Marcar esta casilla si usted quiere registrarse en el WEI. Si duda, podrá "
"registrarse más tarde, después de validar su cuenta Note Kfet."
#: apps/registration/forms.py:108
#: apps/registration/forms.py:107
msgid "Join BDE Club"
msgstr "Afiliarse al club BDE"
#: apps/registration/forms.py:115
#: apps/registration/forms.py:114
msgid "Join Kfet Club"
msgstr "Afiliarse al club Kfet"
#: apps/registration/forms.py:124
#: apps/registration/forms.py:123
msgid "Join BDA Club"
msgstr "Afiliarse al club BDA"
@ -2621,7 +2601,6 @@ msgid "This team doesn't belong to the given bus."
msgstr "Este equipo no pertenece al bus dado."
#: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38
#: apps/wei/forms/surveys/wei2023.py:38
msgid "Choose a word:"
msgstr "Elegir una palabra :"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 13:25+0200\n"
"POT-Creation-Date: 2023-07-09 14:46+0200\n"
"PO-Revision-Date: 2022-04-11 22:05+0200\n"
"Last-Translator: bleizi <bleizi@crans.org>\n"
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
@ -53,7 +53,7 @@ msgid "You can't invite more than 3 people to this activity."
msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
#: apps/activity/models.py:28 apps/activity/models.py:63
#: apps/member/models.py:204
#: apps/member/models.py:199
#: apps/member/templates/member/includes/club_info.html:4
#: apps/member/templates/member/includes/profile_info.html:4
#: apps/note/models/notes.py:263 apps/note/models/transactions.py:26
@ -114,7 +114,7 @@ msgstr "Lieu où l'activité est organisée, par exemple la Kfet."
msgid "type"
msgstr "type"
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:312
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:307
#: apps/note/models/notes.py:148 apps/treasury/models.py:287
#: apps/wei/models.py:173 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15
@ -262,15 +262,15 @@ msgstr "supprimer"
msgid "Type"
msgstr "Type"
#: apps/activity/tables.py:84 apps/member/forms.py:193
#: apps/registration/forms.py:93 apps/treasury/forms.py:131
#: apps/activity/tables.py:84 apps/member/forms.py:186
#: apps/registration/forms.py:92 apps/treasury/forms.py:131
#: apps/wei/forms/registration.py:104
msgid "Last name"
msgstr "Nom de famille"
#: apps/activity/tables.py:86 apps/member/forms.py:198
#: apps/activity/tables.py:86 apps/member/forms.py:191
#: apps/note/templates/note/transaction_form.html:138
#: apps/registration/forms.py:98 apps/treasury/forms.py:133
#: apps/registration/forms.py:97 apps/treasury/forms.py:133
#: apps/wei/forms/registration.py:109
msgid "First name"
msgstr "Prénom"
@ -497,21 +497,21 @@ msgstr "journaux de modifications"
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
msgstr "Changelog de type « {action} » pour le modèle {model} à {timestamp}"
#: apps/member/admin.py:50 apps/member/models.py:231
#: apps/member/admin.py:50 apps/member/models.py:226
#: apps/member/templates/member/includes/club_info.html:34
msgid "membership fee (paid students)"
msgstr "cotisation pour adhérer (normalien élève)"
#: apps/member/admin.py:51 apps/member/models.py:236
#: apps/member/admin.py:51 apps/member/models.py:231
#: apps/member/templates/member/includes/club_info.html:37
msgid "membership fee (unpaid students)"
msgstr "cotisation pour adhérer (normalien étudiant)"
#: apps/member/admin.py:65 apps/member/models.py:324
#: apps/member/admin.py:65 apps/member/models.py:319
msgid "roles"
msgstr "rôles"
#: apps/member/admin.py:66 apps/member/models.py:338
#: apps/member/admin.py:66 apps/member/models.py:333
msgid "fee"
msgstr "cotisation"
@ -531,81 +531,65 @@ msgstr "Fréquence des rapports (en jours)"
msgid "Last report date"
msgstr "Date de dernier rapport"
#: apps/member/forms.py:52
msgid ""
"Anti-VSS (<em>Violences Sexistes et Sexuelles</em>) charter read and approved"
msgstr ""
"Charte Anti-VSS (Violences Sexistes et Sexuelles) lue et approuvée"
#: apps/member/forms.py:53
msgid ""
"Tick after having read and accepted the anti-VSS charter <a "
"href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> "
"available here in pdf</a>"
msgstr ""
"Cochez après avoir lu la chartre anti-VSS <a "
"href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> "
"disponible en pdf ici</a>"
#: apps/member/forms.py:60
msgid "You can't register to the note if you come from the future."
msgstr "Vous ne pouvez pas vous inscrire à la note si vous venez du futur."
#: apps/member/forms.py:86
#: apps/member/forms.py:79
msgid "select an image"
msgstr "choisissez une image"
#: apps/member/forms.py:87
#: apps/member/forms.py:80
msgid "Maximal size: 2MB"
msgstr "Taille maximale : 2 Mo"
#: apps/member/forms.py:112
#: apps/member/forms.py:105
msgid "This image cannot be loaded."
msgstr "Cette image ne peut pas être chargée."
#: apps/member/forms.py:148 apps/member/views.py:103
#: apps/registration/forms.py:35 apps/registration/views.py:266
#: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:34 apps/registration/views.py:266
msgid "An alias with a similar name already exists."
msgstr "Un alias avec un nom similaire existe déjà."
#: apps/member/forms.py:172
#: apps/member/forms.py:165
msgid "Inscription paid by Société Générale"
msgstr "Inscription payée par la Société générale"
#: apps/member/forms.py:174
#: apps/member/forms.py:167
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:179 apps/registration/forms.py:80
#: apps/member/forms.py:172 apps/registration/forms.py:79
#: apps/wei/forms/registration.py:91
msgid "Credit type"
msgstr "Type de rechargement"
#: apps/member/forms.py:180 apps/registration/forms.py:81
#: apps/member/forms.py:173 apps/registration/forms.py:80
#: apps/wei/forms/registration.py:92
msgid "No credit"
msgstr "Pas de rechargement"
#: apps/member/forms.py:182
#: apps/member/forms.py:175
msgid "You can credit the note of the user."
msgstr "Vous pouvez créditer la note de l'utilisateur avant l'adhésion."
#: apps/member/forms.py:186 apps/registration/forms.py:86
#: apps/member/forms.py:179 apps/registration/forms.py:85
#: apps/wei/forms/registration.py:97
msgid "Credit amount"
msgstr "Montant à créditer"
#: apps/member/forms.py:203 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:103 apps/treasury/forms.py:135
#: apps/member/forms.py:196 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:102 apps/treasury/forms.py:135
#: apps/wei/forms/registration.py:114
msgid "Bank"
msgstr "Banque"
#: apps/member/forms.py:230
#: apps/member/forms.py:223
msgid "User"
msgstr "Utilisateur"
#: apps/member/forms.py:244
#: apps/member/forms.py:237
msgid "Roles"
msgstr "Rôles"
@ -790,19 +774,15 @@ msgstr "adresse email confirmée"
msgid "registration valid"
msgstr "inscription valide"
#: apps/member/models.py:138
msgid "VSS charter read"
msgstr "Charte VSS lue"
#: apps/member/models.py:167 apps/member/models.py:168
#: apps/member/models.py:162 apps/member/models.py:163
msgid "user profile"
msgstr "profil utilisateur"
#: apps/member/models.py:178
#: apps/member/models.py:173
msgid "Activate your Note Kfet account"
msgstr "Activez votre compte Note Kfet"
#: apps/member/models.py:209
#: apps/member/models.py:204
#: apps/member/templates/member/includes/club_info.html:55
#: apps/member/templates/member/includes/profile_info.html:40
#: apps/registration/templates/registration/future_profile_detail.html:22
@ -811,88 +791,88 @@ msgstr "Activez votre compte Note Kfet"
msgid "email"
msgstr "courriel"
#: apps/member/models.py:216
#: apps/member/models.py:211
msgid "parent club"
msgstr "club parent"
#: apps/member/models.py:225
#: apps/member/models.py:220
msgid "require memberships"
msgstr "nécessite des adhésions"
#: apps/member/models.py:226
#: apps/member/models.py:221
msgid "Uncheck if this club don't require memberships."
msgstr "Décochez si ce club n'utilise pas d'adhésions."
#: apps/member/models.py:242
#: apps/member/models.py:237
#: apps/member/templates/member/includes/club_info.html:26
msgid "membership duration"
msgstr "durée de l'adhésion"
#: apps/member/models.py:243
#: apps/member/models.py:238
msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr "La durée maximale (en jours) d'une adhésion (NULL = infinie)."
#: apps/member/models.py:250
#: apps/member/models.py:245
#: apps/member/templates/member/includes/club_info.html:16
msgid "membership start"
msgstr "début de l'adhésion"
#: apps/member/models.py:251
#: apps/member/models.py:246
msgid "Date from which the members can renew their membership."
msgstr ""
"Date à partir de laquelle les adhérents peuvent renouveler leur adhésion."
#: apps/member/models.py:257
#: apps/member/models.py:252
#: apps/member/templates/member/includes/club_info.html:21
msgid "membership end"
msgstr "fin de l'adhésion"
#: apps/member/models.py:258
#: apps/member/models.py:253
msgid "Maximal date of a membership, after which members must renew it."
msgstr ""
"Date maximale d'une fin d'adhésion, après laquelle les adhérents doivent la "
"renouveler."
#: apps/member/models.py:293 apps/member/models.py:318
#: apps/member/models.py:288 apps/member/models.py:313
#: apps/note/models/notes.py:176
msgid "club"
msgstr "club"
#: apps/member/models.py:294
#: apps/member/models.py:289
msgid "clubs"
msgstr "clubs"
#: apps/member/models.py:329
#: apps/member/models.py:324
msgid "membership starts on"
msgstr "l'adhésion commence le"
#: apps/member/models.py:333
#: apps/member/models.py:328
msgid "membership ends on"
msgstr "l'adhésion finit le"
#: apps/member/models.py:435
#: apps/member/models.py:430
#, python-brace-format
msgid "The role {role} does not apply to the club {club}."
msgstr "Le rôle {role} ne s'applique pas au club {club}."
#: apps/member/models.py:444 apps/member/views.py:712
#: apps/member/models.py:439 apps/member/views.py:712
msgid "User is already a member of the club"
msgstr "L'utilisateur est déjà membre du club"
#: apps/member/models.py:456 apps/member/views.py:721
#: apps/member/models.py:451 apps/member/views.py:721
msgid "User is not a member of the parent club"
msgstr "L'utilisateur n'est pas membre du club parent"
#: apps/member/models.py:509
#: apps/member/models.py:504
#, python-brace-format
msgid "Membership of {user} for the club {club}"
msgstr "Adhésion de {user} pour le club {club}"
#: apps/member/models.py:512 apps/note/models/transactions.py:389
#: apps/member/models.py:507 apps/note/models/transactions.py:389
msgid "membership"
msgstr "adhésion"
#: apps/member/models.py:513
#: apps/member/models.py:508
msgid "memberships"
msgstr "adhésions"
@ -1871,7 +1851,7 @@ msgstr ""
msgid "for club"
msgstr "s'applique au club"
#: apps/permission/models.py:351 apps/permission/models.py:352
#: apps/permission/models.py:350 apps/permission/models.py:351
msgid "role permissions"
msgstr "permissions par rôles"
@ -1992,15 +1972,15 @@ msgstr "Tous les droits"
msgid "registration"
msgstr "inscription"
#: apps/registration/forms.py:41
#: apps/registration/forms.py:40
msgid "This email address is already used."
msgstr "Cet email est déjà pris."
#: apps/registration/forms.py:61
#: apps/registration/forms.py:60
msgid "Register to the WEI"
msgstr "S'inscrire au WEI"
#: apps/registration/forms.py:63
#: apps/registration/forms.py:62
msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you "
"will be able to register later, after validating your account in the Kfet."
@ -2009,15 +1989,15 @@ msgstr ""
"pourrez toujours vous inscrire plus tard, après avoir validé votre compte à "
"la Kfet."
#: apps/registration/forms.py:108
#: apps/registration/forms.py:107
msgid "Join BDE Club"
msgstr "Adhérer au club BDE"
#: apps/registration/forms.py:115
#: apps/registration/forms.py:114
msgid "Join Kfet Club"
msgstr "Adhérer au club Kfet"
#: apps/registration/forms.py:124
#: apps/registration/forms.py:123
msgid "Join BDA Club"
msgstr "Adhérer au club BDA"
@ -2633,7 +2613,6 @@ 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/wei2023.py:38
msgid "Choose a word:"
msgstr "Choisissez un mot :"
@ -2743,9 +2722,7 @@ msgstr "nom du contact en cas d'urgence"
#: apps/wei/models.py:240
msgid "The emergency contact must not be a WEI participant"
msgstr ""
"Le contact en cas d'urgence ne doit pas être une personne qui participe au "
"WEI"
msgstr "Le contact en cas d'urgence ne doit pas être une personne qui participe au WEI"
#: apps/wei/models.py:245 apps/wei/templates/wei/weimembership_form.html:73
msgid "emergency contact phone"

34
shell-static.nix Executable file
View File

@ -0,0 +1,34 @@
# 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 Executable file
View File

@ -0,0 +1,23 @@
# 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
'';
}