possibilité de l'adhésion au BDA lors de l'inscription

This commit is contained in:
bleizi 2023-07-04 17:32:48 +02:00
parent d5819ac562
commit 16f8a60a3f
No known key found for this signature in database
GPG Key ID: D46D7E3364433208
6 changed files with 190 additions and 127 deletions

View File

@ -5,10 +5,10 @@ from django import forms
from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from member.models import Club
from note.models import NoteSpecial, Alias from note.models import NoteSpecial, Alias
from note_kfet.inputs import AmountInput from note_kfet.inputs import AmountInput
class SignUpForm(UserCreationForm): class SignUpForm(UserCreationForm):
""" """
Pre-register users with all information Pre-register users with all information
@ -114,3 +114,13 @@ class ValidationForm(forms.Form):
required=False, required=False,
initial=True, initial=True,
) )
# If the bda exists
if Club.objects.filter(name__iexact="bda").exists():
# The user can join the bda club at the inscription
join_bda = forms.BooleanField(
label=_("Join BDA Club"),
required=False,
initial=False,
)

View File

@ -1,6 +1,8 @@
# Copyright (C) 2018-2021 by BDE ENS Paris-Saclay # Copyright (C) 2018-2021 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
from datetime import date, timedelta
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.db.models import Q from django.db.models import Q
from django.test import TestCase from django.test import TestCase
@ -290,6 +292,7 @@ class TestValidateRegistration(TestCase):
self.assertTrue(NoteUser.objects.filter(user=self.user).exists()) self.assertTrue(NoteUser.objects.filter(user=self.user).exists())
self.assertTrue(Membership.objects.filter(club__name="BDE", user=self.user).exists()) self.assertTrue(Membership.objects.filter(club__name="BDE", user=self.user).exists())
self.assertFalse(Membership.objects.filter(club__name="Kfet", user=self.user).exists()) self.assertFalse(Membership.objects.filter(club__name="Kfet", user=self.user).exists())
self.assertFalse(Membership.objects.filter(club__name__iexact="BDA", user=self.user).exists())
self.assertFalse(SogeCredit.objects.filter(user=self.user).exists()) self.assertFalse(SogeCredit.objects.filter(user=self.user).exists())
self.assertEqual(Transaction.objects.filter( self.assertEqual(Transaction.objects.filter(
Q(source=self.user.note) | Q(destination=self.user.note)).count(), 2) Q(source=self.user.note) | Q(destination=self.user.note)).count(), 2)
@ -326,6 +329,7 @@ class TestValidateRegistration(TestCase):
self.assertTrue(NoteUser.objects.filter(user=self.user).exists()) self.assertTrue(NoteUser.objects.filter(user=self.user).exists())
self.assertTrue(Membership.objects.filter(club__name="BDE", user=self.user).exists()) self.assertTrue(Membership.objects.filter(club__name="BDE", user=self.user).exists())
self.assertTrue(Membership.objects.filter(club__name="Kfet", user=self.user).exists()) self.assertTrue(Membership.objects.filter(club__name="Kfet", user=self.user).exists())
self.assertFalse(Membership.objects.filter(club__name__iexact="BDA", user=self.user).exists())
self.assertFalse(SogeCredit.objects.filter(user=self.user).exists()) self.assertFalse(SogeCredit.objects.filter(user=self.user).exists())
self.assertEqual(Transaction.objects.filter( self.assertEqual(Transaction.objects.filter(
Q(source=self.user.note) | Q(destination=self.user.note)).count(), 3) Q(source=self.user.note) | Q(destination=self.user.note)).count(), 3)
@ -362,6 +366,7 @@ class TestValidateRegistration(TestCase):
self.assertTrue(NoteUser.objects.filter(user=self.user).exists()) self.assertTrue(NoteUser.objects.filter(user=self.user).exists())
self.assertTrue(Membership.objects.filter(club__name="BDE", user=self.user).exists()) self.assertTrue(Membership.objects.filter(club__name="BDE", user=self.user).exists())
self.assertTrue(Membership.objects.filter(club__name="Kfet", user=self.user).exists()) self.assertTrue(Membership.objects.filter(club__name="Kfet", user=self.user).exists())
self.assertFalse(Membership.objects.filter(club__name__iexact="BDA", user=self.user).exists())
self.assertTrue(SogeCredit.objects.filter(user=self.user).exists()) self.assertTrue(SogeCredit.objects.filter(user=self.user).exists())
self.assertEqual(Transaction.objects.filter( self.assertEqual(Transaction.objects.filter(
Q(source=self.user.note) | Q(destination=self.user.note)).count(), 3) Q(source=self.user.note) | Q(destination=self.user.note)).count(), 3)

View File

@ -237,6 +237,9 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
fee += bde.membership_fee_paid if user.profile.paid else bde.membership_fee_unpaid fee += bde.membership_fee_paid if user.profile.paid else bde.membership_fee_unpaid
kfet = Club.objects.get(name="Kfet") kfet = Club.objects.get(name="Kfet")
fee += kfet.membership_fee_paid if user.profile.paid else kfet.membership_fee_unpaid fee += kfet.membership_fee_paid if user.profile.paid else kfet.membership_fee_unpaid
if Club.objects.filter(name__iexact="BDA").exists():
bda = Club.objects.get(name__iexact="BDA")
fee += bda.membership_fee_paid if user.profile.paid else bda.membership_fee_unpaid
ctx["total_fee"] = "{:.02f}".format(fee / 100, ) ctx["total_fee"] = "{:.02f}".format(fee / 100, )
ctx["declare_soge_account"] = SogeCredit.objects.filter(user=user).exists() ctx["declare_soge_account"] = SogeCredit.objects.filter(user=user).exists()
@ -262,6 +265,11 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
form.add_error(None, _("An alias with a similar name already exists.")) form.add_error(None, _("An alias with a similar name already exists."))
return self.form_invalid(form) return self.form_invalid(form)
# Check if BDA exist to propose membership at regisration
bda_exists = False
if Club.objects.filter(name__iexact="BDA").exists():
bda_exists = True
# Get form data # Get form data
soge = form.cleaned_data["soge"] soge = form.cleaned_data["soge"]
credit_type = form.cleaned_data["credit_type"] credit_type = form.cleaned_data["credit_type"]
@ -271,6 +279,8 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
bank = form.cleaned_data["bank"] bank = form.cleaned_data["bank"]
join_bde = form.cleaned_data["join_bde"] join_bde = form.cleaned_data["join_bde"]
join_kfet = form.cleaned_data["join_kfet"] join_kfet = form.cleaned_data["join_kfet"]
if bda_exists:
join_bda = form.cleaned_data["join_bda"]
if soge: if soge:
# If Société Générale pays the inscription, the user automatically joins the two clubs. # If Société Générale pays the inscription, the user automatically joins the two clubs.
@ -292,6 +302,11 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
kfet_fee = kfet.membership_fee_paid if user.profile.paid else kfet.membership_fee_unpaid kfet_fee = kfet.membership_fee_paid if user.profile.paid else kfet.membership_fee_unpaid
# Add extra fee for the full membership # Add extra fee for the full membership
fee += kfet_fee if join_kfet else 0 fee += kfet_fee if join_kfet else 0
if bda_exists:
bda = Club.objects.get(name__iexact="BDA")
bda_fee = bda.membership_fee_paid if user.profile.paid else bda.membership_fee_unpaid
# Add extra fee for the bda membership
fee += bda_fee if join_bda else 0
# If the bank pays, then we don't credit now. Treasurers will validate the transaction # If the bank pays, then we don't credit now. Treasurers will validate the transaction
# and credit the note later. # and credit the note later.
@ -369,6 +384,18 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
membership.roles.add(Role.objects.get(name="Adhérent Kfet")) membership.roles.add(Role.objects.get(name="Adhérent Kfet"))
membership.save() membership.save()
if bda_exists and join_bda:
# Create membership for the user to the BDA starting today
membership = Membership(
club=bda,
user=user,
fee=bda_fee,
)
membership.save()
membership.refresh_from_db()
membership.roles.add(Role.objects.get(name="Membre de club"))
membership.save()
if soge: if soge:
soge_credit = SogeCredit.objects.get(user=user) soge_credit = SogeCredit.objects.get(user=user)
# Update the credit transaction amount # Update the credit transaction amount

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-31 17:08+0200\n" "POT-Creation-Date: 2023-07-04 17:30+0200\n"
"PO-Revision-Date: 2020-11-16 20:02+0000\n" "PO-Revision-Date: 2020-11-16 20:02+0000\n"
"Last-Translator: bleizi <bleizi@crans.org>\n" "Last-Translator: bleizi <bleizi@crans.org>\n"
"Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20/de/>\n" "Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20/de/>\n"
@ -115,7 +115,7 @@ msgid "type"
msgstr "Type" msgstr "Type"
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:307 #: 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:286 #: 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/models.py:173 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15 #: apps/wei/templates/wei/survey.html:15
msgid "user" msgid "user"
@ -258,7 +258,7 @@ msgstr "Eingetreten um "
msgid "remove" msgid "remove"
msgstr "entfernen" msgstr "entfernen"
#: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:200 #: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:201
msgid "Type" msgid "Type"
msgstr "Type" msgstr "Type"
@ -549,7 +549,7 @@ msgid "This image cannot be loaded."
msgstr "Dieses Bild kann nicht geladen werden." msgstr "Dieses Bild kann nicht geladen werden."
#: apps/member/forms.py:141 apps/member/views.py:103 #: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:33 apps/registration/views.py:262 #: apps/registration/forms.py:33 apps/registration/views.py:265
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "Ein ähnliches Alias ist schon benutzt." msgstr "Ein ähnliches Alias ist schon benutzt."
@ -1570,7 +1570,7 @@ msgstr "Sondertranskationen"
msgid "membership transaction" msgid "membership transaction"
msgstr "Mitgliedschafttransaktion" msgstr "Mitgliedschafttransaktion"
#: apps/note/models/transactions.py:385 apps/treasury/models.py:293 #: apps/note/models/transactions.py:385 apps/treasury/models.py:294
msgid "membership transactions" msgid "membership transactions"
msgstr "Mitgliedschaftttransaktionen" msgstr "Mitgliedschaftttransaktionen"
@ -1689,7 +1689,7 @@ msgid "Amount"
msgstr "Anzahl" msgstr "Anzahl"
#: apps/note/templates/note/transaction_form.html:132 #: apps/note/templates/note/transaction_form.html:132
#: apps/treasury/models.py:55 #: apps/treasury/models.py:56
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@ -2021,6 +2021,10 @@ msgstr "BDE Mitglieder werden"
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "Kfet Mitglieder werden" msgstr "Kfet Mitglieder werden"
#: apps/registration/forms.py:122
msgid "Join BDA Club"
msgstr "BDA Mitglieder werden"
#: apps/registration/templates/registration/email_validation_complete.html:15 #: apps/registration/templates/registration/email_validation_complete.html:15
msgid "Your email have successfully been validated." msgid "Your email have successfully been validated."
msgstr "Ihre E-Mail wurde erfolgreich validiert." msgstr "Ihre E-Mail wurde erfolgreich validiert."
@ -2164,18 +2168,18 @@ msgstr "Unregistrierte Users"
msgid "Registration detail" msgid "Registration detail"
msgstr "Registrierung Detailen" msgstr "Registrierung Detailen"
#: apps/registration/views.py:282 #: apps/registration/views.py:292
msgid "You must join the BDE." msgid "You must join the BDE."
msgstr "Sie müssen die BDE beitreten." msgstr "Sie müssen die BDE beitreten."
#: apps/registration/views.py:306 #: apps/registration/views.py:321
msgid "" msgid ""
"The entered amount is not enough for the memberships, should be at least {}" "The entered amount is not enough for the memberships, should be at least {}"
msgstr "" msgstr ""
"Der eingegebene Betrag reicht für die Mitgliedschaft nicht aus, sollte " "Der eingegebene Betrag reicht für die Mitgliedschaft nicht aus, sollte "
"mindestens {} betragen" "mindestens {} betragen"
#: apps/registration/views.py:387 #: apps/registration/views.py:414
msgid "Invalidate pre-registration" msgid "Invalidate pre-registration"
msgstr "Ungültige Vorregistrierung" msgstr "Ungültige Vorregistrierung"
@ -2183,7 +2187,7 @@ msgstr "Ungültige Vorregistrierung"
msgid "Treasury" msgid "Treasury"
msgstr "Quaestor" msgstr "Quaestor"
#: apps/treasury/forms.py:26 apps/treasury/models.py:94 #: apps/treasury/forms.py:26 apps/treasury/models.py:95
#: apps/treasury/templates/treasury/invoice_form.html:22 #: apps/treasury/templates/treasury/invoice_form.html:22
msgid "This invoice is locked and can no longer be edited." msgid "This invoice is locked and can no longer be edited."
msgstr "Diese Rechnung ist gesperrt und kann nicht mehr bearbeitet werden." msgstr "Diese Rechnung ist gesperrt und kann nicht mehr bearbeitet werden."
@ -2196,7 +2200,7 @@ msgstr "Überweisung ist bereits geschlossen."
msgid "You can't change the type of the remittance." msgid "You can't change the type of the remittance."
msgstr "Sie können die Art der Überweisung nicht ändern." msgstr "Sie können die Art der Überweisung nicht ändern."
#: apps/treasury/forms.py:125 apps/treasury/models.py:268 #: apps/treasury/forms.py:125 apps/treasury/models.py:269
#: apps/treasury/tables.py:97 apps/treasury/tables.py:105 #: apps/treasury/tables.py:97 apps/treasury/tables.py:105
#: apps/treasury/templates/treasury/invoice_list.html:16 #: apps/treasury/templates/treasury/invoice_list.html:16
#: apps/treasury/templates/treasury/remittance_list.html:16 #: apps/treasury/templates/treasury/remittance_list.html:16
@ -2212,116 +2216,116 @@ msgstr "Keine beigefügte Überweisung"
msgid "Invoice identifier" msgid "Invoice identifier"
msgstr "Rechnungskennung" msgstr "Rechnungskennung"
#: apps/treasury/models.py:41 #: apps/treasury/models.py:42
msgid "BDE" msgid "BDE"
msgstr "BDE" msgstr "BDE"
#: apps/treasury/models.py:46 #: apps/treasury/models.py:47
msgid "Object" msgid "Object"
msgstr "Objekt" msgstr "Objekt"
#: apps/treasury/models.py:50 #: apps/treasury/models.py:51
msgid "Description" msgid "Description"
msgstr "Beschreibung" msgstr "Beschreibung"
#: apps/treasury/models.py:59 #: apps/treasury/models.py:60
msgid "Address" msgid "Address"
msgstr "Adresse" msgstr "Adresse"
#: apps/treasury/models.py:64 apps/treasury/models.py:194 #: apps/treasury/models.py:65 apps/treasury/models.py:195
msgid "Date" msgid "Date"
msgstr "Datum" msgstr "Datum"
#: apps/treasury/models.py:68 #: apps/treasury/models.py:69
msgid "Acquitted" msgid "Acquitted"
msgstr "Bezahlt" msgstr "Bezahlt"
#: apps/treasury/models.py:73 #: apps/treasury/models.py:74
msgid "Locked" msgid "Locked"
msgstr "Gesperrt" msgstr "Gesperrt"
#: apps/treasury/models.py:74 #: apps/treasury/models.py:75
msgid "An invoice can't be edited when it is locked." msgid "An invoice can't be edited when it is locked."
msgstr "Eine Rechnung kann nicht bearbeitet werden, wenn sie gesperrt ist." msgstr "Eine Rechnung kann nicht bearbeitet werden, wenn sie gesperrt ist."
#: apps/treasury/models.py:80 #: apps/treasury/models.py:81
msgid "tex source" msgid "tex source"
msgstr "Tex Quelle" msgstr "Tex Quelle"
#: apps/treasury/models.py:114 apps/treasury/models.py:130 #: apps/treasury/models.py:115 apps/treasury/models.py:131
msgid "invoice" msgid "invoice"
msgstr "Rechnung" msgstr "Rechnung"
#: apps/treasury/models.py:115 #: apps/treasury/models.py:116
msgid "invoices" msgid "invoices"
msgstr "Rechnungen" msgstr "Rechnungen"
#: apps/treasury/models.py:118 #: apps/treasury/models.py:119
#, python-brace-format #, python-brace-format
msgid "Invoice #{id}" msgid "Invoice #{id}"
msgstr "Rechnung #{id}" msgstr "Rechnung #{id}"
#: apps/treasury/models.py:135 #: apps/treasury/models.py:136
msgid "Designation" msgid "Designation"
msgstr "Bezeichnung" msgstr "Bezeichnung"
#: apps/treasury/models.py:141 #: apps/treasury/models.py:142
msgid "Quantity" msgid "Quantity"
msgstr "Qualität" msgstr "Qualität"
#: apps/treasury/models.py:146 #: apps/treasury/models.py:147
msgid "Unit price" msgid "Unit price"
msgstr "Einzelpreis" msgstr "Einzelpreis"
#: apps/treasury/models.py:162 #: apps/treasury/models.py:163
msgid "product" msgid "product"
msgstr "Produkt" msgstr "Produkt"
#: apps/treasury/models.py:163 #: apps/treasury/models.py:164
msgid "products" msgid "products"
msgstr "Produkten" msgstr "Produkten"
#: apps/treasury/models.py:183 #: apps/treasury/models.py:184
msgid "remittance type" msgid "remittance type"
msgstr "Überweisungstyp" msgstr "Überweisungstyp"
#: apps/treasury/models.py:184 #: apps/treasury/models.py:185
msgid "remittance types" msgid "remittance types"
msgstr "Überweisungstypen" msgstr "Überweisungstypen"
#: apps/treasury/models.py:205 #: apps/treasury/models.py:206
msgid "Comment" msgid "Comment"
msgstr "Kommentar" msgstr "Kommentar"
#: apps/treasury/models.py:210 #: apps/treasury/models.py:211
msgid "Closed" msgid "Closed"
msgstr "Geschlossen" msgstr "Geschlossen"
#: apps/treasury/models.py:214 #: apps/treasury/models.py:215
msgid "remittance" msgid "remittance"
msgstr "Überweisung" msgstr "Überweisung"
#: apps/treasury/models.py:215 #: apps/treasury/models.py:216
msgid "remittances" msgid "remittances"
msgstr "Überweisungen" msgstr "Überweisungen"
#: apps/treasury/models.py:248 #: apps/treasury/models.py:249
msgid "Remittance #{:d}: {}" msgid "Remittance #{:d}: {}"
msgstr "Überweisung #{:d}:{}" msgstr "Überweisung #{:d}:{}"
#: apps/treasury/models.py:272 #: apps/treasury/models.py:273
msgid "special transaction proxy" msgid "special transaction proxy"
msgstr "spezielle Transaktion Proxy" msgstr "spezielle Transaktion Proxy"
#: apps/treasury/models.py:273 #: apps/treasury/models.py:274
msgid "special transaction proxies" msgid "special transaction proxies"
msgstr "spezielle Transaktion Proxies" msgstr "spezielle Transaktion Proxies"
#: apps/treasury/models.py:299 #: apps/treasury/models.py:300
msgid "credit transaction" msgid "credit transaction"
msgstr "Kredit Transaktion" msgstr "Kredit Transaktion"
#: apps/treasury/models.py:432 #: apps/treasury/models.py:433
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."
@ -2329,16 +2333,16 @@ msgstr ""
"Dieser Benutzer hat nicht genug Geld, um die Mitgliedschaften mit seiner " "Dieser Benutzer hat nicht genug Geld, um die Mitgliedschaften mit seiner "
"Note zu bezahlen." "Note zu bezahlen."
#: apps/treasury/models.py:453 #: apps/treasury/models.py:454
#: apps/treasury/templates/treasury/sogecredit_detail.html:10 #: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale" msgid "Credit from the Société générale"
msgstr "Kredit von der Société générale" msgstr "Kredit von der Société générale"
#: apps/treasury/models.py:454 #: apps/treasury/models.py:455
msgid "Credits from the Société générale" msgid "Credits from the Société générale"
msgstr "Krediten von der Société générale" msgstr "Krediten von der Société générale"
#: apps/treasury/models.py:457 #: apps/treasury/models.py:458
#, python-brace-format #, python-brace-format
msgid "Soge credit for {user}" msgid "Soge credit for {user}"
msgstr "Kredit von der Société générale für {user}" msgstr "Kredit von der Société générale für {user}"
@ -3612,6 +3616,9 @@ msgstr ""
"müssen Ihre E-Mail-Adresse auch überprüfen, indem Sie dem Link folgen, den " "müssen Ihre E-Mail-Adresse auch überprüfen, indem Sie dem Link folgen, den "
"Sie erhalten haben." "Sie erhalten haben."
#~ msgid "Join bda Club"
#~ msgstr "Bda Mitglieder werden"
#~ msgid "This user didn't give her/his caution check." #~ msgid "This user didn't give her/his caution check."
#~ msgstr "Dieser User hat seine / ihre Vorsicht nicht überprüft." #~ msgstr "Dieser User hat seine / ihre Vorsicht nicht überprüft."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-31 17:08+0200\n" "POT-Creation-Date: 2023-07-04 17:30+0200\n"
"PO-Revision-Date: 2022-04-11 23:12+0200\n" "PO-Revision-Date: 2022-04-11 23:12+0200\n"
"Last-Translator: bleizi <bleizi@crans.org>\n" "Last-Translator: bleizi <bleizi@crans.org>\n"
"Language-Team: \n" "Language-Team: \n"
@ -114,7 +114,7 @@ msgid "type"
msgstr "tipo" msgstr "tipo"
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:307 #: 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:286 #: 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/models.py:173 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15 #: apps/wei/templates/wei/survey.html:15
msgid "user" msgid "user"
@ -257,7 +257,7 @@ msgstr "Entrado el "
msgid "remove" msgid "remove"
msgstr "quitar" msgstr "quitar"
#: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:200 #: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:201
msgid "Type" msgid "Type"
msgstr "Tipo" msgstr "Tipo"
@ -546,7 +546,7 @@ msgid "This image cannot be loaded."
msgstr "Esta imagen no puede ser cargada." msgstr "Esta imagen no puede ser cargada."
#: apps/member/forms.py:141 apps/member/views.py:103 #: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:33 apps/registration/views.py:262 #: apps/registration/forms.py:33 apps/registration/views.py:265
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "Un alias similar ya existe." msgstr "Un alias similar ya existe."
@ -1557,7 +1557,7 @@ msgstr "Transacciones especiales"
msgid "membership transaction" msgid "membership transaction"
msgstr "transacción de afiliación" msgstr "transacción de afiliación"
#: apps/note/models/transactions.py:385 apps/treasury/models.py:293 #: apps/note/models/transactions.py:385 apps/treasury/models.py:294
msgid "membership transactions" msgid "membership transactions"
msgstr "transacciones de afiliación" msgstr "transacciones de afiliación"
@ -1676,7 +1676,7 @@ msgid "Amount"
msgstr "Monto" msgstr "Monto"
#: apps/note/templates/note/transaction_form.html:132 #: apps/note/templates/note/transaction_form.html:132
#: apps/treasury/models.py:55 #: apps/treasury/models.py:56
msgid "Name" msgid "Name"
msgstr "Nombre" msgstr "Nombre"
@ -2003,6 +2003,10 @@ msgstr "Afiliarse al club BDE"
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "Afiliarse al club Kfet" msgstr "Afiliarse al club Kfet"
#: apps/registration/forms.py:122
msgid "Join BDA Club"
msgstr "Afiliarse al club BDA"
#: apps/registration/templates/registration/email_validation_complete.html:15 #: apps/registration/templates/registration/email_validation_complete.html:15
msgid "Your email have successfully been validated." msgid "Your email have successfully been validated."
msgstr "Su correo electrónico fue validado con éxito." msgstr "Su correo electrónico fue validado con éxito."
@ -2144,18 +2148,18 @@ msgstr "Usuarios con afiliación pendiente"
msgid "Registration detail" msgid "Registration detail"
msgstr "Detalles de la afiliación" msgstr "Detalles de la afiliación"
#: apps/registration/views.py:282 #: apps/registration/views.py:292
msgid "You must join the BDE." msgid "You must join the BDE."
msgstr "Usted tiene que afiliarse al BDE." msgstr "Usted tiene que afiliarse al BDE."
#: apps/registration/views.py:306 #: apps/registration/views.py:321
msgid "" msgid ""
"The entered amount is not enough for the memberships, should be at least {}" "The entered amount is not enough for the memberships, should be at least {}"
msgstr "" msgstr ""
"El monto dado no es suficiente para las afiliaciones, tiene que ser al menos " "El monto dado no es suficiente para las afiliaciones, tiene que ser al menos "
"{}" "{}"
#: apps/registration/views.py:387 #: apps/registration/views.py:414
msgid "Invalidate pre-registration" msgid "Invalidate pre-registration"
msgstr "Invalidar la afiliación" msgstr "Invalidar la afiliación"
@ -2163,7 +2167,7 @@ msgstr "Invalidar la afiliación"
msgid "Treasury" msgid "Treasury"
msgstr "Tesorería" msgstr "Tesorería"
#: apps/treasury/forms.py:26 apps/treasury/models.py:94 #: apps/treasury/forms.py:26 apps/treasury/models.py:95
#: apps/treasury/templates/treasury/invoice_form.html:22 #: apps/treasury/templates/treasury/invoice_form.html:22
msgid "This invoice is locked and can no longer be edited." msgid "This invoice is locked and can no longer be edited."
msgstr "Esta factura esta bloqueada y no puede ser modificada." msgstr "Esta factura esta bloqueada y no puede ser modificada."
@ -2176,7 +2180,7 @@ msgstr "El descuento ya esta cerrado."
msgid "You can't change the type of the remittance." msgid "You can't change the type of the remittance."
msgstr "No puede cambiar el tipo de descuento." msgstr "No puede cambiar el tipo de descuento."
#: apps/treasury/forms.py:125 apps/treasury/models.py:268 #: apps/treasury/forms.py:125 apps/treasury/models.py:269
#: apps/treasury/tables.py:97 apps/treasury/tables.py:105 #: apps/treasury/tables.py:97 apps/treasury/tables.py:105
#: apps/treasury/templates/treasury/invoice_list.html:16 #: apps/treasury/templates/treasury/invoice_list.html:16
#: apps/treasury/templates/treasury/remittance_list.html:16 #: apps/treasury/templates/treasury/remittance_list.html:16
@ -2192,116 +2196,116 @@ msgstr "No hay descuento relacionado"
msgid "Invoice identifier" msgid "Invoice identifier"
msgstr "Numero de factura" msgstr "Numero de factura"
#: apps/treasury/models.py:41 #: apps/treasury/models.py:42
msgid "BDE" msgid "BDE"
msgstr "BDE" msgstr "BDE"
#: apps/treasury/models.py:46 #: apps/treasury/models.py:47
msgid "Object" msgid "Object"
msgstr "Asunto" msgstr "Asunto"
#: apps/treasury/models.py:50 #: apps/treasury/models.py:51
msgid "Description" msgid "Description"
msgstr "Descripción" msgstr "Descripción"
#: apps/treasury/models.py:59 #: apps/treasury/models.py:60
msgid "Address" msgid "Address"
msgstr "Dirección" msgstr "Dirección"
#: apps/treasury/models.py:64 apps/treasury/models.py:194 #: apps/treasury/models.py:65 apps/treasury/models.py:195
msgid "Date" msgid "Date"
msgstr "Fecha" msgstr "Fecha"
#: apps/treasury/models.py:68 #: apps/treasury/models.py:69
msgid "Acquitted" msgid "Acquitted"
msgstr "Pagada" msgstr "Pagada"
#: apps/treasury/models.py:73 #: apps/treasury/models.py:74
msgid "Locked" msgid "Locked"
msgstr "Bloqueada" msgstr "Bloqueada"
#: apps/treasury/models.py:74 #: apps/treasury/models.py:75
msgid "An invoice can't be edited when it is locked." msgid "An invoice can't be edited when it is locked."
msgstr "Une factura no puede ser modificada cuando esta bloqueada." msgstr "Une factura no puede ser modificada cuando esta bloqueada."
#: apps/treasury/models.py:80 #: apps/treasury/models.py:81
msgid "tex source" msgid "tex source"
msgstr "código fuente TeX" msgstr "código fuente TeX"
#: apps/treasury/models.py:114 apps/treasury/models.py:130 #: apps/treasury/models.py:115 apps/treasury/models.py:131
msgid "invoice" msgid "invoice"
msgstr "factura" msgstr "factura"
#: apps/treasury/models.py:115 #: apps/treasury/models.py:116
msgid "invoices" msgid "invoices"
msgstr "facturas" msgstr "facturas"
#: apps/treasury/models.py:118 #: apps/treasury/models.py:119
#, python-brace-format #, python-brace-format
msgid "Invoice #{id}" msgid "Invoice #{id}"
msgstr "Factura n°{id}" msgstr "Factura n°{id}"
#: apps/treasury/models.py:135 #: apps/treasury/models.py:136
msgid "Designation" msgid "Designation"
msgstr "Designación" msgstr "Designación"
#: apps/treasury/models.py:141 #: apps/treasury/models.py:142
msgid "Quantity" msgid "Quantity"
msgstr "Cantidad" msgstr "Cantidad"
#: apps/treasury/models.py:146 #: apps/treasury/models.py:147
msgid "Unit price" msgid "Unit price"
msgstr "Precio unitario" msgstr "Precio unitario"
#: apps/treasury/models.py:162 #: apps/treasury/models.py:163
msgid "product" msgid "product"
msgstr "producto" msgstr "producto"
#: apps/treasury/models.py:163 #: apps/treasury/models.py:164
msgid "products" msgid "products"
msgstr "productos" msgstr "productos"
#: apps/treasury/models.py:183 #: apps/treasury/models.py:184
msgid "remittance type" msgid "remittance type"
msgstr "tipo de descuento" msgstr "tipo de descuento"
#: apps/treasury/models.py:184 #: apps/treasury/models.py:185
msgid "remittance types" msgid "remittance types"
msgstr "tipos de descuentos" msgstr "tipos de descuentos"
#: apps/treasury/models.py:205 #: apps/treasury/models.py:206
msgid "Comment" msgid "Comment"
msgstr "Comentario" msgstr "Comentario"
#: apps/treasury/models.py:210 #: apps/treasury/models.py:211
msgid "Closed" msgid "Closed"
msgstr "Cerrada" msgstr "Cerrada"
#: apps/treasury/models.py:214 #: apps/treasury/models.py:215
msgid "remittance" msgid "remittance"
msgstr "descuento" msgstr "descuento"
#: apps/treasury/models.py:215 #: apps/treasury/models.py:216
msgid "remittances" msgid "remittances"
msgstr "descuentos" msgstr "descuentos"
#: apps/treasury/models.py:248 #: apps/treasury/models.py:249
msgid "Remittance #{:d}: {}" msgid "Remittance #{:d}: {}"
msgstr "Descuento n°{:d} : {}" msgstr "Descuento n°{:d} : {}"
#: apps/treasury/models.py:272 #: apps/treasury/models.py:273
msgid "special transaction proxy" msgid "special transaction proxy"
msgstr "proxy de transacción especial" msgstr "proxy de transacción especial"
#: apps/treasury/models.py:273 #: apps/treasury/models.py:274
msgid "special transaction proxies" msgid "special transaction proxies"
msgstr "proxys de transacciones especiales" msgstr "proxys de transacciones especiales"
#: apps/treasury/models.py:299 #: apps/treasury/models.py:300
msgid "credit transaction" msgid "credit transaction"
msgstr "transacción de crédito" msgstr "transacción de crédito"
#: apps/treasury/models.py:432 #: apps/treasury/models.py:433
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."
@ -2310,16 +2314,16 @@ msgstr ""
"afiliaciones. Por favor pídelo acreditar su note antes de invalidar este " "afiliaciones. Por favor pídelo acreditar su note antes de invalidar este "
"crédito." "crédito."
#: apps/treasury/models.py:453 #: apps/treasury/models.py:454
#: apps/treasury/templates/treasury/sogecredit_detail.html:10 #: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale" msgid "Credit from the Société générale"
msgstr "Crédito de la Société Générale" msgstr "Crédito de la Société Générale"
#: apps/treasury/models.py:454 #: apps/treasury/models.py:455
msgid "Credits from the Société générale" msgid "Credits from the Société générale"
msgstr "Créditos de la Société Générale" msgstr "Créditos de la Société Générale"
#: apps/treasury/models.py:457 #: apps/treasury/models.py:458
#, python-brace-format #, python-brace-format
msgid "Soge credit for {user}" msgid "Soge credit for {user}"
msgstr "Crédito de la Société Générale para {user}" msgstr "Crédito de la Société Générale para {user}"
@ -3541,6 +3545,9 @@ msgstr ""
"pagar su afiliación. Tambien tiene que validar su correo electronico con el " "pagar su afiliación. Tambien tiene que validar su correo electronico con el "
"enlace que recibió." "enlace que recibió."
#~ msgid "Join bda Club"
#~ msgstr "Afiliarse al club bda"
#~ msgid "You are not a Kfet member, so you can't use your note account." #~ msgid "You are not a Kfet member, so you can't use your note account."
#~ msgstr "Usted no es un miembro de la Kfet, no puede usar su cuenta note." #~ msgstr "Usted no es un miembro de la Kfet, no puede usar su cuenta note."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-31 17:08+0200\n" "POT-Creation-Date: 2023-07-04 17:30+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: bleizi <bleizi@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"
@ -115,7 +115,7 @@ msgid "type"
msgstr "type" msgstr "type"
#: apps/activity/models.py:89 apps/logs/models.py:22 apps/member/models.py:307 #: 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:286 #: 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/models.py:173 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15 #: apps/wei/templates/wei/survey.html:15
msgid "user" msgid "user"
@ -258,7 +258,7 @@ msgstr "Entré le "
msgid "remove" msgid "remove"
msgstr "supprimer" msgstr "supprimer"
#: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:200 #: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:201
msgid "Type" msgid "Type"
msgstr "Type" msgstr "Type"
@ -548,7 +548,7 @@ msgid "This image cannot be loaded."
msgstr "Cette image ne peut pas être chargée." msgstr "Cette image ne peut pas être chargée."
#: apps/member/forms.py:141 apps/member/views.py:103 #: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:33 apps/registration/views.py:262 #: apps/registration/forms.py:33 apps/registration/views.py:265
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "Un alias avec un nom similaire existe déjà." msgstr "Un alias avec un nom similaire existe déjà."
@ -1563,7 +1563,7 @@ msgstr "Transactions de crédit/retrait"
msgid "membership transaction" msgid "membership transaction"
msgstr "transaction d'adhésion" msgstr "transaction d'adhésion"
#: apps/note/models/transactions.py:385 apps/treasury/models.py:293 #: apps/note/models/transactions.py:385 apps/treasury/models.py:294
msgid "membership transactions" msgid "membership transactions"
msgstr "transactions d'adhésion" msgstr "transactions d'adhésion"
@ -1682,7 +1682,7 @@ msgid "Amount"
msgstr "Montant" msgstr "Montant"
#: apps/note/templates/note/transaction_form.html:132 #: apps/note/templates/note/transaction_form.html:132
#: apps/treasury/models.py:55 #: apps/treasury/models.py:56
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
@ -2013,6 +2013,10 @@ msgstr "Adhérer au club BDE"
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "Adhérer au club Kfet" msgstr "Adhérer au club Kfet"
#: apps/registration/forms.py:122
msgid "Join BDA Club"
msgstr "Adhérer au club BDA"
#: apps/registration/templates/registration/email_validation_complete.html:15 #: apps/registration/templates/registration/email_validation_complete.html:15
msgid "Your email have successfully been validated." msgid "Your email have successfully been validated."
msgstr "Votre adresse e-mail a bien été validée." msgstr "Votre adresse e-mail a bien été validée."
@ -2152,18 +2156,18 @@ msgstr "Utilisateurs en attente d'inscription"
msgid "Registration detail" msgid "Registration detail"
msgstr "Détails de l'inscription" msgstr "Détails de l'inscription"
#: apps/registration/views.py:282 #: apps/registration/views.py:292
msgid "You must join the BDE." msgid "You must join the BDE."
msgstr "Vous devez adhérer au BDE." msgstr "Vous devez adhérer au BDE."
#: apps/registration/views.py:306 #: apps/registration/views.py:321
msgid "" msgid ""
"The entered amount is not enough for the memberships, should be at least {}" "The entered amount is not enough for the memberships, should be at least {}"
msgstr "" msgstr ""
"Le montant crédité est trop faible pour adhérer, il doit être au minimum de " "Le montant crédité est trop faible pour adhérer, il doit être au minimum de "
"{}" "{}"
#: apps/registration/views.py:387 #: apps/registration/views.py:414
msgid "Invalidate pre-registration" msgid "Invalidate pre-registration"
msgstr "Invalider l'inscription" msgstr "Invalider l'inscription"
@ -2171,7 +2175,7 @@ msgstr "Invalider l'inscription"
msgid "Treasury" msgid "Treasury"
msgstr "Trésorerie" msgstr "Trésorerie"
#: apps/treasury/forms.py:26 apps/treasury/models.py:94 #: apps/treasury/forms.py:26 apps/treasury/models.py:95
#: apps/treasury/templates/treasury/invoice_form.html:22 #: apps/treasury/templates/treasury/invoice_form.html:22
msgid "This invoice is locked and can no longer be edited." msgid "This invoice is locked and can no longer be edited."
msgstr "Cette facture est verrouillée et ne peut plus être éditée." msgstr "Cette facture est verrouillée et ne peut plus être éditée."
@ -2184,7 +2188,7 @@ msgstr "La remise est déjà fermée."
msgid "You can't change the type of the remittance." msgid "You can't change the type of the remittance."
msgstr "Vous ne pouvez pas changer le type de la remise." msgstr "Vous ne pouvez pas changer le type de la remise."
#: apps/treasury/forms.py:125 apps/treasury/models.py:268 #: apps/treasury/forms.py:125 apps/treasury/models.py:269
#: apps/treasury/tables.py:97 apps/treasury/tables.py:105 #: apps/treasury/tables.py:97 apps/treasury/tables.py:105
#: apps/treasury/templates/treasury/invoice_list.html:16 #: apps/treasury/templates/treasury/invoice_list.html:16
#: apps/treasury/templates/treasury/remittance_list.html:16 #: apps/treasury/templates/treasury/remittance_list.html:16
@ -2200,116 +2204,116 @@ msgstr "Pas de remise associée"
msgid "Invoice identifier" msgid "Invoice identifier"
msgstr "Numéro de facture" msgstr "Numéro de facture"
#: apps/treasury/models.py:41 #: apps/treasury/models.py:42
msgid "BDE" msgid "BDE"
msgstr "BDE" msgstr "BDE"
#: apps/treasury/models.py:46 #: apps/treasury/models.py:47
msgid "Object" msgid "Object"
msgstr "Objet" msgstr "Objet"
#: apps/treasury/models.py:50 #: apps/treasury/models.py:51
msgid "Description" msgid "Description"
msgstr "Description" msgstr "Description"
#: apps/treasury/models.py:59 #: apps/treasury/models.py:60
msgid "Address" msgid "Address"
msgstr "Adresse" msgstr "Adresse"
#: apps/treasury/models.py:64 apps/treasury/models.py:194 #: apps/treasury/models.py:65 apps/treasury/models.py:195
msgid "Date" msgid "Date"
msgstr "Date" msgstr "Date"
#: apps/treasury/models.py:68 #: apps/treasury/models.py:69
msgid "Acquitted" msgid "Acquitted"
msgstr "Acquittée" msgstr "Acquittée"
#: apps/treasury/models.py:73 #: apps/treasury/models.py:74
msgid "Locked" msgid "Locked"
msgstr "Verrouillée" msgstr "Verrouillée"
#: apps/treasury/models.py:74 #: apps/treasury/models.py:75
msgid "An invoice can't be edited when it is locked." msgid "An invoice can't be edited when it is locked."
msgstr "Une facture ne peut plus être modifiée si elle est verrouillée." msgstr "Une facture ne peut plus être modifiée si elle est verrouillée."
#: apps/treasury/models.py:80 #: apps/treasury/models.py:81
msgid "tex source" msgid "tex source"
msgstr "fichier TeX source" msgstr "fichier TeX source"
#: apps/treasury/models.py:114 apps/treasury/models.py:130 #: apps/treasury/models.py:115 apps/treasury/models.py:131
msgid "invoice" msgid "invoice"
msgstr "facture" msgstr "facture"
#: apps/treasury/models.py:115 #: apps/treasury/models.py:116
msgid "invoices" msgid "invoices"
msgstr "factures" msgstr "factures"
#: apps/treasury/models.py:118 #: apps/treasury/models.py:119
#, python-brace-format #, python-brace-format
msgid "Invoice #{id}" msgid "Invoice #{id}"
msgstr "Facture n°{id}" msgstr "Facture n°{id}"
#: apps/treasury/models.py:135 #: apps/treasury/models.py:136
msgid "Designation" msgid "Designation"
msgstr "Désignation" msgstr "Désignation"
#: apps/treasury/models.py:141 #: apps/treasury/models.py:142
msgid "Quantity" msgid "Quantity"
msgstr "Quantité" msgstr "Quantité"
#: apps/treasury/models.py:146 #: apps/treasury/models.py:147
msgid "Unit price" msgid "Unit price"
msgstr "Prix unitaire" msgstr "Prix unitaire"
#: apps/treasury/models.py:162 #: apps/treasury/models.py:163
msgid "product" msgid "product"
msgstr "produit" msgstr "produit"
#: apps/treasury/models.py:163 #: apps/treasury/models.py:164
msgid "products" msgid "products"
msgstr "produits" msgstr "produits"
#: apps/treasury/models.py:183 #: apps/treasury/models.py:184
msgid "remittance type" msgid "remittance type"
msgstr "type de remise" msgstr "type de remise"
#: apps/treasury/models.py:184 #: apps/treasury/models.py:185
msgid "remittance types" msgid "remittance types"
msgstr "types de remises" msgstr "types de remises"
#: apps/treasury/models.py:205 #: apps/treasury/models.py:206
msgid "Comment" msgid "Comment"
msgstr "Commentaire" msgstr "Commentaire"
#: apps/treasury/models.py:210 #: apps/treasury/models.py:211
msgid "Closed" msgid "Closed"
msgstr "Fermée" msgstr "Fermée"
#: apps/treasury/models.py:214 #: apps/treasury/models.py:215
msgid "remittance" msgid "remittance"
msgstr "remise" msgstr "remise"
#: apps/treasury/models.py:215 #: apps/treasury/models.py:216
msgid "remittances" msgid "remittances"
msgstr "remises" msgstr "remises"
#: apps/treasury/models.py:248 #: apps/treasury/models.py:249
msgid "Remittance #{:d}: {}" msgid "Remittance #{:d}: {}"
msgstr "Remise n°{:d} : {}" msgstr "Remise n°{:d} : {}"
#: apps/treasury/models.py:272 #: apps/treasury/models.py:273
msgid "special transaction proxy" msgid "special transaction proxy"
msgstr "proxy de transaction spéciale" msgstr "proxy de transaction spéciale"
#: apps/treasury/models.py:273 #: apps/treasury/models.py:274
msgid "special transaction proxies" msgid "special transaction proxies"
msgstr "proxys de transactions spéciales" msgstr "proxys de transactions spéciales"
#: apps/treasury/models.py:299 #: apps/treasury/models.py:300
msgid "credit transaction" msgid "credit transaction"
msgstr "transaction de crédit" msgstr "transaction de crédit"
#: apps/treasury/models.py:432 #: apps/treasury/models.py:433
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."
@ -2317,16 +2321,16 @@ msgstr ""
"Cet utilisateur n'a pas assez d'argent pour payer les adhésions avec sa " "Cet utilisateur n'a pas assez d'argent pour payer les adhésions avec sa "
"note. Merci de lui demander de recharger sa note avant d'invalider ce crédit." "note. Merci de lui demander de recharger sa note avant d'invalider ce crédit."
#: apps/treasury/models.py:453 #: apps/treasury/models.py:454
#: apps/treasury/templates/treasury/sogecredit_detail.html:10 #: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale" msgid "Credit from the 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/treasury/models.py:454 #: apps/treasury/models.py:455
msgid "Credits from the Société générale" msgid "Credits from the Société générale"
msgstr "Crédits de la Société générale" msgstr "Crédits de la Société générale"
#: apps/treasury/models.py:457 #: apps/treasury/models.py:458
#, python-brace-format #, python-brace-format
msgid "Soge credit for {user}" msgid "Soge credit for {user}"
msgstr "Crédit de la société générale pour l'utilisateur {user}" msgstr "Crédit de la société générale pour l'utilisateur {user}"
@ -3566,3 +3570,6 @@ msgstr ""
"vous connecter. Vous devez vous rendre à la Kfet et payer les frais " "vous connecter. Vous devez vous rendre à la Kfet et payer les frais "
"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 "Join bda Club"
#~ msgstr "Adhérer au club bda"