diff --git a/apps/member/models.py b/apps/member/models.py
index 6ba4fb5f..5d6544af 100644
--- a/apps/member/models.py
+++ b/apps/member/models.py
@@ -139,7 +139,7 @@ class Profile(models.Model):
'token': email_validation_token.make_token(self.user),
'uid': urlsafe_base64_encode(force_bytes(self.user.pk)),
})
- html = loader.render_to_string('registration/mails/email_validation_email.txt',
+ html = loader.render_to_string('registration/mails/email_validation_email.html',
{
'user': self.user,
'domain': os.getenv("NOTE_URL", "note.example.com"),
diff --git a/apps/registration/forms.py b/apps/registration/forms.py
index 46559487..3ba791a0 100644
--- a/apps/registration/forms.py
+++ b/apps/registration/forms.py
@@ -5,7 +5,7 @@ from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django.utils.translation import gettext_lazy as _
-from note.models import NoteSpecial
+from note.models import NoteSpecial, Alias
from note_kfet.inputs import AmountInput
@@ -22,6 +22,12 @@ class SignUpForm(UserCreationForm):
self.fields['email'].required = True
self.fields['email'].help_text = _("This address must be valid.")
+ def clean_username(self):
+ value = self.cleaned_data["username"]
+ if Alias.objects.filter(normalized_name=Alias.normalize(value)).exists():
+ self.add_error("username", _("An alias with a similar name already exists."))
+ return value
+
class Meta:
model = User
fields = ('first_name', 'last_name', 'username', 'email', )
diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po
index d28ecb34..b094a5ac 100644
--- a/locale/de/LC_MESSAGES/django.po
+++ b/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-01 15:06+0200\n"
+"POT-Creation-Date: 2020-08-03 12:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,35 +18,35 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: apps/activity/apps.py:10 apps/activity/models.py:102
-#: apps/activity/models.py:117
+#: apps/activity/apps.py:10 apps/activity/models.py:106
+#: apps/activity/models.py:121
msgid "activity"
msgstr ""
-#: apps/activity/forms.py:45 apps/activity/models.py:213
+#: apps/activity/forms.py:45 apps/activity/models.py:217
msgid "You can't invite someone once the activity is started."
msgstr ""
-#: apps/activity/forms.py:48 apps/activity/models.py:216
+#: apps/activity/forms.py:48 apps/activity/models.py:220
msgid "This activity is not validated yet."
msgstr ""
-#: apps/activity/forms.py:58 apps/activity/models.py:224
+#: apps/activity/forms.py:58 apps/activity/models.py:228
msgid "This person has been already invited 5 times this year."
msgstr ""
-#: apps/activity/forms.py:62 apps/activity/models.py:228
+#: apps/activity/forms.py:62 apps/activity/models.py:232
msgid "This person is already invited."
msgstr ""
-#: apps/activity/forms.py:66 apps/activity/models.py:232
+#: apps/activity/forms.py:66 apps/activity/models.py:236
msgid "You can't invite more than 3 people to this activity."
msgstr ""
-#: apps/activity/models.py:23 apps/activity/models.py:48
-#: apps/member/models.py:151 apps/note/models/notes.py:188
+#: apps/activity/models.py:24 apps/activity/models.py:49
+#: apps/member/models.py:158 apps/note/models/notes.py:212
#: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45
-#: apps/note/models/transactions.py:263 apps/permission/models.py:332
+#: apps/note/models/transactions.py:263 apps/permission/models.py:339
#: apps/wei/models.py:65 apps/wei/models.py:117
#: templates/member/club_info.html:13 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16
@@ -54,123 +54,123 @@ msgstr ""
msgid "name"
msgstr ""
-#: apps/activity/models.py:27 templates/activity/activity_detail.html:39
+#: apps/activity/models.py:28 templates/activity/activity_detail.html:39
msgid "can invite"
msgstr ""
-#: apps/activity/models.py:30 templates/activity/activity_detail.html:43
+#: apps/activity/models.py:31 templates/activity/activity_detail.html:43
msgid "guest entry fee"
msgstr ""
-#: apps/activity/models.py:34
+#: apps/activity/models.py:35
msgid "activity type"
msgstr ""
-#: apps/activity/models.py:35
+#: apps/activity/models.py:36
msgid "activity types"
msgstr ""
-#: apps/activity/models.py:53 apps/note/models/transactions.py:81
-#: apps/permission/models.py:113 apps/permission/models.py:192
+#: apps/activity/models.py:54 apps/note/models/transactions.py:81
+#: apps/permission/models.py:120 apps/permission/models.py:199
#: apps/wei/models.py:71 apps/wei/models.py:128
#: templates/activity/activity_detail.html:16
msgid "description"
msgstr ""
-#: apps/activity/models.py:60 apps/note/models/notes.py:164
-#: apps/note/models/transactions.py:66 apps/permission/models.py:167
+#: apps/activity/models.py:61 apps/note/models/notes.py:188
+#: apps/note/models/transactions.py:66 apps/permission/models.py:174
#: templates/activity/activity_detail.html:19
msgid "type"
msgstr ""
-#: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:259
-#: apps/note/models/notes.py:117 apps/treasury/models.py:221
+#: apps/activity/models.py:67 apps/logs/models.py:22 apps/member/models.py:266
+#: apps/note/models/notes.py:126 apps/treasury/models.py:222
#: apps/wei/models.py:159 templates/treasury/sogecredit_detail.html:14
#: templates/wei/survey.html:16
msgid "user"
msgstr ""
-#: apps/activity/models.py:73 templates/activity/activity_detail.html:33
+#: apps/activity/models.py:74 templates/activity/activity_detail.html:33
msgid "organizer"
msgstr ""
-#: apps/activity/models.py:80 templates/activity/activity_detail.html:36
+#: apps/activity/models.py:81 templates/activity/activity_detail.html:36
msgid "attendees club"
msgstr ""
-#: apps/activity/models.py:84 templates/activity/activity_detail.html:22
+#: apps/activity/models.py:85 templates/activity/activity_detail.html:22
msgid "start date"
msgstr ""
-#: apps/activity/models.py:88 templates/activity/activity_detail.html:25
+#: apps/activity/models.py:89 templates/activity/activity_detail.html:25
msgid "end date"
msgstr ""
-#: apps/activity/models.py:93 apps/note/models/transactions.py:146
+#: apps/activity/models.py:94 apps/note/models/transactions.py:146
#: templates/activity/activity_detail.html:47
msgid "valid"
msgstr ""
-#: apps/activity/models.py:98 templates/activity/activity_detail.html:61
+#: apps/activity/models.py:99 templates/activity/activity_detail.html:61
msgid "open"
msgstr ""
-#: apps/activity/models.py:103
+#: apps/activity/models.py:107
msgid "activities"
msgstr ""
-#: apps/activity/models.py:122
+#: apps/activity/models.py:126
msgid "entry time"
msgstr ""
-#: apps/activity/models.py:128 apps/note/apps.py:14
-#: apps/note/models/notes.py:58
+#: apps/activity/models.py:132 apps/note/apps.py:14
+#: apps/note/models/notes.py:60
msgid "note"
msgstr ""
-#: apps/activity/models.py:139 templates/activity/activity_entry.html:38
+#: apps/activity/models.py:143 templates/activity/activity_entry.html:38
msgid "entry"
msgstr ""
-#: apps/activity/models.py:140 templates/activity/activity_entry.html:38
+#: apps/activity/models.py:144 templates/activity/activity_entry.html:38
msgid "entries"
msgstr ""
-#: apps/activity/models.py:146
+#: apps/activity/models.py:150
msgid "Already entered on "
msgstr ""
-#: apps/activity/models.py:146 apps/activity/tables.py:54
+#: apps/activity/models.py:150 apps/activity/tables.py:54
msgid "{:%Y-%m-%d %H:%M:%S}"
msgstr ""
-#: apps/activity/models.py:154
+#: apps/activity/models.py:158
msgid "The balance is negative."
msgstr ""
-#: apps/activity/models.py:184
+#: apps/activity/models.py:188
msgid "last name"
msgstr ""
-#: apps/activity/models.py:189 templates/member/profile_info.html:14
+#: apps/activity/models.py:193 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16
#: templates/wei/weimembership_form.html:18
msgid "first name"
msgstr ""
-#: apps/activity/models.py:196
+#: apps/activity/models.py:200
msgid "inviter"
msgstr ""
-#: apps/activity/models.py:237
+#: apps/activity/models.py:244
msgid "guest"
msgstr ""
-#: apps/activity/models.py:238
+#: apps/activity/models.py:245
msgid "guests"
msgstr ""
-#: apps/activity/models.py:250
+#: apps/activity/models.py:257
msgid "Invitation"
msgstr ""
@@ -182,26 +182,26 @@ msgstr ""
msgid "remove"
msgstr ""
-#: apps/activity/tables.py:75 apps/treasury/models.py:140
+#: apps/activity/tables.py:75 apps/treasury/models.py:141
msgid "Type"
msgstr ""
#: apps/activity/tables.py:77 apps/member/forms.py:102
-#: apps/registration/forms.py:64 apps/treasury/forms.py:120
+#: apps/registration/forms.py:70 apps/treasury/forms.py:120
msgid "Last name"
msgstr ""
#: apps/activity/tables.py:79 apps/member/forms.py:107
-#: apps/registration/forms.py:69 apps/treasury/forms.py:122
+#: apps/registration/forms.py:75 apps/treasury/forms.py:122
#: templates/note/transaction_form.html:129
msgid "First name"
msgstr ""
-#: apps/activity/tables.py:81 apps/note/models/notes.py:67
+#: apps/activity/tables.py:81 apps/note/models/notes.py:69
msgid "Note"
msgstr ""
-#: apps/activity/tables.py:83 apps/member/tables.py:42
+#: apps/activity/tables.py:83 apps/member/tables.py:43
msgid "Balance"
msgstr ""
@@ -209,7 +209,7 @@ msgstr ""
msgid "Create new activity"
msgstr ""
-#: apps/activity/views.py:41 templates/base.html:121
+#: apps/activity/views.py:41 templates/base.html:114
msgid "Activities"
msgstr ""
@@ -237,75 +237,75 @@ msgstr ""
msgid "Logs"
msgstr ""
-#: apps/logs/models.py:27
+#: apps/logs/models.py:28
msgid "IP Address"
msgstr ""
-#: apps/logs/models.py:35 apps/permission/models.py:137
+#: apps/logs/models.py:36 apps/permission/models.py:144
msgid "model"
msgstr ""
-#: apps/logs/models.py:42
+#: apps/logs/models.py:43
msgid "identifier"
msgstr ""
-#: apps/logs/models.py:47
+#: apps/logs/models.py:48
msgid "previous data"
msgstr ""
-#: apps/logs/models.py:52
+#: apps/logs/models.py:53
msgid "new data"
msgstr ""
-#: apps/logs/models.py:60
+#: apps/logs/models.py:61
msgid "create"
msgstr ""
-#: apps/logs/models.py:61 apps/note/tables.py:161
+#: apps/logs/models.py:62 apps/note/tables.py:160
#: templates/activity/activity_detail.html:67
msgid "edit"
msgstr ""
-#: apps/logs/models.py:62 apps/note/tables.py:138 apps/note/tables.py:166
-#: apps/permission/models.py:130 apps/wei/tables.py:65
+#: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165
+#: apps/permission/models.py:137 apps/wei/tables.py:65
msgid "delete"
msgstr ""
-#: apps/logs/models.py:65
+#: apps/logs/models.py:66
msgid "action"
msgstr ""
-#: apps/logs/models.py:73
+#: apps/logs/models.py:74
msgid "timestamp"
msgstr ""
-#: apps/logs/models.py:77
+#: apps/logs/models.py:78
msgid "Logs cannot be destroyed."
msgstr ""
-#: apps/logs/models.py:80
+#: apps/logs/models.py:81
msgid "changelog"
msgstr ""
-#: apps/logs/models.py:81
+#: apps/logs/models.py:82
msgid "changelogs"
msgstr ""
-#: apps/member/admin.py:53 apps/member/models.py:178
+#: apps/member/admin.py:52 apps/member/models.py:185
#: templates/member/club_info.html:41
msgid "membership fee (paid students)"
msgstr ""
-#: apps/member/admin.py:54 apps/member/models.py:183
+#: apps/member/admin.py:53 apps/member/models.py:190
#: templates/member/club_info.html:44
msgid "membership fee (unpaid students)"
msgstr ""
-#: apps/member/admin.py:68 apps/member/models.py:270
+#: apps/member/admin.py:67 apps/member/models.py:277
msgid "roles"
msgstr ""
-#: apps/member/admin.py:69 apps/member/models.py:284
+#: apps/member/admin.py:68 apps/member/models.py:291
msgid "fee"
msgstr ""
@@ -314,22 +314,23 @@ msgid "member"
msgstr ""
#: apps/member/forms.py:58 apps/member/views.py:82
+#: apps/registration/forms.py:28
msgid "An alias with a similar name already exists."
msgstr ""
-#: apps/member/forms.py:81 apps/registration/forms.py:44
+#: apps/member/forms.py:81 apps/registration/forms.py:50
msgid "Inscription paid by Société Générale"
msgstr ""
-#: apps/member/forms.py:83 apps/registration/forms.py:46
+#: apps/member/forms.py:83 apps/registration/forms.py:52
msgid "Check this case is the Société Générale paid the inscription."
msgstr ""
-#: apps/member/forms.py:88 apps/registration/forms.py:51
+#: apps/member/forms.py:88 apps/registration/forms.py:57
msgid "Credit type"
msgstr ""
-#: apps/member/forms.py:89 apps/registration/forms.py:52
+#: apps/member/forms.py:89 apps/registration/forms.py:58
msgid "No credit"
msgstr ""
@@ -337,20 +338,20 @@ msgstr ""
msgid "You can credit the note of the user."
msgstr ""
-#: apps/member/forms.py:95 apps/registration/forms.py:57
+#: apps/member/forms.py:95 apps/registration/forms.py:63
msgid "Credit amount"
msgstr ""
-#: apps/member/forms.py:112 apps/registration/forms.py:74
+#: apps/member/forms.py:112 apps/registration/forms.py:80
#: apps/treasury/forms.py:124 templates/note/transaction_form.html:135
msgid "Bank"
msgstr ""
-#: apps/member/forms.py:138
+#: apps/member/forms.py:139
msgid "User"
msgstr ""
-#: apps/member/forms.py:152
+#: apps/member/forms.py:153
msgid "Roles"
msgstr ""
@@ -478,94 +479,94 @@ msgstr ""
msgid "Activate your Note Kfet account"
msgstr ""
-#: apps/member/models.py:156 templates/member/club_info.html:57
+#: apps/member/models.py:163 templates/member/club_info.html:57
#: templates/registration/future_profile_detail.html:22
#: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24
msgid "email"
msgstr ""
-#: apps/member/models.py:163
+#: apps/member/models.py:170
msgid "parent club"
msgstr ""
-#: apps/member/models.py:172
+#: apps/member/models.py:179
msgid "require memberships"
msgstr ""
-#: apps/member/models.py:173
+#: apps/member/models.py:180
msgid "Uncheck if this club don't require memberships."
msgstr ""
-#: apps/member/models.py:189 templates/member/club_info.html:33
+#: apps/member/models.py:196 templates/member/club_info.html:33
msgid "membership duration"
msgstr ""
-#: apps/member/models.py:190
+#: apps/member/models.py:197
msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr ""
-#: apps/member/models.py:197 templates/member/club_info.html:23
+#: apps/member/models.py:204 templates/member/club_info.html:23
msgid "membership start"
msgstr ""
-#: apps/member/models.py:198
+#: apps/member/models.py:205
msgid "How long after January 1st the members can renew their membership."
msgstr ""
-#: apps/member/models.py:205 templates/member/club_info.html:28
+#: apps/member/models.py:212 templates/member/club_info.html:28
msgid "membership end"
msgstr ""
-#: apps/member/models.py:206
+#: apps/member/models.py:213
msgid ""
"How long the membership can last after January 1st of the next year after "
"members can renew their membership."
msgstr ""
-#: apps/member/models.py:240 apps/member/models.py:265
-#: apps/note/models/notes.py:139
+#: apps/member/models.py:247 apps/member/models.py:272
+#: apps/note/models/notes.py:163
msgid "club"
msgstr ""
-#: apps/member/models.py:241
+#: apps/member/models.py:248
msgid "clubs"
msgstr ""
-#: apps/member/models.py:275
+#: apps/member/models.py:282
msgid "membership starts on"
msgstr ""
-#: apps/member/models.py:279
+#: apps/member/models.py:286
msgid "membership ends on"
msgstr ""
-#: apps/member/models.py:303 apps/member/views.py:535 apps/wei/views.py:797
+#: apps/member/models.py:310 apps/member/views.py:535 apps/wei/views.py:795
msgid "User is not a member of the parent club"
msgstr ""
-#: apps/member/models.py:310
+#: apps/member/models.py:317
#, python-brace-format
msgid "The role {role} does not apply to the club {club}."
msgstr ""
-#: apps/member/models.py:321 apps/member/views.py:544
+#: apps/member/models.py:328 apps/member/views.py:544
msgid "User is already a member of the club"
msgstr ""
-#: apps/member/models.py:372
+#: apps/member/models.py:379
#, python-brace-format
msgid "Membership of {user} for the club {club}"
msgstr ""
-#: apps/member/models.py:375
+#: apps/member/models.py:382
msgid "membership"
msgstr ""
-#: apps/member/models.py:376
+#: apps/member/models.py:383
msgid "memberships"
msgstr ""
-#: apps/member/tables.py:113
+#: apps/member/tables.py:114
msgid "Renew"
msgstr ""
@@ -619,7 +620,7 @@ msgstr ""
msgid "Add new member to the club"
msgstr ""
-#: apps/member/views.py:530 apps/wei/views.py:788
+#: apps/member/views.py:530 apps/wei/views.py:786
msgid ""
"This user don't have enough money to join this club, and can't have a "
"negative balance."
@@ -634,8 +635,8 @@ msgid "The membership must begin before {:%m-%d-%Y}."
msgstr ""
#: apps/member/views.py:570 apps/member/views.py:572 apps/member/views.py:574
-#: apps/registration/views.py:292 apps/registration/views.py:294
-#: apps/registration/views.py:296
+#: apps/registration/views.py:290 apps/registration/views.py:292
+#: apps/registration/views.py:294
msgid "This field is required."
msgstr ""
@@ -647,16 +648,16 @@ msgstr ""
msgid "Members of the club"
msgstr ""
-#: apps/note/admin.py:134 apps/note/models/transactions.py:106
+#: apps/note/admin.py:133 apps/note/models/transactions.py:106
msgid "source"
msgstr ""
-#: apps/note/admin.py:142 apps/note/admin.py:192
+#: apps/note/admin.py:141 apps/note/admin.py:191
#: apps/note/models/transactions.py:55 apps/note/models/transactions.py:119
msgid "destination"
msgstr ""
-#: apps/note/admin.py:197 apps/note/models/transactions.py:59
+#: apps/note/admin.py:196 apps/note/models/transactions.py:59
#: apps/note/models/transactions.py:137
msgid "amount"
msgstr ""
@@ -669,104 +670,104 @@ msgstr ""
msgid "Maximal size: 2MB"
msgstr ""
-#: apps/note/models/notes.py:27
+#: apps/note/models/notes.py:29
msgid "account balance"
msgstr ""
-#: apps/note/models/notes.py:28
+#: apps/note/models/notes.py:30
msgid "in centimes, money credited for this instance"
msgstr ""
-#: apps/note/models/notes.py:32
+#: apps/note/models/notes.py:34
msgid "last negative date"
msgstr ""
-#: apps/note/models/notes.py:33
+#: apps/note/models/notes.py:35
msgid "last time the balance was negative"
msgstr ""
-#: apps/note/models/notes.py:38
+#: apps/note/models/notes.py:40
msgid "active"
msgstr ""
-#: apps/note/models/notes.py:41
+#: apps/note/models/notes.py:43
msgid ""
"Designates whether this note should be treated as active. Unselect this "
"instead of deleting notes."
msgstr ""
-#: apps/note/models/notes.py:45
+#: apps/note/models/notes.py:47
msgid "display image"
msgstr ""
-#: apps/note/models/notes.py:53 apps/note/models/transactions.py:129
+#: apps/note/models/notes.py:55 apps/note/models/transactions.py:129
msgid "created at"
msgstr ""
-#: apps/note/models/notes.py:59
+#: apps/note/models/notes.py:61
msgid "notes"
msgstr ""
-#: apps/note/models/notes.py:77 apps/note/models/notes.py:101
+#: apps/note/models/notes.py:86 apps/note/models/notes.py:110
msgid "This alias is already taken."
msgstr ""
-#: apps/note/models/notes.py:121
+#: apps/note/models/notes.py:130
msgid "one's note"
msgstr ""
-#: apps/note/models/notes.py:122
+#: apps/note/models/notes.py:131
msgid "users note"
msgstr ""
-#: apps/note/models/notes.py:128
+#: apps/note/models/notes.py:137
#, python-format
msgid "%(user)s's note"
msgstr ""
-#: apps/note/models/notes.py:143
+#: apps/note/models/notes.py:167
msgid "club note"
msgstr ""
-#: apps/note/models/notes.py:144
+#: apps/note/models/notes.py:168
msgid "clubs notes"
msgstr ""
-#: apps/note/models/notes.py:150
+#: apps/note/models/notes.py:174
#, python-format
msgid "Note of %(club)s club"
msgstr ""
-#: apps/note/models/notes.py:170
+#: apps/note/models/notes.py:194
msgid "special note"
msgstr ""
-#: apps/note/models/notes.py:171
+#: apps/note/models/notes.py:195
msgid "special notes"
msgstr ""
-#: apps/note/models/notes.py:194
+#: apps/note/models/notes.py:218
msgid "Invalid alias"
msgstr ""
-#: apps/note/models/notes.py:210
+#: apps/note/models/notes.py:234
msgid "alias"
msgstr ""
-#: apps/note/models/notes.py:211 templates/member/club_info.html:54
+#: apps/note/models/notes.py:235 templates/member/club_info.html:54
#: templates/member/profile_info.html:38 templates/wei/weiclub_info.html:48
msgid "aliases"
msgstr ""
-#: apps/note/models/notes.py:233
+#: apps/note/models/notes.py:257
msgid "Alias is too long."
msgstr ""
-#: apps/note/models/notes.py:238
+#: apps/note/models/notes.py:262
msgid "An alias with a similar name already exists: {} "
msgstr ""
-#: apps/note/models/notes.py:251
+#: apps/note/models/notes.py:275
msgid "You can't delete your main alias."
msgstr ""
@@ -815,7 +816,7 @@ msgstr ""
msgid "reason"
msgstr ""
-#: apps/note/models/transactions.py:151 apps/note/tables.py:113
+#: apps/note/models/transactions.py:151 apps/note/tables.py:112
msgid "invalidity reason"
msgstr ""
@@ -873,7 +874,7 @@ msgstr ""
msgid "membership transaction"
msgstr ""
-#: apps/note/models/transactions.py:308 apps/treasury/models.py:227
+#: apps/note/models/transactions.py:308 apps/treasury/models.py:228
msgid "membership transactions"
msgstr ""
@@ -885,17 +886,17 @@ msgstr ""
msgid "Click to validate"
msgstr ""
-#: apps/note/tables.py:111
+#: apps/note/tables.py:110
msgid "No reason specified"
msgstr ""
-#: apps/note/tables.py:140 apps/note/tables.py:168 apps/wei/tables.py:66
+#: apps/note/tables.py:139 apps/note/tables.py:167 apps/wei/tables.py:66
#: templates/treasury/sogecredit_detail.html:59
#: templates/wei/weiregistration_confirm_delete.html:32
msgid "Delete"
msgstr ""
-#: apps/note/tables.py:163 apps/wei/tables.py:42 apps/wei/tables.py:43
+#: apps/note/tables.py:162 apps/wei/tables.py:42 apps/wei/tables.py:43
#: templates/member/club_info.html:67 templates/note/conso_form.html:128
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68
@@ -906,95 +907,95 @@ msgstr ""
msgid "Transfer money"
msgstr ""
-#: apps/note/views.py:67
+#: apps/note/views.py:69
msgid "Create new button"
msgstr ""
-#: apps/note/views.py:76
+#: apps/note/views.py:78
msgid "Search button"
msgstr ""
-#: apps/note/views.py:99
+#: apps/note/views.py:101
msgid "Update button"
msgstr ""
-#: apps/note/views.py:136 templates/base.html:94
+#: apps/note/views.py:138 templates/base.html:94
msgid "Consumptions"
msgstr ""
-#: apps/permission/models.py:92
+#: apps/permission/models.py:99
#, python-brace-format
msgid "Can {type} {model}.{field} in {query}"
msgstr ""
-#: apps/permission/models.py:94
+#: apps/permission/models.py:101
#, python-brace-format
msgid "Can {type} {model} in {query}"
msgstr ""
-#: apps/permission/models.py:107
+#: apps/permission/models.py:114
msgid "rank"
msgstr ""
-#: apps/permission/models.py:120
+#: apps/permission/models.py:127
msgid "permission mask"
msgstr ""
-#: apps/permission/models.py:121
+#: apps/permission/models.py:128
msgid "permission masks"
msgstr ""
-#: apps/permission/models.py:127
+#: apps/permission/models.py:134
msgid "add"
msgstr ""
-#: apps/permission/models.py:128
+#: apps/permission/models.py:135
msgid "view"
msgstr ""
-#: apps/permission/models.py:129
+#: apps/permission/models.py:136
msgid "change"
msgstr ""
-#: apps/permission/models.py:161
+#: apps/permission/models.py:168
msgid "query"
msgstr ""
-#: apps/permission/models.py:174
+#: apps/permission/models.py:181
msgid "mask"
msgstr ""
-#: apps/permission/models.py:180
+#: apps/permission/models.py:187
msgid "field"
msgstr ""
-#: apps/permission/models.py:185
+#: apps/permission/models.py:192
msgid ""
"Tells if the permission should be granted even if the membership of the user "
"is expired."
msgstr ""
-#: apps/permission/models.py:186 templates/permission/all_rights.html:26
+#: apps/permission/models.py:193 templates/permission/all_rights.html:26
msgid "permanent"
msgstr ""
-#: apps/permission/models.py:197
+#: apps/permission/models.py:204
msgid "permission"
msgstr ""
-#: apps/permission/models.py:198 apps/permission/models.py:337
+#: apps/permission/models.py:205 apps/permission/models.py:344
msgid "permissions"
msgstr ""
-#: apps/permission/models.py:203
+#: apps/permission/models.py:210
msgid "Specifying field applies only to view and change permission types."
msgstr ""
-#: apps/permission/models.py:342
+#: apps/permission/models.py:349
msgid "for club"
msgstr ""
-#: apps/permission/models.py:352 apps/permission/models.py:353
+#: apps/permission/models.py:359 apps/permission/models.py:360
msgid "role permissions"
msgstr ""
@@ -1019,7 +1020,7 @@ msgid ""
"{model_name}."
msgstr ""
-#: apps/permission/views.py:44 templates/base.html:136
+#: apps/permission/views.py:44 templates/base.html:129
msgid "Rights"
msgstr ""
@@ -1031,21 +1032,21 @@ msgstr ""
msgid "registration"
msgstr ""
-#: apps/registration/forms.py:32
+#: apps/registration/forms.py:38
msgid "Register to the WEI"
msgstr ""
-#: apps/registration/forms.py:34
+#: apps/registration/forms.py:40
msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you "
"will be able to register later, after validating your account in the Kfet."
msgstr ""
-#: apps/registration/forms.py:79
+#: apps/registration/forms.py:85
msgid "Join BDE Club"
msgstr ""
-#: apps/registration/forms.py:86
+#: apps/registration/forms.py:92
msgid "Join Kfet Club"
msgstr ""
@@ -1077,32 +1078,32 @@ msgstr ""
msgid "Pre-registered users list"
msgstr ""
-#: apps/registration/views.py:190
+#: apps/registration/views.py:188
msgid "Unregistered users"
msgstr ""
-#: apps/registration/views.py:203
+#: apps/registration/views.py:201
msgid "Registration detail"
msgstr ""
-#: apps/registration/views.py:258
+#: apps/registration/views.py:256
msgid "You must join the BDE."
msgstr ""
-#: apps/registration/views.py:280
+#: apps/registration/views.py:278
msgid "You must join BDE club before joining Kfet club."
msgstr ""
-#: apps/registration/views.py:285
+#: apps/registration/views.py:283
msgid ""
"The entered amount is not enough for the memberships, should be at least {}"
msgstr ""
-#: apps/registration/views.py:360
+#: apps/registration/views.py:358
msgid "Invalidate pre-registration"
msgstr ""
-#: apps/treasury/apps.py:12 templates/base.html:126
+#: apps/treasury/apps.py:12 templates/base.html:119
msgid "Treasury"
msgstr ""
@@ -1136,128 +1137,128 @@ msgstr ""
msgid "Amount"
msgstr ""
-#: apps/treasury/models.py:20
+#: apps/treasury/models.py:21
msgid "Invoice identifier"
msgstr ""
-#: apps/treasury/models.py:34
+#: apps/treasury/models.py:35
msgid "BDE"
msgstr ""
-#: apps/treasury/models.py:39
+#: apps/treasury/models.py:40
msgid "Object"
msgstr ""
-#: apps/treasury/models.py:43
+#: apps/treasury/models.py:44
msgid "Description"
msgstr ""
-#: apps/treasury/models.py:48 templates/note/transaction_form.html:123
+#: apps/treasury/models.py:49 templates/note/transaction_form.html:123
msgid "Name"
msgstr ""
-#: apps/treasury/models.py:52
+#: apps/treasury/models.py:53
msgid "Address"
msgstr ""
-#: apps/treasury/models.py:57
+#: apps/treasury/models.py:58
msgid "Place"
msgstr ""
-#: apps/treasury/models.py:61
+#: apps/treasury/models.py:62
msgid "Acquitted"
msgstr ""
-#: apps/treasury/models.py:65
+#: apps/treasury/models.py:66
msgid "invoice"
msgstr ""
-#: apps/treasury/models.py:66
+#: apps/treasury/models.py:67
msgid "invoices"
msgstr ""
-#: apps/treasury/models.py:81
+#: apps/treasury/models.py:82
msgid "Designation"
msgstr ""
-#: apps/treasury/models.py:85
+#: apps/treasury/models.py:86
msgid "Quantity"
msgstr ""
-#: apps/treasury/models.py:89
+#: apps/treasury/models.py:90
msgid "Unit price"
msgstr ""
-#: apps/treasury/models.py:105
+#: apps/treasury/models.py:106
msgid "product"
msgstr ""
-#: apps/treasury/models.py:106
+#: apps/treasury/models.py:107
msgid "products"
msgstr ""
-#: apps/treasury/models.py:123
+#: apps/treasury/models.py:124
msgid "remittance type"
msgstr ""
-#: apps/treasury/models.py:124
+#: apps/treasury/models.py:125
msgid "remittance types"
msgstr ""
-#: apps/treasury/models.py:134
+#: apps/treasury/models.py:135
msgid "Date"
msgstr ""
-#: apps/treasury/models.py:145
+#: apps/treasury/models.py:146
msgid "Comment"
msgstr ""
-#: apps/treasury/models.py:150
+#: apps/treasury/models.py:151
msgid "Closed"
msgstr ""
-#: apps/treasury/models.py:154
+#: apps/treasury/models.py:155
msgid "remittance"
msgstr ""
-#: apps/treasury/models.py:155
+#: apps/treasury/models.py:156
msgid "remittances"
msgstr ""
-#: apps/treasury/models.py:187
+#: apps/treasury/models.py:188
msgid "Remittance #{:d}: {}"
msgstr ""
-#: apps/treasury/models.py:206 apps/treasury/tables.py:76
+#: apps/treasury/models.py:207 apps/treasury/tables.py:76
#: apps/treasury/tables.py:84 templates/treasury/invoice_list.html:13
#: templates/treasury/remittance_list.html:13
#: templates/treasury/sogecredit_list.html:13
msgid "Remittance"
msgstr ""
-#: apps/treasury/models.py:210
+#: apps/treasury/models.py:211
msgid "special transaction proxy"
msgstr ""
-#: apps/treasury/models.py:211
+#: apps/treasury/models.py:212
msgid "special transaction proxies"
msgstr ""
-#: apps/treasury/models.py:233
+#: apps/treasury/models.py:234
msgid "credit transaction"
msgstr ""
-#: apps/treasury/models.py:296
+#: apps/treasury/models.py:297
msgid ""
"This user doesn't have enough money to pay the memberships with its note. "
"Please ask her/him to credit the note before invalidating this credit."
msgstr ""
-#: apps/treasury/models.py:308 templates/treasury/sogecredit_detail.html:10
+#: apps/treasury/models.py:309 templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale"
msgstr ""
-#: apps/treasury/models.py:309
+#: apps/treasury/models.py:310
msgid "Credits from the Société générale"
msgstr ""
@@ -1337,7 +1338,7 @@ msgid "Manage credits from the Société générale"
msgstr ""
#: apps/wei/apps.py:10 apps/wei/models.py:48 apps/wei/models.py:49
-#: apps/wei/models.py:60 apps/wei/models.py:166 templates/base.html:131
+#: apps/wei/models.py:60 apps/wei/models.py:166 templates/base.html:124
msgid "WEI"
msgstr ""
@@ -1577,89 +1578,89 @@ msgstr ""
msgid "View registrations to the WEI"
msgstr ""
-#: apps/wei/views.py:253
+#: apps/wei/views.py:251
msgid "Find WEI Registration"
msgstr ""
-#: apps/wei/views.py:264
+#: apps/wei/views.py:262
msgid "Update the WEI"
msgstr ""
-#: apps/wei/views.py:285
+#: apps/wei/views.py:283
msgid "Create new bus"
msgstr ""
-#: apps/wei/views.py:316
+#: apps/wei/views.py:314
msgid "Update bus"
msgstr ""
-#: apps/wei/views.py:346
+#: apps/wei/views.py:344
msgid "Manage bus"
msgstr ""
-#: apps/wei/views.py:373
+#: apps/wei/views.py:371
msgid "Create new team"
msgstr ""
-#: apps/wei/views.py:405
+#: apps/wei/views.py:403
msgid "Update team"
msgstr ""
-#: apps/wei/views.py:436
+#: apps/wei/views.py:434
msgid "Manage WEI team"
msgstr ""
-#: apps/wei/views.py:458
+#: apps/wei/views.py:456
msgid "Register first year student to the WEI"
msgstr ""
-#: apps/wei/views.py:470 templates/wei/weiclub_info.html:62
+#: apps/wei/views.py:468 templates/wei/weiclub_info.html:62
msgid "Register 1A"
msgstr ""
-#: apps/wei/views.py:491 apps/wei/views.py:561
+#: apps/wei/views.py:489 apps/wei/views.py:559
msgid "This user is already registered to this WEI."
msgstr ""
-#: apps/wei/views.py:496
+#: apps/wei/views.py:494
msgid ""
"This user can't be in her/his first year since he/she has already participed "
"to a WEI."
msgstr ""
-#: apps/wei/views.py:513
+#: apps/wei/views.py:511
msgid "Register old student to the WEI"
msgstr ""
-#: apps/wei/views.py:525 templates/wei/weiclub_info.html:65
+#: apps/wei/views.py:523 templates/wei/weiclub_info.html:65
msgid "Register 2A+"
msgstr ""
-#: apps/wei/views.py:543 apps/wei/views.py:631
+#: apps/wei/views.py:541 apps/wei/views.py:629
msgid "You already opened an account in the Société générale."
msgstr ""
-#: apps/wei/views.py:591
+#: apps/wei/views.py:589
msgid "Update WEI Registration"
msgstr ""
-#: apps/wei/views.py:681
+#: apps/wei/views.py:679
msgid "Delete WEI registration"
msgstr ""
-#: apps/wei/views.py:692
+#: apps/wei/views.py:690
msgid "You don't have the right to delete this WEI registration."
msgstr ""
-#: apps/wei/views.py:711
+#: apps/wei/views.py:709
msgid "Validate WEI registration"
msgstr ""
-#: apps/wei/views.py:792
+#: apps/wei/views.py:790
msgid "This user didn't give her/his caution check."
msgstr ""
-#: apps/wei/views.py:829 apps/wei/views.py:882 apps/wei/views.py:892
+#: apps/wei/views.py:827 apps/wei/views.py:880 apps/wei/views.py:890
#: templates/wei/survey.html:12 templates/wei/survey_closed.html:12
#: templates/wei/survey_end.html:12
msgid "Survey WEI"
@@ -1790,15 +1791,11 @@ msgstr ""
msgid "Clubs"
msgstr ""
-#: templates/base.html:115
-msgid "Registrations"
-msgstr ""
-
-#: templates/base.html:141
+#: templates/base.html:134
msgid "Admin"
msgstr ""
-#: templates/base.html:180
+#: templates/base.html:173
msgid ""
"Your e-mail address is not validated. Please check your mail inbox and click "
"on the validation link."
@@ -1936,10 +1933,14 @@ msgstr ""
msgid "Save Changes"
msgstr ""
-#: templates/member/user_list.html:16
+#: templates/member/user_list.html:17
msgid "There is no user with this pattern."
msgstr ""
+#: templates/member/user_list.html:26
+msgid "Registrations"
+msgstr ""
+
#: templates/note/conso_form.html:28
msgid "Consum"
msgstr ""
@@ -2073,6 +2074,21 @@ msgid ""
"activate your account."
msgstr ""
+#: templates/registration/email_validation_email_sent.html:4
+msgid "Account activation"
+msgstr ""
+
+#: templates/registration/email_validation_email_sent.html:7
+msgid ""
+"An email has been sent. Please click on the link to activate your account."
+msgstr ""
+
+#: templates/registration/email_validation_email_sent.html:11
+msgid ""
+"You must also go to the Kfet to pay your membership. The WEI registration "
+"includes the BDE membership."
+msgstr ""
+
#: templates/registration/future_profile_detail.html:49
#: templates/wei/weiregistration_confirm_delete.html:12
msgid "Delete registration"
@@ -2128,32 +2144,39 @@ msgstr ""
msgid "Forgotten your password or username?"
msgstr ""
+#: templates/registration/mails/email_validation_email.html:12
#: templates/registration/mails/email_validation_email.txt:3
msgid "Hi"
msgstr ""
+#: templates/registration/mails/email_validation_email.html:16
#: templates/registration/mails/email_validation_email.txt:5
msgid ""
"You recently registered on the Note Kfet. Please click on the link below to "
"confirm your registration."
msgstr ""
+#: templates/registration/mails/email_validation_email.html:26
#: templates/registration/mails/email_validation_email.txt:9
msgid ""
"This link is only valid for a couple of days, after that you will need to "
"contact us to validate your email."
msgstr ""
+#: templates/registration/mails/email_validation_email.html:30
#: templates/registration/mails/email_validation_email.txt:11
msgid ""
"After that, you'll have to wait that someone validates your account before "
-"you can log in. You will need to pay your membership in the Kfet."
+"you can log in. You will need to pay your membership in the Kfet. Note that "
+"the WEI registration includes the Kfet membership."
msgstr ""
+#: templates/registration/mails/email_validation_email.html:34
#: templates/registration/mails/email_validation_email.txt:13
msgid "Thanks"
msgstr ""
+#: templates/registration/mails/email_validation_email.html:39
#: templates/registration/mails/email_validation_email.txt:15
msgid "The Note Kfet team."
msgstr ""
diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index 9df44fec..511b3efb 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-01 15:06+0200\n"
+"POT-Creation-Date: 2020-08-03 12:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,36 +18,36 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: apps/activity/apps.py:10 apps/activity/models.py:102
-#: apps/activity/models.py:117
+#: apps/activity/apps.py:10 apps/activity/models.py:106
+#: apps/activity/models.py:121
msgid "activity"
msgstr "activité"
-#: apps/activity/forms.py:45 apps/activity/models.py:213
+#: apps/activity/forms.py:45 apps/activity/models.py:217
msgid "You can't invite someone once the activity is started."
msgstr ""
"Vous ne pouvez pas inviter quelqu'un une fois que l'activité a démarré."
-#: apps/activity/forms.py:48 apps/activity/models.py:216
+#: apps/activity/forms.py:48 apps/activity/models.py:220
msgid "This activity is not validated yet."
msgstr "Cette activité n'est pas encore validée."
-#: apps/activity/forms.py:58 apps/activity/models.py:224
+#: apps/activity/forms.py:58 apps/activity/models.py:228
msgid "This person has been already invited 5 times this year."
msgstr "Cette personne a déjà été invitée 5 fois cette année."
-#: apps/activity/forms.py:62 apps/activity/models.py:228
+#: apps/activity/forms.py:62 apps/activity/models.py:232
msgid "This person is already invited."
msgstr "Cette personne est déjà invitée."
-#: apps/activity/forms.py:66 apps/activity/models.py:232
+#: apps/activity/forms.py:66 apps/activity/models.py:236
msgid "You can't invite more than 3 people to this activity."
msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
-#: apps/activity/models.py:23 apps/activity/models.py:48
-#: apps/member/models.py:151 apps/note/models/notes.py:188
+#: apps/activity/models.py:24 apps/activity/models.py:49
+#: apps/member/models.py:158 apps/note/models/notes.py:212
#: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45
-#: apps/note/models/transactions.py:263 apps/permission/models.py:332
+#: apps/note/models/transactions.py:263 apps/permission/models.py:339
#: apps/wei/models.py:65 apps/wei/models.py:117
#: templates/member/club_info.html:13 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16
@@ -55,123 +55,123 @@ msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
msgid "name"
msgstr "nom"
-#: apps/activity/models.py:27 templates/activity/activity_detail.html:39
+#: apps/activity/models.py:28 templates/activity/activity_detail.html:39
msgid "can invite"
msgstr "peut inviter"
-#: apps/activity/models.py:30 templates/activity/activity_detail.html:43
+#: apps/activity/models.py:31 templates/activity/activity_detail.html:43
msgid "guest entry fee"
msgstr "cotisation de l'entrée invité"
-#: apps/activity/models.py:34
+#: apps/activity/models.py:35
msgid "activity type"
msgstr "type d'activité"
-#: apps/activity/models.py:35
+#: apps/activity/models.py:36
msgid "activity types"
msgstr "types d'activité"
-#: apps/activity/models.py:53 apps/note/models/transactions.py:81
-#: apps/permission/models.py:113 apps/permission/models.py:192
+#: apps/activity/models.py:54 apps/note/models/transactions.py:81
+#: apps/permission/models.py:120 apps/permission/models.py:199
#: apps/wei/models.py:71 apps/wei/models.py:128
#: templates/activity/activity_detail.html:16
msgid "description"
msgstr "description"
-#: apps/activity/models.py:60 apps/note/models/notes.py:164
-#: apps/note/models/transactions.py:66 apps/permission/models.py:167
+#: apps/activity/models.py:61 apps/note/models/notes.py:188
+#: apps/note/models/transactions.py:66 apps/permission/models.py:174
#: templates/activity/activity_detail.html:19
msgid "type"
msgstr "type"
-#: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:259
-#: apps/note/models/notes.py:117 apps/treasury/models.py:221
+#: apps/activity/models.py:67 apps/logs/models.py:22 apps/member/models.py:266
+#: apps/note/models/notes.py:126 apps/treasury/models.py:222
#: apps/wei/models.py:159 templates/treasury/sogecredit_detail.html:14
#: templates/wei/survey.html:16
msgid "user"
msgstr "utilisateur"
-#: apps/activity/models.py:73 templates/activity/activity_detail.html:33
+#: apps/activity/models.py:74 templates/activity/activity_detail.html:33
msgid "organizer"
msgstr "organisateur"
-#: apps/activity/models.py:80 templates/activity/activity_detail.html:36
+#: apps/activity/models.py:81 templates/activity/activity_detail.html:36
msgid "attendees club"
msgstr "club attendu"
-#: apps/activity/models.py:84 templates/activity/activity_detail.html:22
+#: apps/activity/models.py:85 templates/activity/activity_detail.html:22
msgid "start date"
msgstr "date de début"
-#: apps/activity/models.py:88 templates/activity/activity_detail.html:25
+#: apps/activity/models.py:89 templates/activity/activity_detail.html:25
msgid "end date"
msgstr "date de fin"
-#: apps/activity/models.py:93 apps/note/models/transactions.py:146
+#: apps/activity/models.py:94 apps/note/models/transactions.py:146
#: templates/activity/activity_detail.html:47
msgid "valid"
msgstr "valide"
-#: apps/activity/models.py:98 templates/activity/activity_detail.html:61
+#: apps/activity/models.py:99 templates/activity/activity_detail.html:61
msgid "open"
msgstr "ouvrir"
-#: apps/activity/models.py:103
+#: apps/activity/models.py:107
msgid "activities"
msgstr "activités"
-#: apps/activity/models.py:122
+#: apps/activity/models.py:126
msgid "entry time"
msgstr "heure d'entrée"
-#: apps/activity/models.py:128 apps/note/apps.py:14
-#: apps/note/models/notes.py:58
+#: apps/activity/models.py:132 apps/note/apps.py:14
+#: apps/note/models/notes.py:60
msgid "note"
msgstr "note"
-#: apps/activity/models.py:139 templates/activity/activity_entry.html:38
+#: apps/activity/models.py:143 templates/activity/activity_entry.html:38
msgid "entry"
msgstr "entrée"
-#: apps/activity/models.py:140 templates/activity/activity_entry.html:38
+#: apps/activity/models.py:144 templates/activity/activity_entry.html:38
msgid "entries"
msgstr "entrées"
-#: apps/activity/models.py:146
+#: apps/activity/models.py:150
msgid "Already entered on "
msgstr "Déjà rentré le "
-#: apps/activity/models.py:146 apps/activity/tables.py:54
+#: apps/activity/models.py:150 apps/activity/tables.py:54
msgid "{:%Y-%m-%d %H:%M:%S}"
msgstr "{:%d/%m/%Y %H:%M:%S}"
-#: apps/activity/models.py:154
+#: apps/activity/models.py:158
msgid "The balance is negative."
msgstr "La note est en négatif."
-#: apps/activity/models.py:184
+#: apps/activity/models.py:188
msgid "last name"
msgstr "nom de famille"
-#: apps/activity/models.py:189 templates/member/profile_info.html:14
+#: apps/activity/models.py:193 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16
#: templates/wei/weimembership_form.html:18
msgid "first name"
msgstr "prénom"
-#: apps/activity/models.py:196
+#: apps/activity/models.py:200
msgid "inviter"
msgstr "hôte"
-#: apps/activity/models.py:237
+#: apps/activity/models.py:244
msgid "guest"
msgstr "invité"
-#: apps/activity/models.py:238
+#: apps/activity/models.py:245
msgid "guests"
msgstr "invités"
-#: apps/activity/models.py:250
+#: apps/activity/models.py:257
msgid "Invitation"
msgstr "Invitation"
@@ -183,26 +183,26 @@ msgstr "Entré le "
msgid "remove"
msgstr "supprimer"
-#: apps/activity/tables.py:75 apps/treasury/models.py:140
+#: apps/activity/tables.py:75 apps/treasury/models.py:141
msgid "Type"
msgstr "Type"
#: apps/activity/tables.py:77 apps/member/forms.py:102
-#: apps/registration/forms.py:64 apps/treasury/forms.py:120
+#: apps/registration/forms.py:70 apps/treasury/forms.py:120
msgid "Last name"
msgstr "Nom de famille"
#: apps/activity/tables.py:79 apps/member/forms.py:107
-#: apps/registration/forms.py:69 apps/treasury/forms.py:122
+#: apps/registration/forms.py:75 apps/treasury/forms.py:122
#: templates/note/transaction_form.html:129
msgid "First name"
msgstr "Prénom"
-#: apps/activity/tables.py:81 apps/note/models/notes.py:67
+#: apps/activity/tables.py:81 apps/note/models/notes.py:69
msgid "Note"
msgstr "Note"
-#: apps/activity/tables.py:83 apps/member/tables.py:42
+#: apps/activity/tables.py:83 apps/member/tables.py:43
msgid "Balance"
msgstr "Solde du compte"
@@ -210,7 +210,7 @@ msgstr "Solde du compte"
msgid "Create new activity"
msgstr "Créer une nouvelle activité"
-#: apps/activity/views.py:41 templates/base.html:121
+#: apps/activity/views.py:41 templates/base.html:114
msgid "Activities"
msgstr "Activités"
@@ -238,75 +238,75 @@ msgstr "API"
msgid "Logs"
msgstr "Logs"
-#: apps/logs/models.py:27
+#: apps/logs/models.py:28
msgid "IP Address"
msgstr "Adresse IP"
-#: apps/logs/models.py:35 apps/permission/models.py:137
+#: apps/logs/models.py:36 apps/permission/models.py:144
msgid "model"
msgstr "Modèle"
-#: apps/logs/models.py:42
+#: apps/logs/models.py:43
msgid "identifier"
msgstr "Identifiant"
-#: apps/logs/models.py:47
+#: apps/logs/models.py:48
msgid "previous data"
msgstr "Données précédentes"
-#: apps/logs/models.py:52
+#: apps/logs/models.py:53
msgid "new data"
msgstr "Nouvelles données"
-#: apps/logs/models.py:60
+#: apps/logs/models.py:61
msgid "create"
msgstr "Créer"
-#: apps/logs/models.py:61 apps/note/tables.py:161
+#: apps/logs/models.py:62 apps/note/tables.py:160
#: templates/activity/activity_detail.html:67
msgid "edit"
msgstr "Modifier"
-#: apps/logs/models.py:62 apps/note/tables.py:138 apps/note/tables.py:166
-#: apps/permission/models.py:130 apps/wei/tables.py:65
+#: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165
+#: apps/permission/models.py:137 apps/wei/tables.py:65
msgid "delete"
msgstr "Supprimer"
-#: apps/logs/models.py:65
+#: apps/logs/models.py:66
msgid "action"
msgstr "Action"
-#: apps/logs/models.py:73
+#: apps/logs/models.py:74
msgid "timestamp"
msgstr "Date"
-#: apps/logs/models.py:77
+#: apps/logs/models.py:78
msgid "Logs cannot be destroyed."
msgstr "Les logs ne peuvent pas être détruits."
-#: apps/logs/models.py:80
+#: apps/logs/models.py:81
msgid "changelog"
msgstr "journal de modification"
-#: apps/logs/models.py:81
+#: apps/logs/models.py:82
msgid "changelogs"
msgstr "journaux de modifications"
-#: apps/member/admin.py:53 apps/member/models.py:178
+#: apps/member/admin.py:52 apps/member/models.py:185
#: templates/member/club_info.html:41
msgid "membership fee (paid students)"
msgstr "cotisation pour adhérer (normalien élève)"
-#: apps/member/admin.py:54 apps/member/models.py:183
+#: apps/member/admin.py:53 apps/member/models.py:190
#: templates/member/club_info.html:44
msgid "membership fee (unpaid students)"
msgstr "cotisation pour adhérer (normalien étudiant)"
-#: apps/member/admin.py:68 apps/member/models.py:270
+#: apps/member/admin.py:67 apps/member/models.py:277
msgid "roles"
msgstr "rôles"
-#: apps/member/admin.py:69 apps/member/models.py:284
+#: apps/member/admin.py:68 apps/member/models.py:291
msgid "fee"
msgstr "cotisation"
@@ -315,22 +315,23 @@ msgid "member"
msgstr "adhérent"
#: apps/member/forms.py:58 apps/member/views.py:82
+#: apps/registration/forms.py:28
msgid "An alias with a similar name already exists."
msgstr "Un alias avec un nom similaire existe déjà."
-#: apps/member/forms.py:81 apps/registration/forms.py:44
+#: apps/member/forms.py:81 apps/registration/forms.py:50
msgid "Inscription paid by Société Générale"
msgstr "Inscription payée par la Société générale"
-#: apps/member/forms.py:83 apps/registration/forms.py:46
+#: apps/member/forms.py:83 apps/registration/forms.py:52
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."
-#: apps/member/forms.py:88 apps/registration/forms.py:51
+#: apps/member/forms.py:88 apps/registration/forms.py:57
msgid "Credit type"
msgstr "Type de rechargement"
-#: apps/member/forms.py:89 apps/registration/forms.py:52
+#: apps/member/forms.py:89 apps/registration/forms.py:58
msgid "No credit"
msgstr "Pas de rechargement"
@@ -338,20 +339,20 @@ msgstr "Pas de rechargement"
msgid "You can credit the note of the user."
msgstr "Vous pouvez créditer la note de l'utisateur avant l'adhésion."
-#: apps/member/forms.py:95 apps/registration/forms.py:57
+#: apps/member/forms.py:95 apps/registration/forms.py:63
msgid "Credit amount"
msgstr "Montant à créditer"
-#: apps/member/forms.py:112 apps/registration/forms.py:74
+#: apps/member/forms.py:112 apps/registration/forms.py:80
#: apps/treasury/forms.py:124 templates/note/transaction_form.html:135
msgid "Bank"
msgstr "Banque"
-#: apps/member/forms.py:138
+#: apps/member/forms.py:139
msgid "User"
msgstr "Utilisateur"
-#: apps/member/forms.py:152
+#: apps/member/forms.py:153
msgid "Roles"
msgstr "Rôles"
@@ -479,47 +480,47 @@ msgstr "profil utilisateur"
msgid "Activate your Note Kfet account"
msgstr "Activez votre compte Note Kfet"
-#: apps/member/models.py:156 templates/member/club_info.html:57
+#: apps/member/models.py:163 templates/member/club_info.html:57
#: templates/registration/future_profile_detail.html:22
#: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24
msgid "email"
msgstr "courriel"
-#: apps/member/models.py:163
+#: apps/member/models.py:170
msgid "parent club"
msgstr "club parent"
-#: apps/member/models.py:172
+#: apps/member/models.py:179
msgid "require memberships"
msgstr "nécessite des adhésions"
-#: apps/member/models.py:173
+#: apps/member/models.py:180
msgid "Uncheck if this club don't require memberships."
msgstr "Décochez si ce club n'utilise pas d'adhésions."
-#: apps/member/models.py:189 templates/member/club_info.html:33
+#: apps/member/models.py:196 templates/member/club_info.html:33
msgid "membership duration"
msgstr "durée de l'adhésion"
-#: apps/member/models.py:190
+#: apps/member/models.py:197
msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr "La durée maximale (en jours) d'une adhésion (NULL = infinie)."
-#: apps/member/models.py:197 templates/member/club_info.html:23
+#: apps/member/models.py:204 templates/member/club_info.html:23
msgid "membership start"
msgstr "début de l'adhésion"
-#: apps/member/models.py:198
+#: apps/member/models.py:205
msgid "How long after January 1st the members can renew their membership."
msgstr ""
"Combien de temps après le 1er Janvier les adhérents peuvent renouveler leur "
"adhésion."
-#: apps/member/models.py:205 templates/member/club_info.html:28
+#: apps/member/models.py:212 templates/member/club_info.html:28
msgid "membership end"
msgstr "fin de l'adhésion"
-#: apps/member/models.py:206
+#: apps/member/models.py:213
msgid ""
"How long the membership can last after January 1st of the next year after "
"members can renew their membership."
@@ -527,50 +528,50 @@ msgstr ""
"Combien de temps l'adhésion peut durer après le 1er Janvier de l'année "
"suivante avant que les adhérents peuvent renouveler leur adhésion."
-#: apps/member/models.py:240 apps/member/models.py:265
-#: apps/note/models/notes.py:139
+#: apps/member/models.py:247 apps/member/models.py:272
+#: apps/note/models/notes.py:163
msgid "club"
msgstr "club"
-#: apps/member/models.py:241
+#: apps/member/models.py:248
msgid "clubs"
msgstr "clubs"
-#: apps/member/models.py:275
+#: apps/member/models.py:282
msgid "membership starts on"
msgstr "l'adhésion commence le"
-#: apps/member/models.py:279
+#: apps/member/models.py:286
msgid "membership ends on"
msgstr "l'adhésion finit le"
-#: apps/member/models.py:303 apps/member/views.py:535 apps/wei/views.py:797
+#: apps/member/models.py:310 apps/member/views.py:535 apps/wei/views.py:795
msgid "User is not a member of the parent club"
msgstr "L'utilisateur n'est pas membre du club parent"
-#: apps/member/models.py:310
+#: apps/member/models.py:317
#, python-brace-format
msgid "The role {role} does not apply to the club {club}."
msgstr "Le rôle {role} ne s'applique pas au club {club}."
-#: apps/member/models.py:321 apps/member/views.py:544
+#: apps/member/models.py:328 apps/member/views.py:544
msgid "User is already a member of the club"
msgstr "L'utilisateur est déjà membre du club"
-#: apps/member/models.py:372
+#: apps/member/models.py:379
#, python-brace-format
msgid "Membership of {user} for the club {club}"
msgstr "Adhésion de {user} pour le club {club}"
-#: apps/member/models.py:375
+#: apps/member/models.py:382
msgid "membership"
msgstr "adhésion"
-#: apps/member/models.py:376
+#: apps/member/models.py:383
msgid "memberships"
msgstr "adhésions"
-#: apps/member/tables.py:113
+#: apps/member/tables.py:114
msgid "Renew"
msgstr "Renouveler"
@@ -624,7 +625,7 @@ msgstr "Modifier le club"
msgid "Add new member to the club"
msgstr "Ajouter un nouveau membre au club"
-#: apps/member/views.py:530 apps/wei/views.py:788
+#: apps/member/views.py:530 apps/wei/views.py:786
msgid ""
"This user don't have enough money to join this club, and can't have a "
"negative balance."
@@ -641,8 +642,8 @@ msgid "The membership must begin before {:%m-%d-%Y}."
msgstr "L'adhésion doit commencer avant le {:%d/%m/%Y}."
#: apps/member/views.py:570 apps/member/views.py:572 apps/member/views.py:574
-#: apps/registration/views.py:292 apps/registration/views.py:294
-#: apps/registration/views.py:296
+#: apps/registration/views.py:290 apps/registration/views.py:292
+#: apps/registration/views.py:294
msgid "This field is required."
msgstr "Ce champ est requis."
@@ -654,16 +655,16 @@ msgstr "Gérer les rôles d'un utilisateur dans le club"
msgid "Members of the club"
msgstr "Membres du club"
-#: apps/note/admin.py:134 apps/note/models/transactions.py:106
+#: apps/note/admin.py:133 apps/note/models/transactions.py:106
msgid "source"
msgstr "source"
-#: apps/note/admin.py:142 apps/note/admin.py:192
+#: apps/note/admin.py:141 apps/note/admin.py:191
#: apps/note/models/transactions.py:55 apps/note/models/transactions.py:119
msgid "destination"
msgstr "destination"
-#: apps/note/admin.py:197 apps/note/models/transactions.py:59
+#: apps/note/admin.py:196 apps/note/models/transactions.py:59
#: apps/note/models/transactions.py:137
msgid "amount"
msgstr "montant"
@@ -676,105 +677,105 @@ msgstr "Choisissez une image"
msgid "Maximal size: 2MB"
msgstr "Taille maximale : 2 Mo"
-#: apps/note/models/notes.py:27
+#: apps/note/models/notes.py:29
msgid "account balance"
msgstr "solde du compte"
-#: apps/note/models/notes.py:28
+#: apps/note/models/notes.py:30
msgid "in centimes, money credited for this instance"
msgstr "en centimes, argent crédité pour cette instance"
-#: apps/note/models/notes.py:32
+#: apps/note/models/notes.py:34
msgid "last negative date"
msgstr "dernier date de négatif"
-#: apps/note/models/notes.py:33
+#: apps/note/models/notes.py:35
msgid "last time the balance was negative"
msgstr "dernier instant où la note était en négatif"
-#: apps/note/models/notes.py:38
+#: apps/note/models/notes.py:40
msgid "active"
msgstr "actif"
-#: apps/note/models/notes.py:41
+#: apps/note/models/notes.py:43
msgid ""
"Designates whether this note should be treated as active. Unselect this "
"instead of deleting notes."
msgstr ""
"Indique si la note est active. Désactiver cela plutôt que supprimer la note."
-#: apps/note/models/notes.py:45
+#: apps/note/models/notes.py:47
msgid "display image"
msgstr "image affichée"
-#: apps/note/models/notes.py:53 apps/note/models/transactions.py:129
+#: apps/note/models/notes.py:55 apps/note/models/transactions.py:129
msgid "created at"
msgstr "créée le"
-#: apps/note/models/notes.py:59
+#: apps/note/models/notes.py:61
msgid "notes"
msgstr "notes"
-#: apps/note/models/notes.py:77 apps/note/models/notes.py:101
+#: apps/note/models/notes.py:86 apps/note/models/notes.py:110
msgid "This alias is already taken."
msgstr "Cet alias est déjà pris."
-#: apps/note/models/notes.py:121
+#: apps/note/models/notes.py:130
msgid "one's note"
msgstr "note d'un utilisateur"
-#: apps/note/models/notes.py:122
+#: apps/note/models/notes.py:131
msgid "users note"
msgstr "notes des utilisateurs"
-#: apps/note/models/notes.py:128
+#: apps/note/models/notes.py:137
#, python-format
msgid "%(user)s's note"
msgstr "Note de %(user)s"
-#: apps/note/models/notes.py:143
+#: apps/note/models/notes.py:167
msgid "club note"
msgstr "note d'un club"
-#: apps/note/models/notes.py:144
+#: apps/note/models/notes.py:168
msgid "clubs notes"
msgstr "notes des clubs"
-#: apps/note/models/notes.py:150
+#: apps/note/models/notes.py:174
#, python-format
msgid "Note of %(club)s club"
msgstr "Note du club %(club)s"
-#: apps/note/models/notes.py:170
+#: apps/note/models/notes.py:194
msgid "special note"
msgstr "note spéciale"
-#: apps/note/models/notes.py:171
+#: apps/note/models/notes.py:195
msgid "special notes"
msgstr "notes spéciales"
-#: apps/note/models/notes.py:194
+#: apps/note/models/notes.py:218
msgid "Invalid alias"
msgstr "Alias invalide"
-#: apps/note/models/notes.py:210
+#: apps/note/models/notes.py:234
msgid "alias"
msgstr "alias"
-#: apps/note/models/notes.py:211 templates/member/club_info.html:54
+#: apps/note/models/notes.py:235 templates/member/club_info.html:54
#: templates/member/profile_info.html:38 templates/wei/weiclub_info.html:48
msgid "aliases"
msgstr "alias"
-#: apps/note/models/notes.py:233
+#: apps/note/models/notes.py:257
msgid "Alias is too long."
msgstr "L'alias est trop long."
-#: apps/note/models/notes.py:238
+#: apps/note/models/notes.py:262
msgid "An alias with a similar name already exists: {} "
msgstr "Un alias avec un nom similaire existe déjà : {}"
-#: apps/note/models/notes.py:251
+#: apps/note/models/notes.py:275
msgid "You can't delete your main alias."
msgstr "Vous ne pouvez pas supprimer votre alias principal."
@@ -823,7 +824,7 @@ msgstr "quantité"
msgid "reason"
msgstr "raison"
-#: apps/note/models/transactions.py:151 apps/note/tables.py:113
+#: apps/note/models/transactions.py:151 apps/note/tables.py:112
msgid "invalidity reason"
msgstr "Motif d'invalidité"
@@ -885,7 +886,7 @@ msgstr ""
msgid "membership transaction"
msgstr "Transaction d'adhésion"
-#: apps/note/models/transactions.py:308 apps/treasury/models.py:227
+#: apps/note/models/transactions.py:308 apps/treasury/models.py:228
msgid "membership transactions"
msgstr "Transactions d'adhésion"
@@ -897,17 +898,17 @@ msgstr "Cliquez pour dévalider"
msgid "Click to validate"
msgstr "Cliquez pour valider"
-#: apps/note/tables.py:111
+#: apps/note/tables.py:110
msgid "No reason specified"
msgstr "Pas de motif spécifié"
-#: apps/note/tables.py:140 apps/note/tables.py:168 apps/wei/tables.py:66
+#: apps/note/tables.py:139 apps/note/tables.py:167 apps/wei/tables.py:66
#: templates/treasury/sogecredit_detail.html:59
#: templates/wei/weiregistration_confirm_delete.html:32
msgid "Delete"
msgstr "Supprimer"
-#: apps/note/tables.py:163 apps/wei/tables.py:42 apps/wei/tables.py:43
+#: apps/note/tables.py:162 apps/wei/tables.py:42 apps/wei/tables.py:43
#: templates/member/club_info.html:67 templates/note/conso_form.html:128
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68
@@ -918,69 +919,69 @@ msgstr "Éditer"
msgid "Transfer money"
msgstr "Transférer de l'argent"
-#: apps/note/views.py:67
+#: apps/note/views.py:69
msgid "Create new button"
msgstr "Créer un nouveau bouton"
-#: apps/note/views.py:76
+#: apps/note/views.py:78
msgid "Search button"
msgstr "Chercher un bouton"
-#: apps/note/views.py:99
+#: apps/note/views.py:101
msgid "Update button"
msgstr "Modifier le bouton"
-#: apps/note/views.py:136 templates/base.html:94
+#: apps/note/views.py:138 templates/base.html:94
msgid "Consumptions"
msgstr "Consommations"
-#: apps/permission/models.py:92
+#: apps/permission/models.py:99
#, python-brace-format
msgid "Can {type} {model}.{field} in {query}"
msgstr "Can {type} {model}.{field} in {query}"
-#: apps/permission/models.py:94
+#: apps/permission/models.py:101
#, python-brace-format
msgid "Can {type} {model} in {query}"
msgstr "Can {type} {model} in {query}"
-#: apps/permission/models.py:107
+#: apps/permission/models.py:114
msgid "rank"
msgstr "Rang"
-#: apps/permission/models.py:120
+#: apps/permission/models.py:127
msgid "permission mask"
msgstr "masque de permissions"
-#: apps/permission/models.py:121
+#: apps/permission/models.py:128
msgid "permission masks"
msgstr "masques de permissions"
-#: apps/permission/models.py:127
+#: apps/permission/models.py:134
msgid "add"
msgstr "ajouter"
-#: apps/permission/models.py:128
+#: apps/permission/models.py:135
msgid "view"
msgstr "voir"
-#: apps/permission/models.py:129
+#: apps/permission/models.py:136
msgid "change"
msgstr "modifier"
-#: apps/permission/models.py:161
+#: apps/permission/models.py:168
msgid "query"
msgstr "requête"
-#: apps/permission/models.py:174
+#: apps/permission/models.py:181
msgid "mask"
msgstr "masque"
-#: apps/permission/models.py:180
+#: apps/permission/models.py:187
msgid "field"
msgstr "champ"
-#: apps/permission/models.py:185
+#: apps/permission/models.py:192
msgid ""
"Tells if the permission should be granted even if the membership of the user "
"is expired."
@@ -988,29 +989,29 @@ msgstr ""
"Indique si la permission doit être attribuée même si l'adhésion de "
"l'utilisateur est expirée."
-#: apps/permission/models.py:186 templates/permission/all_rights.html:26
+#: apps/permission/models.py:193 templates/permission/all_rights.html:26
msgid "permanent"
msgstr "permanent"
-#: apps/permission/models.py:197
+#: apps/permission/models.py:204
msgid "permission"
msgstr "permission"
-#: apps/permission/models.py:198 apps/permission/models.py:337
+#: apps/permission/models.py:205 apps/permission/models.py:344
msgid "permissions"
msgstr "permissions"
-#: apps/permission/models.py:203
+#: apps/permission/models.py:210
msgid "Specifying field applies only to view and change permission types."
msgstr ""
"Spécifie le champ concerné, ne fonctionne que pour les permissions view et "
"change."
-#: apps/permission/models.py:342
+#: apps/permission/models.py:349
msgid "for club"
msgstr "s'applique au club"
-#: apps/permission/models.py:352 apps/permission/models.py:353
+#: apps/permission/models.py:359 apps/permission/models.py:360
msgid "role permissions"
msgstr "Permissions par rôles"
@@ -1041,7 +1042,7 @@ msgstr ""
"Vous n'avez pas la permission de supprimer cette instance du modèle "
"{app_label}.{model_name}."
-#: apps/permission/views.py:44 templates/base.html:136
+#: apps/permission/views.py:44 templates/base.html:129
msgid "Rights"
msgstr "Droits"
@@ -1053,11 +1054,11 @@ msgstr "Tous les droits"
msgid "registration"
msgstr "inscription"
-#: apps/registration/forms.py:32
+#: apps/registration/forms.py:38
msgid "Register to the WEI"
msgstr "S'inscrire au WEI"
-#: apps/registration/forms.py:34
+#: apps/registration/forms.py:40
msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you "
"will be able to register later, after validating your account in the Kfet."
@@ -1066,11 +1067,11 @@ msgstr ""
"pourrez toujours vous inscrire plus tard, après avoir validé votre compte à "
"la Kfet."
-#: apps/registration/forms.py:79
+#: apps/registration/forms.py:85
msgid "Join BDE Club"
msgstr "Adhérer au club BDE"
-#: apps/registration/forms.py:86
+#: apps/registration/forms.py:92
msgid "Join Kfet Club"
msgstr "Adhérer au club Kfet"
@@ -1102,34 +1103,34 @@ msgstr "Renvoyer le lien de validation"
msgid "Pre-registered users list"
msgstr "Liste des utilisateurs en attente d'inscription"
-#: apps/registration/views.py:190
+#: apps/registration/views.py:188
msgid "Unregistered users"
msgstr "Utilisateurs en attente d'inscription"
-#: apps/registration/views.py:203
+#: apps/registration/views.py:201
msgid "Registration detail"
msgstr "Détails de l'inscription"
-#: apps/registration/views.py:258
+#: apps/registration/views.py:256
msgid "You must join the BDE."
msgstr "Vous devez adhérer au BDE."
-#: apps/registration/views.py:280
+#: apps/registration/views.py:278
msgid "You must join BDE club before joining Kfet club."
msgstr "Vous devez adhérer au club BDE avant d'adhérer au club Kfet."
-#: apps/registration/views.py:285
+#: apps/registration/views.py:283
msgid ""
"The entered amount is not enough for the memberships, should be at least {}"
msgstr ""
"Le montant crédité est trop faible pour adhérer, il doit être au minimum de "
"{}"
-#: apps/registration/views.py:360
+#: apps/registration/views.py:358
msgid "Invalidate pre-registration"
msgstr "Invalider l'inscription"
-#: apps/treasury/apps.py:12 templates/base.html:126
+#: apps/treasury/apps.py:12 templates/base.html:119
msgid "Treasury"
msgstr "Trésorerie"
@@ -1163,118 +1164,118 @@ msgstr "Vous ne pouvez pas changer le type de la remise."
msgid "Amount"
msgstr "Montant"
-#: apps/treasury/models.py:20
+#: apps/treasury/models.py:21
msgid "Invoice identifier"
msgstr "Numéro de facture"
-#: apps/treasury/models.py:34
+#: apps/treasury/models.py:35
msgid "BDE"
msgstr "BDE"
-#: apps/treasury/models.py:39
+#: apps/treasury/models.py:40
msgid "Object"
msgstr "Objet"
-#: apps/treasury/models.py:43
+#: apps/treasury/models.py:44
msgid "Description"
msgstr "Description"
-#: apps/treasury/models.py:48 templates/note/transaction_form.html:123
+#: apps/treasury/models.py:49 templates/note/transaction_form.html:123
msgid "Name"
msgstr "Nom"
-#: apps/treasury/models.py:52
+#: apps/treasury/models.py:53
msgid "Address"
msgstr "Adresse"
-#: apps/treasury/models.py:57
+#: apps/treasury/models.py:58
msgid "Place"
msgstr "Lieu"
-#: apps/treasury/models.py:61
+#: apps/treasury/models.py:62
msgid "Acquitted"
msgstr "Acquittée"
-#: apps/treasury/models.py:65
+#: apps/treasury/models.py:66
msgid "invoice"
msgstr "facture"
-#: apps/treasury/models.py:66
+#: apps/treasury/models.py:67
msgid "invoices"
msgstr "factures"
-#: apps/treasury/models.py:81
+#: apps/treasury/models.py:82
msgid "Designation"
msgstr "Désignation"
-#: apps/treasury/models.py:85
+#: apps/treasury/models.py:86
msgid "Quantity"
msgstr "Quantité"
-#: apps/treasury/models.py:89
+#: apps/treasury/models.py:90
msgid "Unit price"
msgstr "Prix unitaire"
-#: apps/treasury/models.py:105
+#: apps/treasury/models.py:106
msgid "product"
msgstr "produit"
-#: apps/treasury/models.py:106
+#: apps/treasury/models.py:107
msgid "products"
msgstr "produits"
-#: apps/treasury/models.py:123
+#: apps/treasury/models.py:124
msgid "remittance type"
msgstr "type de remise"
-#: apps/treasury/models.py:124
+#: apps/treasury/models.py:125
msgid "remittance types"
msgstr "types de remises"
-#: apps/treasury/models.py:134
+#: apps/treasury/models.py:135
msgid "Date"
msgstr "Date"
-#: apps/treasury/models.py:145
+#: apps/treasury/models.py:146
msgid "Comment"
msgstr "Commentaire"
-#: apps/treasury/models.py:150
+#: apps/treasury/models.py:151
msgid "Closed"
msgstr "Fermée"
-#: apps/treasury/models.py:154
+#: apps/treasury/models.py:155
msgid "remittance"
msgstr "remise"
-#: apps/treasury/models.py:155
+#: apps/treasury/models.py:156
msgid "remittances"
msgstr "remises"
-#: apps/treasury/models.py:187
+#: apps/treasury/models.py:188
msgid "Remittance #{:d}: {}"
msgstr "Remise n°{:d} : {}"
-#: apps/treasury/models.py:206 apps/treasury/tables.py:76
+#: apps/treasury/models.py:207 apps/treasury/tables.py:76
#: apps/treasury/tables.py:84 templates/treasury/invoice_list.html:13
#: templates/treasury/remittance_list.html:13
#: templates/treasury/sogecredit_list.html:13
msgid "Remittance"
msgstr "Remise"
-#: apps/treasury/models.py:210
+#: apps/treasury/models.py:211
msgid "special transaction proxy"
msgstr "Proxy de transaction spéciale"
-#: apps/treasury/models.py:211
+#: apps/treasury/models.py:212
msgid "special transaction proxies"
msgstr "Proxys de transactions spéciales"
-#: apps/treasury/models.py:233
+#: apps/treasury/models.py:234
msgid "credit transaction"
msgstr "transaction de crédit"
-#: apps/treasury/models.py:296
+#: apps/treasury/models.py:297
msgid ""
"This user doesn't have enough money to pay the memberships with its note. "
"Please ask her/him to credit the note before invalidating this credit."
@@ -1282,11 +1283,11 @@ msgstr ""
"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."
-#: apps/treasury/models.py:308 templates/treasury/sogecredit_detail.html:10
+#: apps/treasury/models.py:309 templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale"
msgstr "Crédit de la Société générale"
-#: apps/treasury/models.py:309
+#: apps/treasury/models.py:310
msgid "Credits from the Société générale"
msgstr "Crédits de la Société générale"
@@ -1366,7 +1367,7 @@ msgid "Manage credits from the Société générale"
msgstr "Gérer les crédits de la Société générale"
#: apps/wei/apps.py:10 apps/wei/models.py:48 apps/wei/models.py:49
-#: apps/wei/models.py:60 apps/wei/models.py:166 templates/base.html:131
+#: apps/wei/models.py:60 apps/wei/models.py:166 templates/base.html:124
msgid "WEI"
msgstr "WEI"
@@ -1621,51 +1622,51 @@ msgstr "Trouver une adhésion au WEI"
msgid "View registrations to the WEI"
msgstr "Voir les inscriptions au WEI"
-#: apps/wei/views.py:253
+#: apps/wei/views.py:251
msgid "Find WEI Registration"
msgstr "Trouver une inscription au WEI"
-#: apps/wei/views.py:264
+#: apps/wei/views.py:262
msgid "Update the WEI"
msgstr "Modifier le WEI"
-#: apps/wei/views.py:285
+#: apps/wei/views.py:283
msgid "Create new bus"
msgstr "Ajouter un nouveau bus"
-#: apps/wei/views.py:316
+#: apps/wei/views.py:314
msgid "Update bus"
msgstr "Modifier le bus"
-#: apps/wei/views.py:346
+#: apps/wei/views.py:344
msgid "Manage bus"
msgstr "Gérer le bus"
-#: apps/wei/views.py:373
+#: apps/wei/views.py:371
msgid "Create new team"
msgstr "Créer une nouvelle équipe"
-#: apps/wei/views.py:405
+#: apps/wei/views.py:403
msgid "Update team"
msgstr "Modifier l'équipe"
-#: apps/wei/views.py:436
+#: apps/wei/views.py:434
msgid "Manage WEI team"
msgstr "Gérer l'équipe WEI"
-#: apps/wei/views.py:458
+#: apps/wei/views.py:456
msgid "Register first year student to the WEI"
msgstr "Inscrire un 1A au WEI"
-#: apps/wei/views.py:470 templates/wei/weiclub_info.html:62
+#: apps/wei/views.py:468 templates/wei/weiclub_info.html:62
msgid "Register 1A"
msgstr "Inscrire un 1A"
-#: apps/wei/views.py:491 apps/wei/views.py:561
+#: apps/wei/views.py:489 apps/wei/views.py:559
msgid "This user is already registered to this WEI."
msgstr "Cette personne est déjà inscrite au WEI."
-#: apps/wei/views.py:496
+#: apps/wei/views.py:494
msgid ""
"This user can't be in her/his first year since he/she has already participed "
"to a WEI."
@@ -1673,39 +1674,39 @@ msgstr ""
"Cet utilisateur ne peut pas être en première année puisqu'iel a déjà "
"participé à un WEI."
-#: apps/wei/views.py:513
+#: apps/wei/views.py:511
msgid "Register old student to the WEI"
msgstr "Inscrire un 2A+ au WEI"
-#: apps/wei/views.py:525 templates/wei/weiclub_info.html:65
+#: apps/wei/views.py:523 templates/wei/weiclub_info.html:65
msgid "Register 2A+"
msgstr "Inscrire un 2A+"
-#: apps/wei/views.py:543 apps/wei/views.py:631
+#: apps/wei/views.py:541 apps/wei/views.py:629
msgid "You already opened an account in the Société générale."
msgstr "Vous avez déjà ouvert un compte auprès de la société générale."
-#: apps/wei/views.py:591
+#: apps/wei/views.py:589
msgid "Update WEI Registration"
msgstr "Modifier l'inscription WEI"
-#: apps/wei/views.py:681
+#: apps/wei/views.py:679
msgid "Delete WEI registration"
msgstr "Supprimer l'inscription WEI"
-#: apps/wei/views.py:692
+#: apps/wei/views.py:690
msgid "You don't have the right to delete this WEI registration."
msgstr "Vous n'avez pas la permission de supprimer cette inscription au WEI."
-#: apps/wei/views.py:711
+#: apps/wei/views.py:709
msgid "Validate WEI registration"
msgstr "Valider l'inscription WEI"
-#: apps/wei/views.py:792
+#: apps/wei/views.py:790
msgid "This user didn't give her/his caution check."
msgstr "Cet utilisateur n'a pas donné son chèque de caution."
-#: apps/wei/views.py:829 apps/wei/views.py:882 apps/wei/views.py:892
+#: apps/wei/views.py:827 apps/wei/views.py:880 apps/wei/views.py:890
#: templates/wei/survey.html:12 templates/wei/survey_closed.html:12
#: templates/wei/survey_end.html:12
msgid "Survey WEI"
@@ -1845,15 +1846,11 @@ msgstr "Utilisateurs"
msgid "Clubs"
msgstr "Clubs"
-#: templates/base.html:115
-msgid "Registrations"
-msgstr "Inscriptions"
-
-#: templates/base.html:141
+#: templates/base.html:134
msgid "Admin"
msgstr "Admin"
-#: templates/base.html:180
+#: templates/base.html:173
msgid ""
"Your e-mail address is not validated. Please check your mail inbox and click "
"on the validation link."
@@ -1996,10 +1993,14 @@ msgstr "Voir mes adhésions"
msgid "Save Changes"
msgstr "Sauvegarder les changements"
-#: templates/member/user_list.html:16
+#: templates/member/user_list.html:17
msgid "There is no user with this pattern."
msgstr "Il n'y a pas d'utilisateur trouvé avec cette entrée."
+#: templates/member/user_list.html:26
+msgid "Registrations"
+msgstr "Inscriptions"
+
#: templates/note/conso_form.html:28
msgid "Consum"
msgstr "Consommer"
@@ -2137,6 +2138,25 @@ msgstr ""
"Le lien est invalide. Le jeton a sans doute expiré. Merci de nous contacter "
"pour activer votre compte."
+#: templates/registration/email_validation_email_sent.html:4
+msgid "Account activation"
+msgstr "Activation du compte"
+
+#: templates/registration/email_validation_email_sent.html:7
+msgid ""
+"An email has been sent. Please click on the link to activate your account."
+msgstr ""
+"Un email vient de vous être envoyé. Merci de cliquer sur le lien de "
+"validation pour activer votre compte."
+
+#: templates/registration/email_validation_email_sent.html:11
+msgid ""
+"You must also go to the Kfet to pay your membership. The WEI registration "
+"includes the BDE membership."
+msgstr ""
+"Vous devrez également vous rendre à la Kfet pour payer votre adhésion. "
+"L'inscription au WEI inclut l'adhésion au BDE."
+
#: templates/registration/future_profile_detail.html:49
#: templates/wei/weiregistration_confirm_delete.html:12
msgid "Delete registration"
@@ -2197,10 +2217,12 @@ msgstr ""
msgid "Forgotten your password or username?"
msgstr "Mot de passe ou pseudo oublié ?"
+#: templates/registration/mails/email_validation_email.html:12
#: templates/registration/mails/email_validation_email.txt:3
msgid "Hi"
msgstr "Bonjour"
+#: templates/registration/mails/email_validation_email.html:16
#: templates/registration/mails/email_validation_email.txt:5
msgid ""
"You recently registered on the Note Kfet. Please click on the link below to "
@@ -2209,26 +2231,30 @@ msgstr ""
"Vous vous êtes inscrits récemment sur la Note Kfet. Merci de cliquer sur le "
"lien ci-dessous pour confirmer votre adresse email."
+#: templates/registration/mails/email_validation_email.html:26
#: templates/registration/mails/email_validation_email.txt:9
msgid ""
"This link is only valid for a couple of days, after that you will need to "
"contact us to validate your email."
-msgstr ""
-"Ce lien n'est valide que pendant quelques jours. Après cela, vous devrez "
-"nous contacter pour valider votre email."
+msgstr "Ce lien n'est valide que pendant quelques jours."
+#: templates/registration/mails/email_validation_email.html:30
#: templates/registration/mails/email_validation_email.txt:11
msgid ""
"After that, you'll have to wait that someone validates your account before "
-"you can log in. You will need to pay your membership in the Kfet."
+"you can log in. You will need to pay your membership in the Kfet. Note that "
+"the WEI registration includes the Kfet membership."
msgstr ""
"Après cela, vous devrez attendre que quelqu'un valide votre compte avant de "
-"pouvoir vous connecter. Vous devrez payer votre adhésion à la Kfet."
+"pouvoir vous connecter. Vous devrez payer votre adhésion à la Kfet. Notez "
+"que l'adhésion Kfet est incluse dans l'inscription au WEI."
+#: templates/registration/mails/email_validation_email.html:34
#: templates/registration/mails/email_validation_email.txt:13
msgid "Thanks"
msgstr "Merci"
+#: templates/registration/mails/email_validation_email.html:39
#: templates/registration/mails/email_validation_email.txt:15
msgid "The Note Kfet team."
msgstr "L'équipe de la Note Kfet."
@@ -2311,10 +2337,10 @@ msgid ""
"by following the link you received."
msgstr ""
"Si vous vous êtes déjà inscrits, votre inscription a bien été prise en "
-"compte. Le BDE doit d'abord valider votre compte avantque vous puissiez 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 lien que vous "
-"avez reçu."
+"compte. Le BDE doit d'abord valider votre compte avant que vous puissiez "
+"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 "
+"lien que vous avez reçu."
#: templates/treasury/invoice_form.html:41
msgid "Add product"
diff --git a/templates/registration/email_validation_email_sent.html b/templates/registration/email_validation_email_sent.html
index bd4cf8d8..6167ee52 100644
--- a/templates/registration/email_validation_email_sent.html
+++ b/templates/registration/email_validation_email_sent.html
@@ -1,7 +1,13 @@
{% extends "base.html" %}
{% block content %}
-Account Activation
+{% trans "Account activation" %}
-An email has been sent. Please click on the link to activate your account.
+
+ {% trans "An email has been sent. Please click on the link to activate your account." %}
+
+
+
+ {% trans "You must also go to the Kfet to pay your membership. The WEI registration includes the BDE membership." %}
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/registration/mails/email_validation_email.html b/templates/registration/mails/email_validation_email.html
index 0d3afc0e..84a2379f 100644
--- a/templates/registration/mails/email_validation_email.html
+++ b/templates/registration/mails/email_validation_email.html
@@ -27,7 +27,7 @@
- {% trans "After that, you'll have to wait that someone validates your account before you can log in. You will need to pay your membership in the Kfet." %}
+ {% trans "After that, you'll have to wait that someone validates your account before you can log in. You will need to pay your membership in the Kfet. Note that the WEI registration includes the Kfet membership." %}
diff --git a/templates/registration/mails/email_validation_email.txt b/templates/registration/mails/email_validation_email.txt
index 69f2d642..6427200f 100644
--- a/templates/registration/mails/email_validation_email.txt
+++ b/templates/registration/mails/email_validation_email.txt
@@ -8,7 +8,7 @@ https://{{ domain }}{% url 'registration:email_validation' uidb64=uid token=toke
{% trans "This link is only valid for a couple of days, after that you will need to contact us to validate your email." %}
-{% trans "After that, you'll have to wait that someone validates your account before you can log in. You will need to pay your membership in the Kfet." %}
+{% trans "After that, you'll have to wait that someone validates your account before you can log in. You will need to pay your membership in the Kfet. Note that the WEI registration includes the Kfet membership." %}
{% trans "Thanks" %},