Emails are unique. Translate mail foooters. Closes #55 #56

This commit is contained in:
Yohann D'ANELLO 2020-08-09 16:38:37 +02:00
parent 5846f03220
commit 764eaafb95
12 changed files with 279 additions and 250 deletions

View File

@ -50,7 +50,7 @@ class ProfileForm(forms.ModelForm):
class Meta: class Meta:
model = Profile model = Profile
fields = '__all__' fields = '__all__'
exclude = ('user', ) exclude = ('user', 'email_confirmed', 'registration_valid', )
class ClubForm(forms.ModelForm): class ClubForm(forms.ModelForm):

View File

@ -148,7 +148,7 @@ class Profile(models.Model):
return str(self.user) return str(self.user)
def send_email_validation_link(self): def send_email_validation_link(self):
subject = "[Note Kfet]" + str(_("Activate your Note Kfet account")) subject = "[Note Kfet] " + str(_("Activate your Note Kfet account"))
message = loader.render_to_string('registration/mails/email_validation_email.txt', message = loader.render_to_string('registration/mails/email_validation_email.txt',
{ {
'user': self.user, 'user': self.user,

View File

@ -28,6 +28,12 @@ class SignUpForm(UserCreationForm):
self.add_error("username", _("An alias with a similar name already exists.")) self.add_error("username", _("An alias with a similar name already exists."))
return value return value
def clean_email(self):
email = self.cleaned_data["email"]
if User.objects.filter(email=email).exists():
self.add_error("email", _("This email address is already used."))
return email
class Meta: class Meta:
model = User model = User
fields = ('first_name', 'last_name', 'username', 'email', ) fields = ('first_name', 'last_name', 'username', 'email', )

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-07 19:53+0200\n" "POT-Creation-Date: 2020-08-09 16:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -44,9 +44,9 @@ msgid "You can't invite more than 3 people to this activity."
msgstr "" msgstr ""
#: apps/activity/models.py:27 apps/activity/models.py:62 #: apps/activity/models.py:27 apps/activity/models.py:62
#: apps/member/models.py:172 apps/note/models/notes.py:212 #: apps/member/models.py:175 apps/note/models/notes.py:212
#: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45 #: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45
#: apps/note/models/transactions.py:295 apps/permission/models.py:331 #: apps/note/models/transactions.py:286 apps/permission/models.py:329
#: apps/wei/models.py:66 apps/wei/models.py:118 #: apps/wei/models.py:66 apps/wei/models.py:118
#: templates/member/club_info.html:13 templates/member/profile_info.html:14 #: templates/member/club_info.html:13 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16 #: templates/registration/future_profile_detail.html:16
@ -78,8 +78,8 @@ msgstr ""
msgid "activity types" msgid "activity types"
msgstr "" msgstr ""
#: apps/activity/models.py:67 apps/note/models/transactions.py:81 #: apps/activity/models.py:67 apps/note/models/transactions.py:80
#: apps/permission/models.py:112 apps/permission/models.py:191 #: apps/permission/models.py:110 apps/permission/models.py:189
#: apps/wei/models.py:72 apps/wei/models.py:129 #: apps/wei/models.py:72 apps/wei/models.py:129
#: templates/activity/activity_info.html:19 #: templates/activity/activity_info.html:19
msgid "description" msgid "description"
@ -90,12 +90,12 @@ msgid "location"
msgstr "" msgstr ""
#: apps/activity/models.py:81 apps/note/models/notes.py:188 #: apps/activity/models.py:81 apps/note/models/notes.py:188
#: apps/note/models/transactions.py:66 apps/permission/models.py:166 #: apps/note/models/transactions.py:65 apps/permission/models.py:164
#: templates/activity/activity_info.html:22 #: templates/activity/activity_info.html:22
msgid "type" msgid "type"
msgstr "" msgstr ""
#: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:277 #: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:280
#: apps/note/models/notes.py:126 apps/treasury/models.py:266 #: apps/note/models/notes.py:126 apps/treasury/models.py:266
#: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14 #: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14
#: templates/wei/survey.html:16 #: templates/wei/survey.html:16
@ -118,7 +118,7 @@ msgstr ""
msgid "end date" msgid "end date"
msgstr "" msgstr ""
#: apps/activity/models.py:114 apps/note/models/transactions.py:146 #: apps/activity/models.py:114 apps/note/models/transactions.py:145
#: templates/activity/activity_info.html:50 #: templates/activity/activity_info.html:50
msgid "valid" msgid "valid"
msgstr "" msgstr ""
@ -199,14 +199,14 @@ msgid "Type"
msgstr "" msgstr ""
#: apps/activity/tables.py:81 apps/member/forms.py:106 #: apps/activity/tables.py:81 apps/member/forms.py:106
#: apps/registration/forms.py:70 apps/treasury/forms.py:135 #: apps/registration/forms.py:76 apps/treasury/forms.py:135
#: apps/wei/forms/registration.py:94 #: apps/wei/forms/registration.py:96
msgid "Last name" msgid "Last name"
msgstr "" msgstr ""
#: apps/activity/tables.py:83 apps/member/forms.py:111 #: apps/activity/tables.py:83 apps/member/forms.py:111
#: apps/registration/forms.py:75 apps/treasury/forms.py:137 #: apps/registration/forms.py:81 apps/treasury/forms.py:137
#: apps/wei/forms/registration.py:99 templates/note/transaction_form.html:131 #: apps/wei/forms/registration.py:101 templates/note/transaction_form.html:131
msgid "First name" msgid "First name"
msgstr "" msgstr ""
@ -254,7 +254,7 @@ msgstr ""
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
#: apps/logs/models.py:36 apps/permission/models.py:136 #: apps/logs/models.py:36 apps/permission/models.py:134
msgid "model" msgid "model"
msgstr "" msgstr ""
@ -274,14 +274,14 @@ msgstr ""
msgid "create" msgid "create"
msgstr "" msgstr ""
#: apps/logs/models.py:62 apps/note/tables.py:160 #: apps/logs/models.py:62 apps/note/tables.py:163
#: templates/activity/activity_info.html:71 #: templates/activity/activity_info.html:71
msgid "edit" msgid "edit"
msgstr "" msgstr ""
#: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165 #: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:168
#: apps/permission/models.py:129 apps/treasury/tables.py:38 #: apps/permission/models.py:127 apps/treasury/tables.py:38
#: apps/wei/tables.py:73 #: apps/wei/tables.py:74
msgid "delete" msgid "delete"
msgstr "" msgstr ""
@ -305,25 +305,25 @@ msgstr ""
msgid "changelogs" msgid "changelogs"
msgstr "" msgstr ""
#: apps/member/admin.py:52 apps/member/models.py:199 #: apps/member/admin.py:52 apps/member/models.py:202
#: templates/member/club_info.html:41 #: templates/member/club_info.html:41
msgid "membership fee (paid students)" msgid "membership fee (paid students)"
msgstr "" msgstr ""
#: apps/member/admin.py:53 apps/member/models.py:204 #: apps/member/admin.py:53 apps/member/models.py:207
#: templates/member/club_info.html:44 #: templates/member/club_info.html:44
msgid "membership fee (unpaid students)" msgid "membership fee (unpaid students)"
msgstr "" msgstr ""
#: apps/member/admin.py:67 apps/member/models.py:288 #: apps/member/admin.py:67 apps/member/models.py:291
msgid "roles" msgid "roles"
msgstr "" msgstr ""
#: apps/member/admin.py:68 apps/member/models.py:302 #: apps/member/admin.py:68 apps/member/models.py:305
msgid "fee" msgid "fee"
msgstr "" msgstr ""
#: apps/member/apps.py:14 apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/member/apps.py:14 apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "member" msgid "member"
msgstr "" msgstr ""
@ -340,21 +340,21 @@ msgstr ""
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "" msgstr ""
#: apps/member/forms.py:85 apps/registration/forms.py:50 #: apps/member/forms.py:85 apps/registration/forms.py:56
msgid "Inscription paid by Société Générale" msgid "Inscription paid by Société Générale"
msgstr "" msgstr ""
#: apps/member/forms.py:87 apps/registration/forms.py:52 #: apps/member/forms.py:87 apps/registration/forms.py:58
msgid "Check this case is the Société Générale paid the inscription." msgid "Check this case is the Société Générale paid the inscription."
msgstr "" msgstr ""
#: apps/member/forms.py:92 apps/registration/forms.py:57 #: apps/member/forms.py:92 apps/registration/forms.py:63
#: apps/wei/forms/registration.py:81 #: apps/wei/forms/registration.py:83
msgid "Credit type" msgid "Credit type"
msgstr "" msgstr ""
#: apps/member/forms.py:93 apps/registration/forms.py:58 #: apps/member/forms.py:93 apps/registration/forms.py:64
#: apps/wei/forms/registration.py:82 #: apps/wei/forms/registration.py:84
msgid "No credit" msgid "No credit"
msgstr "" msgstr ""
@ -362,13 +362,13 @@ msgstr ""
msgid "You can credit the note of the user." msgid "You can credit the note of the user."
msgstr "" msgstr ""
#: apps/member/forms.py:99 apps/registration/forms.py:63 #: apps/member/forms.py:99 apps/registration/forms.py:69
#: apps/wei/forms/registration.py:87 #: apps/wei/forms/registration.py:89
msgid "Credit amount" msgid "Credit amount"
msgstr "" msgstr ""
#: apps/member/forms.py:116 apps/registration/forms.py:80 #: apps/member/forms.py:116 apps/registration/forms.py:86
#: apps/treasury/forms.py:139 apps/wei/forms/registration.py:104 #: apps/treasury/forms.py:139 apps/wei/forms/registration.py:106
#: templates/note/transaction_form.html:137 #: templates/note/transaction_form.html:137
msgid "Bank" msgid "Bank"
msgstr "" msgstr ""
@ -509,92 +509,92 @@ msgstr ""
msgid "user profile" msgid "user profile"
msgstr "" msgstr ""
#: apps/member/models.py:148 #: apps/member/models.py:151
msgid "Activate your Note Kfet account" msgid "Activate your Note Kfet account"
msgstr "" msgstr ""
#: apps/member/models.py:177 templates/member/club_info.html:57 #: apps/member/models.py:180 templates/member/club_info.html:57
#: templates/registration/future_profile_detail.html:22 #: templates/registration/future_profile_detail.html:22
#: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24 #: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24
msgid "email" msgid "email"
msgstr "" msgstr ""
#: apps/member/models.py:184 #: apps/member/models.py:187
msgid "parent club" msgid "parent club"
msgstr "" msgstr ""
#: apps/member/models.py:193 #: apps/member/models.py:196
msgid "require memberships" msgid "require memberships"
msgstr "" msgstr ""
#: apps/member/models.py:194 #: apps/member/models.py:197
msgid "Uncheck if this club don't require memberships." msgid "Uncheck if this club don't require memberships."
msgstr "" msgstr ""
#: apps/member/models.py:210 templates/member/club_info.html:33 #: apps/member/models.py:213 templates/member/club_info.html:33
msgid "membership duration" msgid "membership duration"
msgstr "" msgstr ""
#: apps/member/models.py:211 #: apps/member/models.py:214
msgid "The longest time (in days) a membership can last (NULL = infinite)." msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr "" msgstr ""
#: apps/member/models.py:218 templates/member/club_info.html:23 #: apps/member/models.py:221 templates/member/club_info.html:23
msgid "membership start" msgid "membership start"
msgstr "" msgstr ""
#: apps/member/models.py:219 #: apps/member/models.py:222
msgid "Date from which the members can renew their membership." msgid "Date from which the members can renew their membership."
msgstr "" msgstr ""
#: apps/member/models.py:225 templates/member/club_info.html:28 #: apps/member/models.py:228 templates/member/club_info.html:28
msgid "membership end" msgid "membership end"
msgstr "" msgstr ""
#: apps/member/models.py:226 #: apps/member/models.py:229
msgid "Maximal date of a membership, after which members must renew it." msgid "Maximal date of a membership, after which members must renew it."
msgstr "" msgstr ""
#: apps/member/models.py:258 apps/member/models.py:283 #: apps/member/models.py:261 apps/member/models.py:286
#: apps/note/models/notes.py:163 #: apps/note/models/notes.py:163
msgid "club" msgid "club"
msgstr "" msgstr ""
#: apps/member/models.py:259 #: apps/member/models.py:262
msgid "clubs" msgid "clubs"
msgstr "" msgstr ""
#: apps/member/models.py:293 #: apps/member/models.py:296
msgid "membership starts on" msgid "membership starts on"
msgstr "" msgstr ""
#: apps/member/models.py:297 #: apps/member/models.py:300
msgid "membership ends on" msgid "membership ends on"
msgstr "" msgstr ""
#: apps/member/models.py:348 #: apps/member/models.py:351
#, python-brace-format #, python-brace-format
msgid "The role {role} does not apply to the club {club}." msgid "The role {role} does not apply to the club {club}."
msgstr "" msgstr ""
#: apps/member/models.py:359 apps/member/views.py:592 #: apps/member/models.py:362 apps/member/views.py:592
msgid "User is already a member of the club" msgid "User is already a member of the club"
msgstr "" msgstr ""
#: apps/member/models.py:406 #: apps/member/models.py:409
msgid "User is not a member of the parent club" msgid "User is not a member of the parent club"
msgstr "" msgstr ""
#: apps/member/models.py:459 #: apps/member/models.py:462
#, python-brace-format #, python-brace-format
msgid "Membership of {user} for the club {club}" msgid "Membership of {user} for the club {club}"
msgstr "" msgstr ""
#: apps/member/models.py:462 #: apps/member/models.py:465
msgid "membership" msgid "membership"
msgstr "" msgstr ""
#: apps/member/models.py:463 #: apps/member/models.py:466
msgid "memberships" msgid "memberships"
msgstr "" msgstr ""
@ -680,17 +680,17 @@ msgstr ""
msgid "Members of the club" msgid "Members of the club"
msgstr "" msgstr ""
#: apps/note/admin.py:133 apps/note/models/transactions.py:106 #: apps/note/admin.py:133 apps/note/models/transactions.py:105
msgid "source" msgid "source"
msgstr "" msgstr ""
#: apps/note/admin.py:141 apps/note/admin.py:191 #: apps/note/admin.py:141 apps/note/admin.py:191
#: apps/note/models/transactions.py:55 apps/note/models/transactions.py:119 #: apps/note/models/transactions.py:55 apps/note/models/transactions.py:118
msgid "destination" msgid "destination"
msgstr "" msgstr ""
#: apps/note/admin.py:196 apps/note/models/transactions.py:59 #: apps/note/admin.py:196 apps/note/models/transactions.py:59
#: apps/note/models/transactions.py:137 #: apps/note/models/transactions.py:136
msgid "amount" msgid "amount"
msgstr "" msgstr ""
@ -764,7 +764,7 @@ msgstr ""
msgid "display image" msgid "display image"
msgstr "" msgstr ""
#: apps/note/models/notes.py:55 apps/note/models/transactions.py:129 #: apps/note/models/notes.py:55 apps/note/models/transactions.py:128
msgid "created at" msgid "created at"
msgstr "" msgstr ""
@ -847,115 +847,115 @@ msgstr ""
msgid "A template with this name already exist" msgid "A template with this name already exist"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:72 #: apps/note/models/transactions.py:71
msgid "display" msgid "display"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:77 #: apps/note/models/transactions.py:76
msgid "highlighted" msgid "highlighted"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:87 #: apps/note/models/transactions.py:86
msgid "transaction template" msgid "transaction template"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:88 #: apps/note/models/transactions.py:87
msgid "transaction templates" msgid "transaction templates"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:112 apps/note/models/transactions.py:125 #: apps/note/models/transactions.py:111 apps/note/models/transactions.py:124
#: apps/note/tables.py:35 apps/note/tables.py:44 #: apps/note/tables.py:35 apps/note/tables.py:44
msgid "used alias" msgid "used alias"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:133 #: apps/note/models/transactions.py:132
msgid "quantity" msgid "quantity"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:141 #: apps/note/models/transactions.py:140
msgid "reason" msgid "reason"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:151 apps/note/tables.py:112 #: apps/note/models/transactions.py:150 apps/note/tables.py:112
msgid "invalidity reason" msgid "invalidity reason"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:159 #: apps/note/models/transactions.py:158
msgid "transaction" msgid "transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:160 #: apps/note/models/transactions.py:159
#: templates/treasury/sogecredit_detail.html:22 #: templates/treasury/sogecredit_detail.html:22
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:197 #: apps/note/models/transactions.py:192
msgid "" msgid ""
"The note balances must be between - 21 474 836.47 € and 21 474 836.47 €." "The note balances must be between - 21 474 836.47 € and 21 474 836.47 €."
msgstr "" msgstr ""
#: apps/note/models/transactions.py:212 #: apps/note/models/transactions.py:207
msgid "" msgid ""
"The transaction can't be saved since the source note or the destination note " "The transaction can't be saved since the source note or the destination note "
"is not active." "is not active."
msgstr "" msgstr ""
#: apps/note/models/transactions.py:257 #: apps/note/models/transactions.py:248
#: templates/activity/activity_entry.html:13 templates/base.html:99 #: templates/activity/activity_entry.html:13 templates/base.html:99
#: templates/note/transaction_form.html:15 #: templates/note/transaction_form.html:15
#: templates/note/transaction_form.html:145 #: templates/note/transaction_form.html:145
msgid "Transfer" msgid "Transfer"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:281 #: apps/note/models/transactions.py:272
msgid "Template" msgid "Template"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:284 #: apps/note/models/transactions.py:275
msgid "recurrent transaction" msgid "recurrent transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:285 #: apps/note/models/transactions.py:276
msgid "recurrent transactions" msgid "recurrent transactions"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:300 #: apps/note/models/transactions.py:291
msgid "first_name" msgid "first_name"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:305 #: apps/note/models/transactions.py:296
msgid "bank" msgid "bank"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:311 #: apps/note/models/transactions.py:302
#: templates/activity/activity_entry.html:17 #: templates/activity/activity_entry.html:17
#: templates/note/transaction_form.html:20 #: templates/note/transaction_form.html:20
msgid "Credit" msgid "Credit"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:311 templates/note/transaction_form.html:25 #: apps/note/models/transactions.py:302 templates/note/transaction_form.html:25
msgid "Debit" msgid "Debit"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:322 #: apps/note/models/transactions.py:313
msgid "" msgid ""
"A special transaction is only possible between a Note associated to a " "A special transaction is only possible between a Note associated to a "
"payment method and a User or a Club" "payment method and a User or a Club"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:326 #: apps/note/models/transactions.py:317
msgid "Special transaction" msgid "Special transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:327 #: apps/note/models/transactions.py:318
msgid "Special transactions" msgid "Special transactions"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:343 apps/note/models/transactions.py:348 #: apps/note/models/transactions.py:334 apps/note/models/transactions.py:339
msgid "membership transaction" msgid "membership transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:344 apps/treasury/models.py:272 #: apps/note/models/transactions.py:335 apps/treasury/models.py:272
msgid "membership transactions" msgid "membership transactions"
msgstr "" msgstr ""
@ -971,15 +971,15 @@ msgstr ""
msgid "No reason specified" msgid "No reason specified"
msgstr "" msgstr ""
#: apps/note/tables.py:139 apps/note/tables.py:167 apps/treasury/tables.py:39 #: apps/note/tables.py:139 apps/note/tables.py:170 apps/treasury/tables.py:39
#: apps/wei/tables.py:74 apps/wei/tables.py:100 #: apps/wei/tables.py:75 apps/wei/tables.py:101
#: templates/treasury/invoice_confirm_delete.html:28 #: templates/treasury/invoice_confirm_delete.html:28
#: templates/treasury/sogecredit_detail.html:59 #: templates/treasury/sogecredit_detail.html:59
#: templates/wei/weiregistration_confirm_delete.html:32 #: templates/wei/weiregistration_confirm_delete.html:32
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: apps/note/tables.py:162 apps/wei/tables.py:46 apps/wei/tables.py:47 #: apps/note/tables.py:165 apps/wei/tables.py:46 apps/wei/tables.py:47
#: templates/member/club_info.html:67 templates/note/conso_form.html:130 #: templates/member/club_info.html:67 templates/note/conso_form.html:130
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68
@ -1010,79 +1010,79 @@ msgstr ""
msgid "Search transactions" msgid "Search transactions"
msgstr "" msgstr ""
#: apps/permission/models.py:91 #: apps/permission/models.py:89
#, python-brace-format #, python-brace-format
msgid "Can {type} {model}.{field} in {query}" msgid "Can {type} {model}.{field} in {query}"
msgstr "" msgstr ""
#: apps/permission/models.py:93 #: apps/permission/models.py:91
#, python-brace-format #, python-brace-format
msgid "Can {type} {model} in {query}" msgid "Can {type} {model} in {query}"
msgstr "" msgstr ""
#: apps/permission/models.py:106 #: apps/permission/models.py:104
msgid "rank" msgid "rank"
msgstr "" msgstr ""
#: apps/permission/models.py:119 #: apps/permission/models.py:117
msgid "permission mask" msgid "permission mask"
msgstr "" msgstr ""
#: apps/permission/models.py:120 #: apps/permission/models.py:118
msgid "permission masks" msgid "permission masks"
msgstr "" msgstr ""
#: apps/permission/models.py:126 #: apps/permission/models.py:124
msgid "add" msgid "add"
msgstr "" msgstr ""
#: apps/permission/models.py:127 #: apps/permission/models.py:125
msgid "view" msgid "view"
msgstr "" msgstr ""
#: apps/permission/models.py:128 #: apps/permission/models.py:126
msgid "change" msgid "change"
msgstr "" msgstr ""
#: apps/permission/models.py:160 #: apps/permission/models.py:158
msgid "query" msgid "query"
msgstr "" msgstr ""
#: apps/permission/models.py:173 #: apps/permission/models.py:171
msgid "mask" msgid "mask"
msgstr "" msgstr ""
#: apps/permission/models.py:179 #: apps/permission/models.py:177
msgid "field" msgid "field"
msgstr "" msgstr ""
#: apps/permission/models.py:184 #: apps/permission/models.py:182
msgid "" msgid ""
"Tells if the permission should be granted even if the membership of the user " "Tells if the permission should be granted even if the membership of the user "
"is expired." "is expired."
msgstr "" msgstr ""
#: apps/permission/models.py:185 templates/permission/all_rights.html:36 #: apps/permission/models.py:183 templates/permission/all_rights.html:36
msgid "permanent" msgid "permanent"
msgstr "" msgstr ""
#: apps/permission/models.py:196 #: apps/permission/models.py:194
msgid "permission" msgid "permission"
msgstr "" msgstr ""
#: apps/permission/models.py:197 apps/permission/models.py:336 #: apps/permission/models.py:195 apps/permission/models.py:334
msgid "permissions" msgid "permissions"
msgstr "" msgstr ""
#: apps/permission/models.py:202 #: apps/permission/models.py:200
msgid "Specifying field applies only to view and change permission types." msgid "Specifying field applies only to view and change permission types."
msgstr "" msgstr ""
#: apps/permission/models.py:341 #: apps/permission/models.py:339
msgid "for club" msgid "for club"
msgstr "" msgstr ""
#: apps/permission/models.py:351 apps/permission/models.py:352 #: apps/permission/models.py:349 apps/permission/models.py:350
msgid "role permissions" msgid "role permissions"
msgstr "" msgstr ""
@ -1119,21 +1119,25 @@ msgstr ""
msgid "registration" msgid "registration"
msgstr "" msgstr ""
#: apps/registration/forms.py:38 #: apps/registration/forms.py:34
msgid "This email address is already used."
msgstr ""
#: apps/registration/forms.py:44
msgid "Register to the WEI" msgid "Register to the WEI"
msgstr "" msgstr ""
#: apps/registration/forms.py:40 #: apps/registration/forms.py:46
msgid "" msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you " "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." "will be able to register later, after validating your account in the Kfet."
msgstr "" msgstr ""
#: apps/registration/forms.py:85 #: apps/registration/forms.py:91
msgid "Join BDE Club" msgid "Join BDE Club"
msgstr "" msgstr ""
#: apps/registration/forms.py:92 #: apps/registration/forms.py:98
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "" msgstr ""
@ -1446,41 +1450,41 @@ msgstr ""
msgid "WEI" msgid "WEI"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:49 apps/wei/models.py:113 #: apps/wei/forms/registration.py:51 apps/wei/models.py:113
#: apps/wei/models.py:298 #: apps/wei/models.py:298
msgid "bus" msgid "bus"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:50 #: apps/wei/forms/registration.py:52
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."
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:57 #: apps/wei/forms/registration.py:59
msgid "Team" msgid "Team"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:59 #: apps/wei/forms/registration.py:61
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)"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:65 apps/wei/forms/registration.py:75 #: apps/wei/forms/registration.py:67 apps/wei/forms/registration.py:77
#: apps/wei/models.py:148 #: apps/wei/models.py:148
msgid "WEI Roles" msgid "WEI Roles"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:66 #: apps/wei/forms/registration.py:68
msgid "Select the roles that you are interested in." msgid "Select the roles that you are interested in."
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:111 #: apps/wei/forms/registration.py:113
msgid "This team doesn't belong to the given bus." msgid "This team doesn't belong to the given bus."
msgstr "" msgstr ""
#: apps/wei/forms/surveys/wei2020.py:26 #: apps/wei/forms/surveys/wei2020.py:29
msgid "Choose a word:" msgid "Choose a word:"
msgstr "" msgstr ""
@ -1640,25 +1644,25 @@ msgstr ""
msgid "WEI memberships" msgid "WEI memberships"
msgstr "" msgstr ""
#: apps/wei/tables.py:57 apps/wei/tables.py:58 apps/wei/tables.py:95 #: apps/wei/tables.py:58 apps/wei/tables.py:59 apps/wei/tables.py:96
#: templates/treasury/sogecredit_detail.html:57 #: templates/treasury/sogecredit_detail.html:57
msgid "Validate" msgid "Validate"
msgstr "" msgstr ""
#: apps/wei/tables.py:125 #: apps/wei/tables.py:126
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: apps/wei/tables.py:163 templates/wei/bus_tables.html:26 #: apps/wei/tables.py:164 templates/wei/bus_tables.html:26
#: templates/wei/busteam_tables.html:43 #: templates/wei/busteam_tables.html:43
msgid "Teams" msgid "Teams"
msgstr "" msgstr ""
#: apps/wei/tables.py:172 apps/wei/tables.py:213 #: apps/wei/tables.py:173 apps/wei/tables.py:214
msgid "Members count" msgid "Members count"
msgstr "" msgstr ""
#: apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "members" msgid "members"
msgstr "" msgstr ""
@ -2316,6 +2320,10 @@ msgstr ""
msgid "The Note Kfet team." msgid "The Note Kfet team."
msgstr "" msgstr ""
#: templates/registration/mails/email_validation_email.html:40
msgid "Mail generated by the Note Kfet on the"
msgstr ""
#: templates/registration/password_change_done.html:8 #: templates/registration/password_change_done.html:8
msgid "Your password was changed." msgid "Your password was changed."
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-07 19:53+0200\n" "POT-Creation-Date: 2020-08-09 16:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -45,9 +45,9 @@ msgid "You can't invite more than 3 people to this activity."
msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité." msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
#: apps/activity/models.py:27 apps/activity/models.py:62 #: apps/activity/models.py:27 apps/activity/models.py:62
#: apps/member/models.py:172 apps/note/models/notes.py:212 #: apps/member/models.py:175 apps/note/models/notes.py:212
#: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45 #: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45
#: apps/note/models/transactions.py:295 apps/permission/models.py:331 #: apps/note/models/transactions.py:286 apps/permission/models.py:329
#: apps/wei/models.py:66 apps/wei/models.py:118 #: apps/wei/models.py:66 apps/wei/models.py:118
#: templates/member/club_info.html:13 templates/member/profile_info.html:14 #: templates/member/club_info.html:13 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16 #: templates/registration/future_profile_detail.html:16
@ -79,8 +79,8 @@ msgstr "type d'activité"
msgid "activity types" msgid "activity types"
msgstr "types d'activité" msgstr "types d'activité"
#: apps/activity/models.py:67 apps/note/models/transactions.py:81 #: apps/activity/models.py:67 apps/note/models/transactions.py:80
#: apps/permission/models.py:112 apps/permission/models.py:191 #: apps/permission/models.py:110 apps/permission/models.py:189
#: apps/wei/models.py:72 apps/wei/models.py:129 #: apps/wei/models.py:72 apps/wei/models.py:129
#: templates/activity/activity_info.html:19 #: templates/activity/activity_info.html:19
msgid "description" msgid "description"
@ -91,12 +91,12 @@ msgid "location"
msgstr "lieu" msgstr "lieu"
#: apps/activity/models.py:81 apps/note/models/notes.py:188 #: apps/activity/models.py:81 apps/note/models/notes.py:188
#: apps/note/models/transactions.py:66 apps/permission/models.py:166 #: apps/note/models/transactions.py:65 apps/permission/models.py:164
#: templates/activity/activity_info.html:22 #: templates/activity/activity_info.html:22
msgid "type" msgid "type"
msgstr "type" msgstr "type"
#: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:277 #: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:280
#: apps/note/models/notes.py:126 apps/treasury/models.py:266 #: apps/note/models/notes.py:126 apps/treasury/models.py:266
#: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14 #: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14
#: templates/wei/survey.html:16 #: templates/wei/survey.html:16
@ -119,7 +119,7 @@ msgstr "date de début"
msgid "end date" msgid "end date"
msgstr "date de fin" msgstr "date de fin"
#: apps/activity/models.py:114 apps/note/models/transactions.py:146 #: apps/activity/models.py:114 apps/note/models/transactions.py:145
#: templates/activity/activity_info.html:50 #: templates/activity/activity_info.html:50
msgid "valid" msgid "valid"
msgstr "valide" msgstr "valide"
@ -200,14 +200,14 @@ msgid "Type"
msgstr "Type" msgstr "Type"
#: apps/activity/tables.py:81 apps/member/forms.py:106 #: apps/activity/tables.py:81 apps/member/forms.py:106
#: apps/registration/forms.py:70 apps/treasury/forms.py:135 #: apps/registration/forms.py:76 apps/treasury/forms.py:135
#: apps/wei/forms/registration.py:94 #: apps/wei/forms/registration.py:96
msgid "Last name" msgid "Last name"
msgstr "Nom de famille" msgstr "Nom de famille"
#: apps/activity/tables.py:83 apps/member/forms.py:111 #: apps/activity/tables.py:83 apps/member/forms.py:111
#: apps/registration/forms.py:75 apps/treasury/forms.py:137 #: apps/registration/forms.py:81 apps/treasury/forms.py:137
#: apps/wei/forms/registration.py:99 templates/note/transaction_form.html:131 #: apps/wei/forms/registration.py:101 templates/note/transaction_form.html:131
msgid "First name" msgid "First name"
msgstr "Prénom" msgstr "Prénom"
@ -255,7 +255,7 @@ msgstr "Logs"
msgid "IP Address" msgid "IP Address"
msgstr "Adresse IP" msgstr "Adresse IP"
#: apps/logs/models.py:36 apps/permission/models.py:136 #: apps/logs/models.py:36 apps/permission/models.py:134
msgid "model" msgid "model"
msgstr "Modèle" msgstr "Modèle"
@ -275,14 +275,14 @@ msgstr "Nouvelles données"
msgid "create" msgid "create"
msgstr "Créer" msgstr "Créer"
#: apps/logs/models.py:62 apps/note/tables.py:160 #: apps/logs/models.py:62 apps/note/tables.py:163
#: templates/activity/activity_info.html:71 #: templates/activity/activity_info.html:71
msgid "edit" msgid "edit"
msgstr "Modifier" msgstr "Modifier"
#: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165 #: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:168
#: apps/permission/models.py:129 apps/treasury/tables.py:38 #: apps/permission/models.py:127 apps/treasury/tables.py:38
#: apps/wei/tables.py:73 #: apps/wei/tables.py:74
msgid "delete" msgid "delete"
msgstr "Supprimer" msgstr "Supprimer"
@ -306,25 +306,25 @@ msgstr "journal de modification"
msgid "changelogs" msgid "changelogs"
msgstr "journaux de modifications" msgstr "journaux de modifications"
#: apps/member/admin.py:52 apps/member/models.py:199 #: apps/member/admin.py:52 apps/member/models.py:202
#: templates/member/club_info.html:41 #: templates/member/club_info.html:41
msgid "membership fee (paid students)" msgid "membership fee (paid students)"
msgstr "cotisation pour adhérer (normalien élève)" msgstr "cotisation pour adhérer (normalien élève)"
#: apps/member/admin.py:53 apps/member/models.py:204 #: apps/member/admin.py:53 apps/member/models.py:207
#: templates/member/club_info.html:44 #: templates/member/club_info.html:44
msgid "membership fee (unpaid students)" msgid "membership fee (unpaid students)"
msgstr "cotisation pour adhérer (normalien étudiant)" msgstr "cotisation pour adhérer (normalien étudiant)"
#: apps/member/admin.py:67 apps/member/models.py:288 #: apps/member/admin.py:67 apps/member/models.py:291
msgid "roles" msgid "roles"
msgstr "rôles" msgstr "rôles"
#: apps/member/admin.py:68 apps/member/models.py:302 #: apps/member/admin.py:68 apps/member/models.py:305
msgid "fee" msgid "fee"
msgstr "cotisation" msgstr "cotisation"
#: apps/member/apps.py:14 apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/member/apps.py:14 apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "member" msgid "member"
msgstr "adhérent" msgstr "adhérent"
@ -341,21 +341,21 @@ msgstr "Date de dernier rapport"
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à."
#: apps/member/forms.py:85 apps/registration/forms.py:50 #: apps/member/forms.py:85 apps/registration/forms.py:56
msgid "Inscription paid by Société Générale" msgid "Inscription paid by Société Générale"
msgstr "Inscription payée par la Société générale" msgstr "Inscription payée par la Société générale"
#: apps/member/forms.py:87 apps/registration/forms.py:52 #: apps/member/forms.py:87 apps/registration/forms.py:58
msgid "Check this case is the Société Générale paid the inscription." msgid "Check this case is 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:92 apps/registration/forms.py:57 #: apps/member/forms.py:92 apps/registration/forms.py:63
#: apps/wei/forms/registration.py:81 #: apps/wei/forms/registration.py:83
msgid "Credit type" msgid "Credit type"
msgstr "Type de rechargement" msgstr "Type de rechargement"
#: apps/member/forms.py:93 apps/registration/forms.py:58 #: apps/member/forms.py:93 apps/registration/forms.py:64
#: apps/wei/forms/registration.py:82 #: apps/wei/forms/registration.py:84
msgid "No credit" msgid "No credit"
msgstr "Pas de rechargement" msgstr "Pas de rechargement"
@ -363,13 +363,13 @@ msgstr "Pas de rechargement"
msgid "You can credit the note of the user." msgid "You can credit the note of the user."
msgstr "Vous pouvez créditer la note de l'utisateur avant l'adhésion." msgstr "Vous pouvez créditer la note de l'utisateur avant l'adhésion."
#: apps/member/forms.py:99 apps/registration/forms.py:63 #: apps/member/forms.py:99 apps/registration/forms.py:69
#: apps/wei/forms/registration.py:87 #: apps/wei/forms/registration.py:89
msgid "Credit amount" msgid "Credit amount"
msgstr "Montant à créditer" msgstr "Montant à créditer"
#: apps/member/forms.py:116 apps/registration/forms.py:80 #: apps/member/forms.py:116 apps/registration/forms.py:86
#: apps/treasury/forms.py:139 apps/wei/forms/registration.py:104 #: apps/treasury/forms.py:139 apps/wei/forms/registration.py:106
#: templates/note/transaction_form.html:137 #: templates/note/transaction_form.html:137
msgid "Bank" msgid "Bank"
msgstr "Banque" msgstr "Banque"
@ -510,95 +510,95 @@ msgstr "inscription valide"
msgid "user profile" msgid "user profile"
msgstr "profil utilisateur" msgstr "profil utilisateur"
#: apps/member/models.py:148 #: apps/member/models.py:151
msgid "Activate your Note Kfet account" msgid "Activate your Note Kfet account"
msgstr "Activez votre compte Note Kfet" msgstr "Activez votre compte Note Kfet"
#: apps/member/models.py:177 templates/member/club_info.html:57 #: apps/member/models.py:180 templates/member/club_info.html:57
#: templates/registration/future_profile_detail.html:22 #: templates/registration/future_profile_detail.html:22
#: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24 #: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24
msgid "email" msgid "email"
msgstr "courriel" msgstr "courriel"
#: apps/member/models.py:184 #: apps/member/models.py:187
msgid "parent club" msgid "parent club"
msgstr "club parent" msgstr "club parent"
#: apps/member/models.py:193 #: apps/member/models.py:196
msgid "require memberships" msgid "require memberships"
msgstr "nécessite des adhésions" msgstr "nécessite des adhésions"
#: apps/member/models.py:194 #: apps/member/models.py:197
msgid "Uncheck if this club don't require memberships." msgid "Uncheck if this club don't require memberships."
msgstr "Décochez si ce club n'utilise pas d'adhésions." msgstr "Décochez si ce club n'utilise pas d'adhésions."
#: apps/member/models.py:210 templates/member/club_info.html:33 #: apps/member/models.py:213 templates/member/club_info.html:33
msgid "membership duration" msgid "membership duration"
msgstr "durée de l'adhésion" msgstr "durée de l'adhésion"
#: apps/member/models.py:211 #: apps/member/models.py:214
msgid "The longest time (in days) a membership can last (NULL = infinite)." 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)." msgstr "La durée maximale (en jours) d'une adhésion (NULL = infinie)."
#: apps/member/models.py:218 templates/member/club_info.html:23 #: apps/member/models.py:221 templates/member/club_info.html:23
msgid "membership start" msgid "membership start"
msgstr "début de l'adhésion" msgstr "début de l'adhésion"
#: apps/member/models.py:219 #: apps/member/models.py:222
msgid "Date from which the members can renew their membership." msgid "Date from which the members can renew their membership."
msgstr "" msgstr ""
"Date à partir de laquelle les adhérents peuvent renouveler leur adhésion." "Date à partir de laquelle les adhérents peuvent renouveler leur adhésion."
#: apps/member/models.py:225 templates/member/club_info.html:28 #: apps/member/models.py:228 templates/member/club_info.html:28
msgid "membership end" msgid "membership end"
msgstr "fin de l'adhésion" msgstr "fin de l'adhésion"
#: apps/member/models.py:226 #: apps/member/models.py:229
msgid "Maximal date of a membership, after which members must renew it." msgid "Maximal date of a membership, after which members must renew it."
msgstr "" msgstr ""
"Date maximale d'une fin d'adhésion, après laquelle les adhérents doivent la " "Date maximale d'une fin d'adhésion, après laquelle les adhérents doivent la "
"renouveler." "renouveler."
#: apps/member/models.py:258 apps/member/models.py:283 #: apps/member/models.py:261 apps/member/models.py:286
#: apps/note/models/notes.py:163 #: apps/note/models/notes.py:163
msgid "club" msgid "club"
msgstr "club" msgstr "club"
#: apps/member/models.py:259 #: apps/member/models.py:262
msgid "clubs" msgid "clubs"
msgstr "clubs" msgstr "clubs"
#: apps/member/models.py:293 #: apps/member/models.py:296
msgid "membership starts on" msgid "membership starts on"
msgstr "l'adhésion commence le" msgstr "l'adhésion commence le"
#: apps/member/models.py:297 #: apps/member/models.py:300
msgid "membership ends on" msgid "membership ends on"
msgstr "l'adhésion finit le" msgstr "l'adhésion finit le"
#: apps/member/models.py:348 #: apps/member/models.py:351
#, python-brace-format #, python-brace-format
msgid "The role {role} does not apply to the club {club}." msgid "The role {role} does not apply to the club {club}."
msgstr "Le rôle {role} ne s'applique pas au club {club}." msgstr "Le rôle {role} ne s'applique pas au club {club}."
#: apps/member/models.py:359 apps/member/views.py:592 #: apps/member/models.py:362 apps/member/views.py:592
msgid "User is already a member of the club" msgid "User is already a member of the club"
msgstr "L'utilisateur est déjà membre du club" msgstr "L'utilisateur est déjà membre du club"
#: apps/member/models.py:406 #: apps/member/models.py:409
msgid "User is not a member of the parent club" msgid "User is not a member of the parent club"
msgstr "L'utilisateur n'est pas membre du club parent" msgstr "L'utilisateur n'est pas membre du club parent"
#: apps/member/models.py:459 #: apps/member/models.py:462
#, python-brace-format #, python-brace-format
msgid "Membership of {user} for the club {club}" msgid "Membership of {user} for the club {club}"
msgstr "Adhésion de {user} pour le club {club}" msgstr "Adhésion de {user} pour le club {club}"
#: apps/member/models.py:462 #: apps/member/models.py:465
msgid "membership" msgid "membership"
msgstr "adhésion" msgstr "adhésion"
#: apps/member/models.py:463 #: apps/member/models.py:466
msgid "memberships" msgid "memberships"
msgstr "adhésions" msgstr "adhésions"
@ -686,17 +686,17 @@ msgstr "Gérer les rôles d'un utilisateur dans le club"
msgid "Members of the club" msgid "Members of the club"
msgstr "Membres du club" msgstr "Membres du club"
#: apps/note/admin.py:133 apps/note/models/transactions.py:106 #: apps/note/admin.py:133 apps/note/models/transactions.py:105
msgid "source" msgid "source"
msgstr "source" msgstr "source"
#: apps/note/admin.py:141 apps/note/admin.py:191 #: apps/note/admin.py:141 apps/note/admin.py:191
#: apps/note/models/transactions.py:55 apps/note/models/transactions.py:119 #: apps/note/models/transactions.py:55 apps/note/models/transactions.py:118
msgid "destination" msgid "destination"
msgstr "destination" msgstr "destination"
#: apps/note/admin.py:196 apps/note/models/transactions.py:59 #: apps/note/admin.py:196 apps/note/models/transactions.py:59
#: apps/note/models/transactions.py:137 #: apps/note/models/transactions.py:136
msgid "amount" msgid "amount"
msgstr "montant" msgstr "montant"
@ -771,7 +771,7 @@ msgstr ""
msgid "display image" msgid "display image"
msgstr "image affichée" msgstr "image affichée"
#: apps/note/models/notes.py:55 apps/note/models/transactions.py:129 #: apps/note/models/notes.py:55 apps/note/models/transactions.py:128
msgid "created at" msgid "created at"
msgstr "créée le" msgstr "créée le"
@ -854,56 +854,56 @@ msgstr "catégories de transaction"
msgid "A template with this name already exist" msgid "A template with this name already exist"
msgstr "Un modèle de transaction avec un nom similaire existe déjà." msgstr "Un modèle de transaction avec un nom similaire existe déjà."
#: apps/note/models/transactions.py:72 #: apps/note/models/transactions.py:71
msgid "display" msgid "display"
msgstr "afficher" msgstr "afficher"
#: apps/note/models/transactions.py:77 #: apps/note/models/transactions.py:76
msgid "highlighted" msgid "highlighted"
msgstr "mis en avant" msgstr "mis en avant"
#: apps/note/models/transactions.py:87 #: apps/note/models/transactions.py:86
msgid "transaction template" msgid "transaction template"
msgstr "Modèle de transaction" msgstr "Modèle de transaction"
#: apps/note/models/transactions.py:88 #: apps/note/models/transactions.py:87
msgid "transaction templates" msgid "transaction templates"
msgstr "Modèles de transaction" msgstr "Modèles de transaction"
#: apps/note/models/transactions.py:112 apps/note/models/transactions.py:125 #: apps/note/models/transactions.py:111 apps/note/models/transactions.py:124
#: apps/note/tables.py:35 apps/note/tables.py:44 #: apps/note/tables.py:35 apps/note/tables.py:44
msgid "used alias" msgid "used alias"
msgstr "alias utilisé" msgstr "alias utilisé"
#: apps/note/models/transactions.py:133 #: apps/note/models/transactions.py:132
msgid "quantity" msgid "quantity"
msgstr "quantité" msgstr "quantité"
#: apps/note/models/transactions.py:141 #: apps/note/models/transactions.py:140
msgid "reason" msgid "reason"
msgstr "raison" msgstr "raison"
#: apps/note/models/transactions.py:151 apps/note/tables.py:112 #: apps/note/models/transactions.py:150 apps/note/tables.py:112
msgid "invalidity reason" msgid "invalidity reason"
msgstr "Motif d'invalidité" msgstr "Motif d'invalidité"
#: apps/note/models/transactions.py:159 #: apps/note/models/transactions.py:158
msgid "transaction" msgid "transaction"
msgstr "Transaction" msgstr "Transaction"
#: apps/note/models/transactions.py:160 #: apps/note/models/transactions.py:159
#: templates/treasury/sogecredit_detail.html:22 #: templates/treasury/sogecredit_detail.html:22
msgid "transactions" msgid "transactions"
msgstr "Transactions" msgstr "Transactions"
#: apps/note/models/transactions.py:197 #: apps/note/models/transactions.py:192
msgid "" msgid ""
"The note balances must be between - 21 474 836.47 € and 21 474 836.47 €." "The note balances must be between - 21 474 836.47 € and 21 474 836.47 €."
msgstr "" msgstr ""
"Les montants des notes doivent se trouver entre - 21 474 836.47 € et 21 474 " "Les montants des notes doivent se trouver entre - 21 474 836.47 € et 21 474 "
"836.47 €. Ne cherchez pas à capitaliser l'argent du BDE." "836.47 €. Ne cherchez pas à capitaliser l'argent du BDE."
#: apps/note/models/transactions.py:212 #: apps/note/models/transactions.py:207
msgid "" msgid ""
"The transaction can't be saved since the source note or the destination note " "The transaction can't be saved since the source note or the destination note "
"is not active." "is not active."
@ -911,44 +911,44 @@ msgstr ""
"La transaction ne peut pas être sauvegardée puisque la note source ou la " "La transaction ne peut pas être sauvegardée puisque la note source ou la "
"note de destination n'est pas active." "note de destination n'est pas active."
#: apps/note/models/transactions.py:257 #: apps/note/models/transactions.py:248
#: templates/activity/activity_entry.html:13 templates/base.html:99 #: templates/activity/activity_entry.html:13 templates/base.html:99
#: templates/note/transaction_form.html:15 #: templates/note/transaction_form.html:15
#: templates/note/transaction_form.html:145 #: templates/note/transaction_form.html:145
msgid "Transfer" msgid "Transfer"
msgstr "Virement" msgstr "Virement"
#: apps/note/models/transactions.py:281 #: apps/note/models/transactions.py:272
msgid "Template" msgid "Template"
msgstr "Bouton" msgstr "Bouton"
#: apps/note/models/transactions.py:284 #: apps/note/models/transactions.py:275
msgid "recurrent transaction" msgid "recurrent transaction"
msgstr "Transaction issue de bouton" msgstr "Transaction issue de bouton"
#: apps/note/models/transactions.py:285 #: apps/note/models/transactions.py:276
msgid "recurrent transactions" msgid "recurrent transactions"
msgstr "Transactions issues de boutons" msgstr "Transactions issues de boutons"
#: apps/note/models/transactions.py:300 #: apps/note/models/transactions.py:291
msgid "first_name" msgid "first_name"
msgstr "prénom" msgstr "prénom"
#: apps/note/models/transactions.py:305 #: apps/note/models/transactions.py:296
msgid "bank" msgid "bank"
msgstr "banque" msgstr "banque"
#: apps/note/models/transactions.py:311 #: apps/note/models/transactions.py:302
#: templates/activity/activity_entry.html:17 #: templates/activity/activity_entry.html:17
#: templates/note/transaction_form.html:20 #: templates/note/transaction_form.html:20
msgid "Credit" msgid "Credit"
msgstr "Crédit" msgstr "Crédit"
#: apps/note/models/transactions.py:311 templates/note/transaction_form.html:25 #: apps/note/models/transactions.py:302 templates/note/transaction_form.html:25
msgid "Debit" msgid "Debit"
msgstr "Débit" msgstr "Débit"
#: apps/note/models/transactions.py:322 #: apps/note/models/transactions.py:313
msgid "" msgid ""
"A special transaction is only possible between a Note associated to a " "A special transaction is only possible between a Note associated to a "
"payment method and a User or a Club" "payment method and a User or a Club"
@ -956,19 +956,19 @@ msgstr ""
"Une transaction spéciale n'est possible que entre une note associée à un " "Une transaction spéciale n'est possible que entre une note associée à un "
"mode de paiement et un utilisateur ou un club." "mode de paiement et un utilisateur ou un club."
#: apps/note/models/transactions.py:326 #: apps/note/models/transactions.py:317
msgid "Special transaction" msgid "Special transaction"
msgstr "Transaction de crédit/retrait" msgstr "Transaction de crédit/retrait"
#: apps/note/models/transactions.py:327 #: apps/note/models/transactions.py:318
msgid "Special transactions" msgid "Special transactions"
msgstr "Transactions de crédit/retrait" msgstr "Transactions de crédit/retrait"
#: apps/note/models/transactions.py:343 apps/note/models/transactions.py:348 #: apps/note/models/transactions.py:334 apps/note/models/transactions.py:339
msgid "membership transaction" msgid "membership transaction"
msgstr "Transaction d'adhésion" msgstr "Transaction d'adhésion"
#: apps/note/models/transactions.py:344 apps/treasury/models.py:272 #: apps/note/models/transactions.py:335 apps/treasury/models.py:272
msgid "membership transactions" msgid "membership transactions"
msgstr "Transactions d'adhésion" msgstr "Transactions d'adhésion"
@ -984,15 +984,15 @@ msgstr "Cliquez pour valider"
msgid "No reason specified" msgid "No reason specified"
msgstr "Pas de motif spécifié" msgstr "Pas de motif spécifié"
#: apps/note/tables.py:139 apps/note/tables.py:167 apps/treasury/tables.py:39 #: apps/note/tables.py:139 apps/note/tables.py:170 apps/treasury/tables.py:39
#: apps/wei/tables.py:74 apps/wei/tables.py:100 #: apps/wei/tables.py:75 apps/wei/tables.py:101
#: templates/treasury/invoice_confirm_delete.html:28 #: templates/treasury/invoice_confirm_delete.html:28
#: templates/treasury/sogecredit_detail.html:59 #: templates/treasury/sogecredit_detail.html:59
#: templates/wei/weiregistration_confirm_delete.html:32 #: templates/wei/weiregistration_confirm_delete.html:32
msgid "Delete" msgid "Delete"
msgstr "Supprimer" msgstr "Supprimer"
#: apps/note/tables.py:162 apps/wei/tables.py:46 apps/wei/tables.py:47 #: apps/note/tables.py:165 apps/wei/tables.py:46 apps/wei/tables.py:47
#: templates/member/club_info.html:67 templates/note/conso_form.html:130 #: templates/member/club_info.html:67 templates/note/conso_form.html:130
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68
@ -1023,53 +1023,53 @@ msgstr "Consommations"
msgid "Search transactions" msgid "Search transactions"
msgstr "Rechercher des transactions" msgstr "Rechercher des transactions"
#: apps/permission/models.py:91 #: apps/permission/models.py:89
#, python-brace-format #, python-brace-format
msgid "Can {type} {model}.{field} in {query}" msgid "Can {type} {model}.{field} in {query}"
msgstr "Can {type} {model}.{field} in {query}" msgstr "Can {type} {model}.{field} in {query}"
#: apps/permission/models.py:93 #: apps/permission/models.py:91
#, python-brace-format #, python-brace-format
msgid "Can {type} {model} in {query}" msgid "Can {type} {model} in {query}"
msgstr "Can {type} {model} in {query}" msgstr "Can {type} {model} in {query}"
#: apps/permission/models.py:106 #: apps/permission/models.py:104
msgid "rank" msgid "rank"
msgstr "Rang" msgstr "Rang"
#: apps/permission/models.py:119 #: apps/permission/models.py:117
msgid "permission mask" msgid "permission mask"
msgstr "masque de permissions" msgstr "masque de permissions"
#: apps/permission/models.py:120 #: apps/permission/models.py:118
msgid "permission masks" msgid "permission masks"
msgstr "masques de permissions" msgstr "masques de permissions"
#: apps/permission/models.py:126 #: apps/permission/models.py:124
msgid "add" msgid "add"
msgstr "ajouter" msgstr "ajouter"
#: apps/permission/models.py:127 #: apps/permission/models.py:125
msgid "view" msgid "view"
msgstr "voir" msgstr "voir"
#: apps/permission/models.py:128 #: apps/permission/models.py:126
msgid "change" msgid "change"
msgstr "modifier" msgstr "modifier"
#: apps/permission/models.py:160 #: apps/permission/models.py:158
msgid "query" msgid "query"
msgstr "requête" msgstr "requête"
#: apps/permission/models.py:173 #: apps/permission/models.py:171
msgid "mask" msgid "mask"
msgstr "masque" msgstr "masque"
#: apps/permission/models.py:179 #: apps/permission/models.py:177
msgid "field" msgid "field"
msgstr "champ" msgstr "champ"
#: apps/permission/models.py:184 #: apps/permission/models.py:182
msgid "" msgid ""
"Tells if the permission should be granted even if the membership of the user " "Tells if the permission should be granted even if the membership of the user "
"is expired." "is expired."
@ -1077,29 +1077,29 @@ msgstr ""
"Indique si la permission doit être attribuée même si l'adhésion de " "Indique si la permission doit être attribuée même si l'adhésion de "
"l'utilisateur est expirée." "l'utilisateur est expirée."
#: apps/permission/models.py:185 templates/permission/all_rights.html:36 #: apps/permission/models.py:183 templates/permission/all_rights.html:36
msgid "permanent" msgid "permanent"
msgstr "permanent" msgstr "permanent"
#: apps/permission/models.py:196 #: apps/permission/models.py:194
msgid "permission" msgid "permission"
msgstr "permission" msgstr "permission"
#: apps/permission/models.py:197 apps/permission/models.py:336 #: apps/permission/models.py:195 apps/permission/models.py:334
msgid "permissions" msgid "permissions"
msgstr "permissions" msgstr "permissions"
#: apps/permission/models.py:202 #: apps/permission/models.py:200
msgid "Specifying field applies only to view and change permission types." msgid "Specifying field applies only to view and change permission types."
msgstr "" msgstr ""
"Spécifie le champ concerné, ne fonctionne que pour les permissions view et " "Spécifie le champ concerné, ne fonctionne que pour les permissions view et "
"change." "change."
#: apps/permission/models.py:341 #: apps/permission/models.py:339
msgid "for club" msgid "for club"
msgstr "s'applique au club" msgstr "s'applique au club"
#: apps/permission/models.py:351 apps/permission/models.py:352 #: apps/permission/models.py:349 apps/permission/models.py:350
msgid "role permissions" msgid "role permissions"
msgstr "Permissions par rôles" msgstr "Permissions par rôles"
@ -1142,11 +1142,17 @@ msgstr "Tous les droits"
msgid "registration" msgid "registration"
msgstr "inscription" msgstr "inscription"
#: apps/registration/forms.py:38 #: apps/registration/forms.py:34
#, fuzzy
#| msgid "This alias is already taken."
msgid "This email address is already used."
msgstr "Cet alias est déjà pris."
#: apps/registration/forms.py:44
msgid "Register to the WEI" msgid "Register to the WEI"
msgstr "S'inscrire au WEI" msgstr "S'inscrire au WEI"
#: apps/registration/forms.py:40 #: apps/registration/forms.py:46
msgid "" msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you " "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." "will be able to register later, after validating your account in the Kfet."
@ -1155,11 +1161,11 @@ msgstr ""
"pourrez toujours vous inscrire plus tard, après avoir validé votre compte à " "pourrez toujours vous inscrire plus tard, après avoir validé votre compte à "
"la Kfet." "la Kfet."
#: apps/registration/forms.py:85 #: apps/registration/forms.py:91
msgid "Join BDE Club" msgid "Join BDE Club"
msgstr "Adhérer au club BDE" msgstr "Adhérer au club BDE"
#: apps/registration/forms.py:92 #: apps/registration/forms.py:98
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "Adhérer au club Kfet" msgstr "Adhérer au club Kfet"
@ -1476,12 +1482,12 @@ msgstr "Gérer les crédits de la Société générale"
msgid "WEI" msgid "WEI"
msgstr "WEI" msgstr "WEI"
#: apps/wei/forms/registration.py:49 apps/wei/models.py:113 #: apps/wei/forms/registration.py:51 apps/wei/models.py:113
#: apps/wei/models.py:298 #: apps/wei/models.py:298
msgid "bus" msgid "bus"
msgstr "Bus" msgstr "Bus"
#: apps/wei/forms/registration.py:50 #: apps/wei/forms/registration.py:52
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."
@ -1490,11 +1496,11 @@ msgstr ""
"attribuer un bus et une équipe, en particulier si vous êtes un électron " "attribuer un bus et une équipe, en particulier si vous êtes un électron "
"libre." "libre."
#: apps/wei/forms/registration.py:57 #: apps/wei/forms/registration.py:59
msgid "Team" msgid "Team"
msgstr "Équipe" msgstr "Équipe"
#: apps/wei/forms/registration.py:59 #: apps/wei/forms/registration.py:61
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)"
@ -1502,20 +1508,20 @@ 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:65 apps/wei/forms/registration.py:75 #: apps/wei/forms/registration.py:67 apps/wei/forms/registration.py:77
#: apps/wei/models.py:148 #: apps/wei/models.py:148
msgid "WEI Roles" msgid "WEI Roles"
msgstr "Rôles au WEI" msgstr "Rôles au WEI"
#: apps/wei/forms/registration.py:66 #: apps/wei/forms/registration.py:68
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:111 #: apps/wei/forms/registration.py:113
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/wei2020.py:26 #: apps/wei/forms/surveys/wei2020.py:29
msgid "Choose a word:" msgid "Choose a word:"
msgstr "Choisissez un mot :" msgstr "Choisissez un mot :"
@ -1685,25 +1691,25 @@ msgstr "adhésion au WEI"
msgid "WEI memberships" msgid "WEI memberships"
msgstr "adhésions au WEI" msgstr "adhésions au WEI"
#: apps/wei/tables.py:57 apps/wei/tables.py:58 apps/wei/tables.py:95 #: apps/wei/tables.py:58 apps/wei/tables.py:59 apps/wei/tables.py:96
#: templates/treasury/sogecredit_detail.html:57 #: templates/treasury/sogecredit_detail.html:57
msgid "Validate" msgid "Validate"
msgstr "Valider" msgstr "Valider"
#: apps/wei/tables.py:125 #: apps/wei/tables.py:126
msgid "Year" msgid "Year"
msgstr "Année" msgstr "Année"
#: apps/wei/tables.py:163 templates/wei/bus_tables.html:26 #: apps/wei/tables.py:164 templates/wei/bus_tables.html:26
#: templates/wei/busteam_tables.html:43 #: templates/wei/busteam_tables.html:43
msgid "Teams" msgid "Teams"
msgstr "Équipes" msgstr "Équipes"
#: apps/wei/tables.py:172 apps/wei/tables.py:213 #: apps/wei/tables.py:173 apps/wei/tables.py:214
msgid "Members count" msgid "Members count"
msgstr "Nombre de membres" msgstr "Nombre de membres"
#: apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "members" msgid "members"
msgstr "adhérents" msgstr "adhérents"
@ -2400,6 +2406,10 @@ msgstr "Merci"
msgid "The Note Kfet team." msgid "The Note Kfet team."
msgstr "L'équipe de la Note Kfet." msgstr "L'équipe de la Note Kfet."
#: templates/registration/mails/email_validation_email.html:40
msgid "Mail generated by the Note Kfet on the"
msgstr "Mail généré par la Note Kfet le"
#: templates/registration/password_change_done.html:8 #: templates/registration/password_change_done.html:8
msgid "Your password was changed." msgid "Your password was changed."
msgstr "Votre mot de passe a bien été changé." msgstr "Votre mot de passe a bien été changé."

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
@ -38,7 +39,7 @@
-- --
<p> <p>
Le BDE<br> Le BDE<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>
</body> </body>
</html> </html>

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
Bonjour {{ note.user.first_name }} {{ note.user.last_name }}, Bonjour {{ note.user.first_name }} {{ note.user.last_name }},
@ -20,4 +21,4 @@ virement bancaire.
-- --
Le BDE Le BDE
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
@ -35,7 +36,7 @@
-- --
<p> <p>
Le BDE<br> Le BDE<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>
</body> </body>
</html> </html>

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
Nom | Prénom | Pseudo | Email | Solde | Durée Nom | Prénom | Pseudo | Email | Solde | Durée
---------------------+------------+-----------------+-----------------------------------+----------+----------- ---------------------+------------+-----------------+-----------------------------------+----------+-----------
@ -9,4 +10,4 @@
-- --
Le BDE Le BDE
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}

View File

@ -1,5 +1,6 @@
{% load pretty_money %} {% load pretty_money %}
{% load render_table from django_tables2 %} {% load render_table from django_tables2 %}
{% load i18n %}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
@ -50,7 +51,7 @@
-- --
<p> <p>
Le BDE<br> Le BDE<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>
</body> </body>
</html> </html>

View File

@ -36,6 +36,6 @@
-- --
<p> <p>
{% trans "The Note Kfet team." %} {% trans "The Note Kfet team." %}<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>

View File

@ -13,4 +13,4 @@ https://{{ domain }}{% url 'registration:email_validation' uidb64=uid token=toke
{% trans "Thanks" %}, {% trans "Thanks" %},
{% trans "The Note Kfet team." %} {% trans "The Note Kfet team." %}
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}