Merge branch 'update_translations' into 'master'

Update translations and Bootstrap

See merge request bde/nk20!14
This commit is contained in:
erdnaxe 2020-02-21 13:59:48 +01:00
commit 12d7ddfa30
8 changed files with 387 additions and 320 deletions

View File

@ -10,11 +10,10 @@ from .models import Club
class ClubTable(tables.Table): class ClubTable(tables.Table):
class Meta: class Meta:
attrs = { attrs = {
'class': 'class': 'table table-condensed table-striped table-hover'
'table table-bordered table-condensed table-striped table-hover'
} }
model = Club model = Club
template_name = 'django_tables2/bootstrap.html' template_name = 'django_tables2/bootstrap4.html'
fields = ('id', 'name', 'email') fields = ('id', 'name', 'email')
row_attrs = { row_attrs = {
'class': 'table-row', 'class': 'table-row',
@ -28,9 +27,8 @@ class UserTable(tables.Table):
class Meta: class Meta:
attrs = { attrs = {
'class': 'class': 'table table-condensed table-striped table-hover'
'table table-bordered table-condensed table-striped table-hover'
} }
template_name = 'django_tables2/bootstrap.html' template_name = 'django_tables2/bootstrap4.html'
fields = ('last_name', 'first_name', 'username', 'email') fields = ('last_name', 'first_name', 'username', 'email')
model = User model = User

View File

@ -60,6 +60,7 @@ class UserUpdateView(LoginRequiredMixin, UpdateView):
context['user'] = self.request.user context['user'] = self.request.user
context["profile_form"] = self.second_form( context["profile_form"] = self.second_form(
instance=context['user_modified'].profile) instance=context['user_modified'].profile)
context['title'] = _("Update Profile")
return context return context
@ -111,7 +112,7 @@ class UserUpdateView(LoginRequiredMixin, UpdateView):
class UserDetailView(LoginRequiredMixin, DetailView): class UserDetailView(LoginRequiredMixin, DetailView):
""" """
Affiche les informations sur un utilisateur, sa note, ses clubs ... Affiche les informations sur un utilisateur, sa note, ses clubs...
""" """
model = Profile model = Profile
context_object_name = "profile" context_object_name = "profile"
@ -125,6 +126,10 @@ class UserDetailView(LoginRequiredMixin, DetailView):
club_list = \ club_list = \
Membership.objects.all().filter(user=user).only("club") Membership.objects.all().filter(user=user).only("club")
context['club_list'] = ClubTable(club_list) context['club_list'] = ClubTable(club_list)
context['title'] = _("Account #%(id)s: %(username)s") % {
'id': user.pk,
'username': user.username,
}
return context return context

View File

@ -11,10 +11,10 @@ class HistoryTable(tables.Table):
class Meta: class Meta:
attrs = { attrs = {
'class': 'class':
'table table-bordered table-condensed table-striped table-hover' 'table table-condensed table-striped table-hover'
} }
model = Transaction model = Transaction
template_name = 'django_tables2/bootstrap.html' template_name = 'django_tables2/bootstrap4.html'
sequence = ('...', 'total', 'valid') sequence = ('...', 'total', 'valid')
total = tables.Column() # will use Transaction.total() !! total = tables.Column() # will use Transaction.total() !!

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-02-06 21:37+0100\n" "POT-Creation-Date: 2020-02-21 13:50+0100\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"
@ -18,338 +18,359 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps/activity/apps.py:11 apps/activity/models.py:77 #: apps/activity/apps.py:10 apps/activity/models.py:76
msgid "activity" msgid "activity"
msgstr "" msgstr ""
#: apps/activity/models.py:20 apps/activity/models.py:45 #: apps/activity/models.py:19 apps/activity/models.py:44
#: apps/member/models.py:61 apps/member/models.py:112 #: apps/member/models.py:60 apps/member/models.py:111
#: apps/note/models/notes.py:178 apps/note/models/transactions.py:24 #: apps/note/models/notes.py:176 apps/note/models/transactions.py:23
#: templates/member/profile_detail.html:10 #: apps/note/models/transactions.py:43 templates/member/profile_detail.html:11
msgid "name" msgid "name"
msgstr "" msgstr ""
#: apps/activity/models.py:24 #: apps/activity/models.py:23
msgid "can invite" msgid "can invite"
msgstr "" msgstr ""
#: apps/activity/models.py:27 #: apps/activity/models.py:26
msgid "guest entry fee" msgid "guest entry fee"
msgstr "" msgstr ""
#: apps/activity/models.py:31 #: apps/activity/models.py:30
msgid "activity type" msgid "activity type"
msgstr "" msgstr ""
#: apps/activity/models.py:32 #: apps/activity/models.py:31
msgid "activity types" msgid "activity types"
msgstr "" msgstr ""
#: apps/activity/models.py:49 #: apps/activity/models.py:48
msgid "description" msgid "description"
msgstr "" msgstr ""
#: apps/activity/models.py:55 apps/note/models/notes.py:154 #: apps/activity/models.py:54 apps/note/models/notes.py:152
#: apps/note/models/transactions.py:39 apps/note/models/transactions.py:85 #: apps/note/models/transactions.py:60 apps/note/models/transactions.py:104
msgid "type" msgid "type"
msgstr "" msgstr ""
#: apps/activity/models.py:61 #: apps/activity/models.py:60
msgid "organizer" msgid "organizer"
msgstr "" msgstr ""
#: apps/activity/models.py:67 #: apps/activity/models.py:66
msgid "attendees club" msgid "attendees club"
msgstr "" msgstr ""
#: apps/activity/models.py:70 #: apps/activity/models.py:69
msgid "start date" msgid "start date"
msgstr "" msgstr ""
#: apps/activity/models.py:73 #: apps/activity/models.py:72
msgid "end date" msgid "end date"
msgstr "" msgstr ""
#: apps/activity/models.py:78 #: apps/activity/models.py:77
msgid "activities" msgid "activities"
msgstr "" msgstr ""
#: apps/activity/models.py:109 #: apps/activity/models.py:108
msgid "guest" msgid "guest"
msgstr "" msgstr ""
#: apps/activity/models.py:110 #: apps/activity/models.py:109
msgid "guests" msgid "guests"
msgstr "" msgstr ""
#: apps/member/apps.py:11 #: apps/member/apps.py:10
msgid "member" msgid "member"
msgstr "" msgstr ""
#: apps/member/models.py:25 #: apps/member/models.py:23
msgid "phone number" msgid "phone number"
msgstr "" msgstr ""
#: apps/member/models.py:31 templates/member/profile_detail.html:18 #: apps/member/models.py:29 templates/member/profile_detail.html:24
msgid "section" msgid "section"
msgstr "" msgstr ""
#: apps/member/models.py:32 #: apps/member/models.py:30
msgid "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\"" msgid "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\""
msgstr "" msgstr ""
#: apps/member/models.py:38 templates/member/profile_detail.html:20 #: apps/member/models.py:36 templates/member/profile_detail.html:27
msgid "address" msgid "address"
msgstr "" msgstr ""
#: apps/member/models.py:44 #: apps/member/models.py:42
msgid "paid" msgid "paid"
msgstr "" msgstr ""
#: apps/member/models.py:49 apps/member/models.py:50 #: apps/member/models.py:47 apps/member/models.py:48
msgid "user profile" msgid "user profile"
msgstr "" msgstr ""
#: apps/member/models.py:66 #: apps/member/models.py:65
msgid "email" msgid "email"
msgstr "" msgstr ""
#: apps/member/models.py:71 #: apps/member/models.py:70
msgid "membership fee" msgid "membership fee"
msgstr "" msgstr ""
#: apps/member/models.py:75 #: apps/member/models.py:74
msgid "membership duration" msgid "membership duration"
msgstr "" msgstr ""
#: apps/member/models.py:76 #: apps/member/models.py:75
msgid "The longest time a membership can last (NULL = infinite)." msgid "The longest time a membership can last (NULL = infinite)."
msgstr "" msgstr ""
#: apps/member/models.py:81 #: apps/member/models.py:80
msgid "membership start" msgid "membership start"
msgstr "" msgstr ""
#: apps/member/models.py:82 #: apps/member/models.py:81
msgid "How long after January 1st the members can renew their membership." msgid "How long after January 1st the members can renew their membership."
msgstr "" msgstr ""
#: apps/member/models.py:87 #: apps/member/models.py:86
msgid "membership end" msgid "membership end"
msgstr "" msgstr ""
#: apps/member/models.py:88 #: apps/member/models.py:87
msgid "" msgid ""
"How long the membership can last after January 1st of the next year after " "How long the membership can last after January 1st of the next year after "
"members can renew their membership." "members can renew their membership."
msgstr "" msgstr ""
#: apps/member/models.py:94 apps/note/models/notes.py:129 #: apps/member/models.py:93 apps/note/models/notes.py:127
msgid "club" msgid "club"
msgstr "" msgstr ""
#: apps/member/models.py:95 #: apps/member/models.py:94
msgid "clubs" msgid "clubs"
msgstr "" msgstr ""
#: apps/member/models.py:118 #: apps/member/models.py:117
msgid "role" msgid "role"
msgstr "" msgstr ""
#: apps/member/models.py:119 #: apps/member/models.py:118
msgid "roles" msgid "roles"
msgstr "" msgstr ""
#: apps/member/models.py:140 #: apps/member/models.py:142
msgid "membership starts on" msgid "membership starts on"
msgstr "" msgstr ""
#: apps/member/models.py:143 #: apps/member/models.py:145
msgid "membership ends on" msgid "membership ends on"
msgstr "" msgstr ""
#: apps/member/models.py:147 #: apps/member/models.py:149
msgid "fee" msgid "fee"
msgstr "" msgstr ""
#: apps/member/models.py:151 #: apps/member/models.py:153
msgid "membership" msgid "membership"
msgstr "" msgstr ""
#: apps/member/models.py:152 #: apps/member/models.py:154
msgid "memberships" msgid "memberships"
msgstr "" msgstr ""
#: apps/note/admin.py:112 apps/note/models/transactions.py:65 #: apps/member/views.py:63 templates/member/profile_detail.html:42
msgid "Update Profile"
msgstr ""
#: apps/member/views.py:79 apps/note/models/notes.py:229
msgid "An alias with a similar name already exists."
msgstr ""
#: apps/member/views.py:129
#, python-format
msgid "Account #%(id)s: %(username)s"
msgstr ""
#: apps/note/admin.py:118 apps/note/models/transactions.py:86
msgid "source" msgid "source"
msgstr "" msgstr ""
#: apps/note/admin.py:120 apps/note/admin.py:148 #: apps/note/admin.py:126 apps/note/admin.py:154
#: apps/note/models/transactions.py:32 apps/note/models/transactions.py:71 #: apps/note/models/transactions.py:51 apps/note/models/transactions.py:92
msgid "destination" msgid "destination"
msgstr "" msgstr ""
#: apps/note/apps.py:15 apps/note/models/notes.py:51 #: apps/note/apps.py:14 apps/note/models/notes.py:48
msgid "note" msgid "note"
msgstr "" msgstr ""
#: apps/note/models/notes.py:28 #: apps/note/models/notes.py:26
msgid "account balance" msgid "account balance"
msgstr "" msgstr ""
#: apps/note/models/notes.py:29 #: apps/note/models/notes.py:27
msgid "in centimes, money credited for this instance" msgid "in centimes, money credited for this instance"
msgstr "" msgstr ""
#: apps/note/models/notes.py:33 #: apps/note/models/notes.py:31
msgid "active" msgid "active"
msgstr "" msgstr ""
#: apps/note/models/notes.py:36 #: apps/note/models/notes.py:34
msgid "" msgid ""
"Designates whether this note should be treated as active. Unselect this " "Designates whether this note should be treated as active. Unselect this "
"instead of deleting notes." "instead of deleting notes."
msgstr "" msgstr ""
#: apps/note/models/notes.py:41 #: apps/note/models/notes.py:38
msgid "display image" msgid "display image"
msgstr "" msgstr ""
#: apps/note/models/notes.py:46 apps/note/models/transactions.py:74 #: apps/note/models/notes.py:43 apps/note/models/transactions.py:95
msgid "created at" msgid "created at"
msgstr "" msgstr ""
#: apps/note/models/notes.py:52 #: apps/note/models/notes.py:49
msgid "notes" msgid "notes"
msgstr "" msgstr ""
#: apps/note/models/notes.py:60 #: apps/note/models/notes.py:57
msgid "Note" msgid "Note"
msgstr "" msgstr ""
#: apps/note/models/notes.py:70 apps/note/models/notes.py:92 #: apps/note/models/notes.py:67 apps/note/models/notes.py:90
msgid "This alias is already taken." msgid "This alias is already taken."
msgstr "" msgstr ""
#: apps/note/models/notes.py:107 #: apps/note/models/notes.py:105
msgid "user" msgid "user"
msgstr "" msgstr ""
#: apps/note/models/notes.py:111 #: apps/note/models/notes.py:109
msgid "one's note" msgid "one's note"
msgstr "" msgstr ""
#: apps/note/models/notes.py:112 #: apps/note/models/notes.py:110
msgid "users note" msgid "users note"
msgstr "" msgstr ""
#: apps/note/models/notes.py:118 #: apps/note/models/notes.py:116
#, python-format #, python-format
msgid "%(user)s's note" msgid "%(user)s's note"
msgstr "" msgstr ""
#: apps/note/models/notes.py:133 #: apps/note/models/notes.py:131
msgid "club note" msgid "club note"
msgstr "" msgstr ""
#: apps/note/models/notes.py:134 #: apps/note/models/notes.py:132
msgid "clubs notes" msgid "clubs notes"
msgstr "" msgstr ""
#: apps/note/models/notes.py:140 #: apps/note/models/notes.py:138
#, python-format #, python-format
msgid "Note of %(club)s club" msgid "Note of %(club)s club"
msgstr "" msgstr ""
#: apps/note/models/notes.py:160 #: apps/note/models/notes.py:158
msgid "special note" msgid "special note"
msgstr "" msgstr ""
#: apps/note/models/notes.py:161 #: apps/note/models/notes.py:159
msgid "special notes" msgid "special notes"
msgstr "" msgstr ""
#: apps/note/models/notes.py:184 #: apps/note/models/notes.py:182
msgid "Invalid alias" msgid "Invalid alias"
msgstr "" msgstr ""
#: apps/note/models/notes.py:200 #: apps/note/models/notes.py:198
msgid "alias" msgid "alias"
msgstr "" msgstr ""
#: apps/note/models/notes.py:201 #: apps/note/models/notes.py:199 templates/member/profile_detail.html:33
msgid "aliases" msgid "aliases"
msgstr "" msgstr ""
#: apps/note/models/notes.py:229 #: apps/note/models/notes.py:225
msgid "Alias too long." msgid "Alias too long."
msgstr "" msgstr ""
#: apps/note/models/notes.py:232 #: apps/note/models/notes.py:236
msgid "An alias with a similar name already exists." msgid "You can't delete your main alias."
msgstr "" msgstr ""
#: apps/note/models/transactions.py:35 apps/note/models/transactions.py:82 #: apps/note/models/transactions.py:29
msgid "transaction category"
msgstr ""
#: apps/note/models/transactions.py:30
msgid "transaction categories"
msgstr ""
#: apps/note/models/transactions.py:54 apps/note/models/transactions.py:102
msgid "amount" msgid "amount"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:36 #: apps/note/models/transactions.py:55
msgid "in centimes" msgid "in centimes"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:44 #: apps/note/models/transactions.py:65
msgid "transaction template" msgid "transaction template"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:45 #: apps/note/models/transactions.py:66
msgid "transaction templates" msgid "transaction templates"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:78 #: apps/note/models/transactions.py:99
msgid "quantity" msgid "quantity"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:89 #: apps/note/models/transactions.py:108
msgid "reason" msgid "reason"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:93 #: apps/note/models/transactions.py:112
msgid "valid" msgid "valid"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:98 #: apps/note/models/transactions.py:117
msgid "transaction" msgid "transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:99 #: apps/note/models/transactions.py:118
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:141 #: apps/note/models/transactions.py:160
msgid "membership transaction" msgid "membership transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:142 #: apps/note/models/transactions.py:161
msgid "membership transactions" msgid "membership transactions"
msgstr "" msgstr ""
#: apps/note/views.py:26 #: apps/note/views.py:29
msgid "Transfer money from your account to one or others" msgid "Transfer money from your account to one or others"
msgstr "" msgstr ""
#: note_kfet/settings/base.py:130 #: note_kfet/settings/base.py:148
msgid "German" msgid "German"
msgstr "" msgstr ""
#: note_kfet/settings/base.py:131 #: note_kfet/settings/base.py:149
msgid "English" msgid "English"
msgstr "" msgstr ""
#: note_kfet/settings/base.py:132 #: note_kfet/settings/base.py:150
msgid "French" msgid "French"
msgstr "" msgstr ""
#: templates/base.html:14 #: templates/base.html:13
msgid "The ENS Paris-Saclay BDE note." msgid "The ENS Paris-Saclay BDE note."
msgstr "" msgstr ""
@ -365,11 +386,23 @@ msgstr ""
msgid "Membership duration" msgid "Membership duration"
msgstr "" msgstr ""
#: templates/member/club_detail.html:18 templates/member/profile_detail.html:22 #: templates/member/club_detail.html:18 templates/member/profile_detail.html:30
msgid "balance" msgid "balance"
msgstr "" msgstr ""
#: templates/member/profile_detail.html:12 #: templates/member/manage_auth_tokens.html:16
msgid "Token"
msgstr ""
#: templates/member/manage_auth_tokens.html:23
msgid "Created"
msgstr ""
#: templates/member/manage_auth_tokens.html:31
msgid "Regenerate token"
msgstr ""
#: templates/member/profile_detail.html:11
msgid "first name" msgid "first name"
msgstr "" msgstr ""
@ -377,15 +410,19 @@ msgstr ""
msgid "username" msgid "username"
msgstr "" msgstr ""
#: templates/member/profile_detail.html:26 #: templates/member/profile_detail.html:17
msgid "Update Profile" msgid "password"
msgstr "" msgstr ""
#: templates/member/profile_detail.html:27 #: templates/member/profile_detail.html:20
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: templates/member/profile_detail.html:35 #: templates/member/profile_detail.html:38
msgid "Manage auth token"
msgstr ""
#: templates/member/profile_detail.html:54
msgid "View my memberships" msgid "View my memberships"
msgstr "" msgstr ""

View File

@ -3,7 +3,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-02-06 21:37+0100\n" "POT-Creation-Date: 2020-02-21 13:50+0100\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"
@ -13,396 +13,424 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps/activity/apps.py:11 apps/activity/models.py:77 #: apps/activity/apps.py:10 apps/activity/models.py:76
msgid "activity" msgid "activity"
msgstr "activité" msgstr "activité"
#: apps/activity/models.py:20 apps/activity/models.py:45 #: apps/activity/models.py:19 apps/activity/models.py:44
#: apps/member/models.py:61 apps/member/models.py:112 #: apps/member/models.py:60 apps/member/models.py:111
#: apps/note/models/notes.py:178 apps/note/models/transactions.py:24 #: apps/note/models/notes.py:176 apps/note/models/transactions.py:23
#: templates/member/profile_detail.html:10 #: apps/note/models/transactions.py:43 templates/member/profile_detail.html:11
msgid "name" msgid "name"
msgstr "nom" msgstr "nom"
#: apps/activity/models.py:24 #: apps/activity/models.py:23
msgid "can invite" msgid "can invite"
msgstr "peut inviter" msgstr "peut inviter"
#: apps/activity/models.py:27 #: apps/activity/models.py:26
msgid "guest entry fee" msgid "guest entry fee"
msgstr "cotisation de l'entrée invité" msgstr "cotisation de l'entrée invité"
#: apps/activity/models.py:31 #: apps/activity/models.py:30
msgid "activity type" msgid "activity type"
msgstr "type d'activité" msgstr "type d'activité"
#: apps/activity/models.py:32 #: apps/activity/models.py:31
msgid "activity types" msgid "activity types"
msgstr "types d'activité" msgstr "types d'activité"
#: apps/activity/models.py:49 #: apps/activity/models.py:48
msgid "description" msgid "description"
msgstr "description" msgstr "description"
#: apps/activity/models.py:55 apps/note/models/notes.py:154 #: apps/activity/models.py:54 apps/note/models/notes.py:152
#: apps/note/models/transactions.py:39 apps/note/models/transactions.py:85 #: apps/note/models/transactions.py:60 apps/note/models/transactions.py:104
msgid "type" msgid "type"
msgstr "type" msgstr "type"
#: apps/activity/models.py:61 #: apps/activity/models.py:60
msgid "organizer" msgid "organizer"
msgstr "organisateur" msgstr "organisateur"
#: apps/activity/models.py:67 #: apps/activity/models.py:66
msgid "attendees club" msgid "attendees club"
msgstr "" msgstr ""
#: apps/activity/models.py:70 #: apps/activity/models.py:69
msgid "start date" msgid "start date"
msgstr "date de début" msgstr "date de début"
#: apps/activity/models.py:73 #: apps/activity/models.py:72
msgid "end date" msgid "end date"
msgstr "date de fin" msgstr "date de fin"
#: apps/activity/models.py:78 #: apps/activity/models.py:77
msgid "activities" msgid "activities"
msgstr "activités" msgstr "activités"
#: apps/activity/models.py:109 #: apps/activity/models.py:108
msgid "guest" msgid "guest"
msgstr "invité" msgstr "invité"
#: apps/activity/models.py:110 #: apps/activity/models.py:109
msgid "guests" msgid "guests"
msgstr "invités" msgstr "invités"
#: apps/member/apps.py:11 #: apps/member/apps.py:10
msgid "member" msgid "member"
msgstr "adhérent" msgstr "adhérent"
#: apps/member/models.py:25 #: apps/member/models.py:23
msgid "phone number" msgid "phone number"
msgstr "numéro de téléphone" msgstr "numéro de téléphone"
#: apps/member/models.py:31 templates/member/profile_detail.html:18 #: apps/member/models.py:29 templates/member/profile_detail.html:24
msgid "section" msgid "section"
msgstr "section" msgstr "section"
#: apps/member/models.py:32 #: apps/member/models.py:30
msgid "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\"" msgid "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\""
msgstr "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\"" msgstr "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\""
#: apps/member/models.py:38 templates/member/profile_detail.html:20 #: apps/member/models.py:36 templates/member/profile_detail.html:27
msgid "address" msgid "address"
msgstr "adresse" msgstr "adresse"
#: apps/member/models.py:44 #: apps/member/models.py:42
msgid "paid" msgid "paid"
msgstr "payé" msgstr "payé"
#: apps/member/models.py:49 apps/member/models.py:50 #: apps/member/models.py:47 apps/member/models.py:48
msgid "user profile" msgid "user profile"
msgstr "profil utilisateur" msgstr "profil utilisateur"
#: apps/member/models.py:66 #: apps/member/models.py:65
msgid "email" msgid "email"
msgstr "courriel" msgstr "courriel"
#: apps/member/models.py:71 #: apps/member/models.py:70
msgid "membership fee" msgid "membership fee"
msgstr "cotisation pour adhérer" msgstr "cotisation pour adhérer"
#: apps/member/models.py:75 #: apps/member/models.py:74
msgid "membership duration" msgid "membership duration"
msgstr "durée de l'adhésion" msgstr "durée de l'adhésion"
#: apps/member/models.py:76 #: apps/member/models.py:75
msgid "The longest time a membership can last (NULL = infinite)." msgid "The longest time a membership can last (NULL = infinite)."
msgstr "La durée maximale d'une adhésion (NULL = infinie)." msgstr "La durée maximale d'une adhésion (NULL = infinie)."
#: apps/member/models.py:81 #: apps/member/models.py:80
msgid "membership start" msgid "membership start"
msgstr "début de l'adhésion" msgstr "début de l'adhésion"
#: apps/member/models.py:82 #: apps/member/models.py:81
msgid "How long after January 1st the members can renew their membership." msgid "How long after January 1st the members can renew their membership."
msgstr "" msgstr ""
"Combien de temps après le 1er Janvier les adhérents peuvent renouveler leur "
"adhésion."
#: apps/member/models.py:87 #: apps/member/models.py:86
msgid "membership end" msgid "membership end"
msgstr "fin de l'adhésion" msgstr "fin de l'adhésion"
#: apps/member/models.py:88 #: apps/member/models.py:87
msgid "" msgid ""
"How long the membership can last after January 1st of the next year after " "How long the membership can last after January 1st of the next year after "
"members can renew their membership." "members can renew their membership."
msgstr "" 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:94 apps/note/models/notes.py:129 #: apps/member/models.py:93 apps/note/models/notes.py:127
msgid "club" msgid "club"
msgstr "club" msgstr "club"
#: apps/member/models.py:95 #: apps/member/models.py:94
msgid "clubs" msgid "clubs"
msgstr "clubs" msgstr "clubs"
#: apps/member/models.py:118 #: apps/member/models.py:117
msgid "role" msgid "role"
msgstr "rôle" msgstr "rôle"
#: apps/member/models.py:119 #: apps/member/models.py:118
msgid "roles" msgid "roles"
msgstr "rôles" msgstr "rôles"
#: apps/member/models.py:140 #: apps/member/models.py:142
msgid "membership starts on" msgid "membership starts on"
msgstr "l'adhésion commence le" msgstr "l'adhésion commence le"
#: apps/member/models.py:143 #: apps/member/models.py:145
msgid "membership ends on" msgid "membership ends on"
msgstr "l'adhésion finie le" msgstr "l'adhésion finie le"
#: apps/member/models.py:147 #: apps/member/models.py:149
msgid "fee" msgid "fee"
msgstr "cotisation" msgstr "cotisation"
#: apps/member/models.py:151 #: apps/member/models.py:153
msgid "membership" msgid "membership"
msgstr "adhésion" msgstr "adhésion"
#: apps/member/models.py:152 #: apps/member/models.py:154
msgid "memberships" msgid "memberships"
msgstr "adhésions" msgstr "adhésions"
#: apps/note/admin.py:112 apps/note/models/transactions.py:65 #: apps/member/views.py:63 templates/member/profile_detail.html:42
msgid "Update Profile"
msgstr "Modifier le profil"
#: apps/member/views.py:79 apps/note/models/notes.py:229
msgid "An alias with a similar name already exists."
msgstr "Un alias avec un nom similaire existe déjà."
#: apps/member/views.py:129
#, python-format
msgid "Account #%(id)s: %(username)s"
msgstr "Compte n°%(id)s : %(username)s"
#: apps/note/admin.py:118 apps/note/models/transactions.py:86
msgid "source" msgid "source"
msgstr "source" msgstr "source"
#: apps/note/admin.py:120 apps/note/admin.py:148 #: apps/note/admin.py:126 apps/note/admin.py:154
#: apps/note/models/transactions.py:32 apps/note/models/transactions.py:71 #: apps/note/models/transactions.py:51 apps/note/models/transactions.py:92
msgid "destination" msgid "destination"
msgstr "destination" msgstr "destination"
#: apps/note/apps.py:15 apps/note/models/notes.py:51 #: apps/note/apps.py:14 apps/note/models/notes.py:48
msgid "note" msgid "note"
msgstr "note" msgstr "note"
#: apps/note/models/notes.py:28 #: apps/note/models/notes.py:26
msgid "account balance" msgid "account balance"
msgstr "solde du compte" msgstr "solde du compte"
#: apps/note/models/notes.py:29 #: apps/note/models/notes.py:27
msgid "in centimes, money credited for this instance" msgid "in centimes, money credited for this instance"
msgstr "en centimes, argent crédité pour cette instance" msgstr "en centimes, argent crédité pour cette instance"
#: apps/note/models/notes.py:33 #: apps/note/models/notes.py:31
msgid "active" msgid "active"
msgstr "actif" msgstr "actif"
#: apps/note/models/notes.py:36 #: apps/note/models/notes.py:34
msgid "" msgid ""
"Designates whether this note should be treated as active. Unselect this " "Designates whether this note should be treated as active. Unselect this "
"instead of deleting notes." "instead of deleting notes."
msgstr "" msgstr ""
"Indique si la note est active. Désactiver cela plutôt que supprimer la note." "Indique si la note est active. Désactiver cela plutôt que supprimer la note."
#: apps/note/models/notes.py:41 #: apps/note/models/notes.py:38
msgid "display image" msgid "display image"
msgstr "image affichée" msgstr "image affichée"
#: apps/note/models/notes.py:46 apps/note/models/transactions.py:74 #: apps/note/models/notes.py:43 apps/note/models/transactions.py:95
msgid "created at" msgid "created at"
msgstr "créée le" msgstr "créée le"
#: apps/note/models/notes.py:52 #: apps/note/models/notes.py:49
msgid "notes" msgid "notes"
msgstr "notes" msgstr "notes"
#: apps/note/models/notes.py:60 #: apps/note/models/notes.py:57
msgid "Note" msgid "Note"
msgstr "Note" msgstr "Note"
#: apps/note/models/notes.py:70 apps/note/models/notes.py:92 #: apps/note/models/notes.py:67 apps/note/models/notes.py:90
msgid "This alias is already taken." msgid "This alias is already taken."
msgstr "Cet alias est déjà pris." msgstr "Cet alias est déjà pris."
#: apps/note/models/notes.py:107 #: apps/note/models/notes.py:105
msgid "user" msgid "user"
msgstr "utilisateur" msgstr "utilisateur"
#: apps/note/models/notes.py:111 #: apps/note/models/notes.py:109
msgid "one's note" msgid "one's note"
msgstr "note d'un utilisateur" msgstr "note d'un utilisateur"
#: apps/note/models/notes.py:112 #: apps/note/models/notes.py:110
msgid "users note" msgid "users note"
msgstr "notes des utilisateurs" msgstr "notes des utilisateurs"
#: apps/note/models/notes.py:118 #: apps/note/models/notes.py:116
#, python-format #, python-format
msgid "%(user)s's note" msgid "%(user)s's note"
msgstr "Note de %(user)s" msgstr "Note de %(user)s"
#: apps/note/models/notes.py:133 #: apps/note/models/notes.py:131
msgid "club note" msgid "club note"
msgstr "note d'un club" msgstr "note d'un club"
#: apps/note/models/notes.py:134 #: apps/note/models/notes.py:132
msgid "clubs notes" msgid "clubs notes"
msgstr "notes des clubs" msgstr "notes des clubs"
#: apps/note/models/notes.py:140 #: apps/note/models/notes.py:138
#, fuzzy, python-format #, python-format
#| msgid "Note for %(club)s club"
msgid "Note of %(club)s club" msgid "Note of %(club)s club"
msgstr "Note du club %(club)s" msgstr "Note du club %(club)s"
#: apps/note/models/notes.py:160 #: apps/note/models/notes.py:158
msgid "special note" msgid "special note"
msgstr "note spéciale" msgstr "note spéciale"
#: apps/note/models/notes.py:161 #: apps/note/models/notes.py:159
msgid "special notes" msgid "special notes"
msgstr "notes spéciales" msgstr "notes spéciales"
#: apps/note/models/notes.py:184 #: apps/note/models/notes.py:182
msgid "Invalid alias" msgid "Invalid alias"
msgstr "Alias invalide" msgstr "Alias invalide"
#: apps/note/models/notes.py:200 #: apps/note/models/notes.py:198
msgid "alias" msgid "alias"
msgstr "alias" msgstr "alias"
#: apps/note/models/notes.py:201 #: apps/note/models/notes.py:199 templates/member/profile_detail.html:33
msgid "aliases" msgid "aliases"
msgstr "alias" msgstr "alias"
#: apps/note/models/notes.py:229 #: apps/note/models/notes.py:225
msgid "Alias too long." msgid "Alias too long."
msgstr "L'alias est trop long." msgstr "L'alias est trop long."
#: apps/note/models/notes.py:232 #: apps/note/models/notes.py:236
msgid "An alias with a similar name already exists." msgid "You can't delete your main alias."
msgstr "Un alias avec un nom similaire existe déjà." msgstr "Vous ne pouvez pas supprimer votre alias principal."
#: apps/note/models/transactions.py:35 apps/note/models/transactions.py:82 #: apps/note/models/transactions.py:29
msgid "transaction category"
msgstr "catégorie de transaction"
#: apps/note/models/transactions.py:30
msgid "transaction categories"
msgstr "catégories de transaction"
#: apps/note/models/transactions.py:54 apps/note/models/transactions.py:102
msgid "amount" msgid "amount"
msgstr "montant" msgstr "montant"
#: apps/note/models/transactions.py:36 #: apps/note/models/transactions.py:55
msgid "in centimes" msgid "in centimes"
msgstr "en centimes" msgstr "en centimes"
#: apps/note/models/transactions.py:44 #: apps/note/models/transactions.py:65
msgid "transaction template" msgid "transaction template"
msgstr "modèle de transaction" msgstr "modèle de transaction"
#: apps/note/models/transactions.py:45 #: apps/note/models/transactions.py:66
msgid "transaction templates" msgid "transaction templates"
msgstr "modèles de transaction" msgstr "modèles de transaction"
#: apps/note/models/transactions.py:78 #: apps/note/models/transactions.py:99
msgid "quantity" msgid "quantity"
msgstr "quantité" msgstr "quantité"
#: apps/note/models/transactions.py:89 #: apps/note/models/transactions.py:108
msgid "reason" msgid "reason"
msgstr "raison" msgstr "raison"
#: apps/note/models/transactions.py:93 #: apps/note/models/transactions.py:112
msgid "valid" msgid "valid"
msgstr "valide" msgstr "valide"
#: apps/note/models/transactions.py:98 #: apps/note/models/transactions.py:117
msgid "transaction" msgid "transaction"
msgstr "transaction" msgstr "transaction"
#: apps/note/models/transactions.py:99 #: apps/note/models/transactions.py:118
msgid "transactions" msgid "transactions"
msgstr "transactions" msgstr "transactions"
#: apps/note/models/transactions.py:141 #: apps/note/models/transactions.py:160
msgid "membership transaction" msgid "membership transaction"
msgstr "transaction d'adhésion" msgstr "transaction d'adhésion"
#: apps/note/models/transactions.py:142 #: apps/note/models/transactions.py:161
msgid "membership transactions" msgid "membership transactions"
msgstr "transactions d'adhésion" msgstr "transactions d'adhésion"
#: apps/note/views.py:26 #: apps/note/views.py:29
msgid "Transfer money from your account to one or others" msgid "Transfer money from your account to one or others"
msgstr "Transfert d'argent de ton compte vers un ou plusieurs autres" msgstr "Transfert d'argent de ton compte vers un ou plusieurs autres"
#: note_kfet/settings/base.py:130 #: note_kfet/settings/base.py:148
msgid "German" msgid "German"
msgstr "" msgstr ""
#: note_kfet/settings/base.py:131 #: note_kfet/settings/base.py:149
msgid "English" msgid "English"
msgstr "" msgstr ""
#: note_kfet/settings/base.py:132 #: note_kfet/settings/base.py:150
msgid "French" msgid "French"
msgstr "" msgstr ""
#: templates/base.html:14 #: templates/base.html:13
msgid "The ENS Paris-Saclay BDE note." msgid "The ENS Paris-Saclay BDE note."
msgstr "" msgstr "La note du BDE de l'ENS Paris-Saclay."
#: templates/member/club_detail.html:10 #: templates/member/club_detail.html:10
#, fuzzy
#| msgid "membership starts on"
msgid "Membership starts on" msgid "Membership starts on"
msgstr "l'adhésion commence le" msgstr "L'adhésion commence le"
#: templates/member/club_detail.html:12 #: templates/member/club_detail.html:12
#, fuzzy
#| msgid "membership ends on"
msgid "Membership ends on" msgid "Membership ends on"
msgstr "l'adhésion finie le" msgstr "L'adhésion finie le"
#: templates/member/club_detail.html:14 #: templates/member/club_detail.html:14
#, fuzzy
#| msgid "membership duration"
msgid "Membership duration" msgid "Membership duration"
msgstr "durée de l'adhésion" msgstr "Durée de l'adhésion"
#: templates/member/club_detail.html:18 templates/member/profile_detail.html:22 #: templates/member/club_detail.html:18 templates/member/profile_detail.html:30
#, fuzzy
#| msgid "account balance"
msgid "balance" msgid "balance"
msgstr "solde du compte" msgstr "solde du compte"
#: templates/member/profile_detail.html:12 #: templates/member/manage_auth_tokens.html:16
msgid "Token"
msgstr "Jeton"
#: templates/member/manage_auth_tokens.html:23
msgid "Created"
msgstr "Créé le"
#: templates/member/manage_auth_tokens.html:31
msgid "Regenerate token"
msgstr "Regénérer le jeton"
#: templates/member/profile_detail.html:11
msgid "first name" msgid "first name"
msgstr "" msgstr ""
#: templates/member/profile_detail.html:14 #: templates/member/profile_detail.html:14
#, fuzzy
#| msgid "name"
msgid "username" msgid "username"
msgstr "nom" msgstr "nom d'utilisateur"
#: templates/member/profile_detail.html:26 #: templates/member/profile_detail.html:17
#, fuzzy #, fuzzy
#| msgid "user profile" #| msgid "Change password"
msgid "Update Profile" msgid "password"
msgstr "profil utilisateur" msgstr "Changer le mot de passe"
#: templates/member/profile_detail.html:27 #: templates/member/profile_detail.html:20
msgid "Change password" msgid "Change password"
msgstr "" msgstr "Changer le mot de passe"
#: templates/member/profile_detail.html:35 #: templates/member/profile_detail.html:38
#, fuzzy msgid "Manage auth token"
#| msgid "memberships" msgstr "Gérer les jetons d'authentification"
#: templates/member/profile_detail.html:54
msgid "View my memberships" msgid "View my memberships"
msgstr "adhésions" msgstr "Voir mes adhésions"
#: templates/member/profile_update.html:13 #: templates/member/profile_update.html:13
msgid "Save Changes" msgid "Save Changes"
msgstr "" msgstr "Sauvegarder les changements"
#: templates/member/signup.html:14 #: templates/member/signup.html:14
msgid "Sign Up" msgid "Sign Up"

View File

@ -6,8 +6,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<html lang="en" class="position-relative h-100"> <html lang="en" class="position-relative h-100">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<title> <title>
{% block title %}{{ title }}{% endblock title %} - {{ request.site.name }} {% block title %}{{ title }}{% endblock title %} - {{ request.site.name }}
</title> </title>
@ -26,8 +25,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
{# Bootstrap CSS #} {# Bootstrap CSS #}
<link rel="stylesheet" <link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous"> crossorigin="anonymous">
<link rel="stylesheet" <link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@ -39,9 +38,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% block extracss %}{% endblock %} {% block extracss %}{% endblock %}
</head> </head>
<body> <body class="d-flex w-100 h-100 flex-column">
<main> <main class="mb-auto">
<nav class="navbar navbar-expand-md navbar-light bg-light fixed-navbar"> <nav class="navbar navbar-expand-md navbar-light bg-light fixed-navbar shadow-sm">
<a class="navbar-brand" href="/">{{ request.site.name }}</a> <a class="navbar-brand" href="/">{{ request.site.name }}</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" <button class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarNavAltMarkup" data-target="#navbarNavAltMarkup"
@ -95,31 +94,23 @@ SPDX-License-Identifier: GPL-3.0-or-later
</ul> </ul>
</div> </div>
</nav> </nav>
<div class="container-fluid mb-5 mt-2"> <div class="container-fluid my-3" style="max-width: 1600px;">
<div class="row"> {% block contenttitle %}<h1>{{ title }}</h1>{% endblock %}
<div class="col-md-1"> {% block content %}
{% block sidebar %} <p>Default content...</p>
{% endblock %} {% endblock content %}
</div>
<div class="col-md-10 text-justify">
{% block contenttitle %}<h1>{{ title }}</h1>{% endblock %}
{% block content %}
<p>Default content...</p>
{% endblock content %}
</div>
</div>
</div> </div>
</main> </main>
<footer class="bg-light fixed-bottom py-2"> <footer class="bg-light mt-auto py-2">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-sm"> <div class="col-sm">
<form action="{% url 'set_language' %}" method="post" <form action="{% url 'set_language' %}" method="post"
class="form-inline"> class="form-inline">
<span class="text-muted mr-1"> <span class="text-muted mr-1">
NoteKfet2020 - NoteKfet2020 &mdash;
<a href="mailto:tresorie.bde@lists.crans.org" <a href="mailto:tresorie.bde@lists.crans.org"
class="text-muted">Nous contacter</a> - class="text-muted">Nous contacter</a> &mdash;
</span> </span>
{% csrf_token %} {% csrf_token %}
<select title="language" name="language" <select title="language" name="language"
@ -149,14 +140,14 @@ SPDX-License-Identifier: GPL-3.0-or-later
</footer> </footer>
{# Bootstrap JavaScript #} {# Bootstrap JavaScript #}
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
crossorigin="anonymous"></script> crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"></script> crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous"></script> crossorigin="anonymous"></script>
{% block extrajavascript %} {% block extrajavascript %}
{% endblock extrajavascript %} {% endblock extrajavascript %}

View File

@ -2,67 +2,76 @@
{% load i18n static pretty_money django_tables2 %} {% load i18n static pretty_money django_tables2 %}
{% block content %} {% block content %}
<h3>Compte n° {{ object.pk }}</h3> <div class="row mt-4">
<div class="col-md-3 mb-4">
<div class="card bg-light shadow">
<img src="{{ object.note.display_image.url }}" class="card-img-top" alt="">
<div class="card-body">
<dl class="row">
<dt class="col-xl-6">{% trans 'name'|capfirst %}, {% trans 'first name' %}</dt>
<dd class="col-xl-6">{{ object.user.last_name }} {{ object.user.first_name }}</dd>
<img src="{{ object.note.display_image.url }}" alt=""/> <dt class="col-xl-6">{% trans 'username'|capfirst %}</dt>
<dd class="col-xl-6">{{ object.user.username }}</dd>
<dl class="row"> <dt class="col-xl-6">{% trans 'password'|capfirst %}</dt>
<dt class="col-6 col-md-3">{% trans 'name'|capfirst %}</dt> <dd class="col-xl-6">
<dd class="col-6 col-md-3">{{ object.user.last_name }}</dd> <a class="small" href="{% url 'password_change' %}">
<dt class="col-6 col-md-3">{% trans 'first name'|capfirst %}</dt> {% trans 'Change password' %}
<dd class="col-6 col-md-3">{{ object.user.first_name }}</dd> </a>
<dt class="col-6 col-md-3">{% trans 'username'|capfirst %}</dt> </dd>
<dd class="col-6 col-md-3">{{ object.user.username }}</dd>
<dt class="col-6 col-md-3">Aliases</dt>
<dd class="col-6 col-md-3">{{ object.user.note.alias_set.all }}</dd>
<dt class="col-6 col-md-3">{% trans 'section'|capfirst %}</dt>
<dd class="col-6 col-md-3">{{ object.section }}</dd>
<dt class="col-6 col-md-3">{% trans 'address'|capfirst %}</dt>
<dd class="col-6 col-md-3">{{ object.address }}</dd>
<dt class="col-6 col-md-3">{% trans 'balance'|capfirst %}</dt>
<dd class="col-6 col-md-3">{{ object.user.note.balance | pretty_money }}</dd>
</dl>
<center>
{% if object.user.pk == user.pk %}
<a class="btn btn-primary" href="{% url 'member:auth_token' %}">{% trans 'Manage auth token' %}</a>
{% endif %}
<a class="btn btn-primary" href="{% url 'member:user_update_profile' object.pk %}">{% trans 'Update Profile' %}</a>
<a class="btn btn-primary" href="{% url 'password_change' %}">{% trans 'Change password' %}</a>
</center>
<div class="accordion" id="accordionProfile"> <dt class="col-xl-6">{% trans 'section'|capfirst %}</dt>
<div class="card"> <dd class="col-xl-6">{{ object.section }}</dd>
<div class="card-header" id="headingOne">
<h5 class="mb-0"> <dt class="col-xl-6">{% trans 'address'|capfirst %}</dt>
<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> <dd class="col-xl-6">{{ object.address }}</dd>
<i class="fa fa-users"></i> {% trans "View my memberships" %}
</button> <dt class="col-xl-6">{% trans 'balance'|capfirst %}</dt>
</h5> <dd class="col-xl-6">{{ object.user.note.balance | pretty_money }}</dd>
<dt class="col-xl-6">{% trans 'aliases'|capfirst %}</dt>
<dd class="col-xl-6">{{ object.user.note.alias_set.all|join:", " }}</dd>
</dl>
{% if object.user.pk == user.pk %}
<a class="small" href="{% url 'member:auth_token' %}">{% trans 'Manage auth token' %}</a>
{% endif %}
</div>
<div class="card-footer">
<a class="btn btn-primary btn-sm" href="{% url 'member:user_update_profile' object.pk %}">{% trans 'Update Profile' %}</a>
</div>
</div>
</div> </div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionProfile"> <div class="col-md-9">
<div class="card-body"> <div class="accordion shadow" id="accordionProfile">
{% render_table club_list %} <div class="card">
</div> <div class="card-header position-relative" id="clubListHeading">
<a class="btn btn-link stretched-link font-weight-bold"
data-toggle="collapse" data-target="#clubListCollapse"
aria-expanded="true" aria-controls="clubListCollapse">
<i class="fa fa-users"></i> {% trans "View my memberships" %}
</a>
</div>
<div id="clubListCollapse" class="collapse overflow-auto show" aria-labelledby="clubListHeading" data-parent="#accordionProfile">
{% render_table club_list %}
</div>
</div>
<div class="card">
<div class="card-header position-relative" id="historyListHeading">
<a class="btn btn-link stretched-link collapsed font-weight-bold"
data-toggle="collapse" data-target="#historyListCollapse"
aria-expanded="false" aria-controls="historyListCollapse">
<i class="fa fa-euro"></i> Historique des transactions
</a>
</div>
<div id="historyListCollapse" class="collapse overflow-auto" aria-labelledby="historyListHeading" data-parent="#accordionProfile">
{% render_table history_list %}
</div>
</div>
</div>
</div> </div>
</div>
<div class="card">
<div class="card-header" id="headingTwo">
<h5 class="mb-0">
<button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
<i class="fa fa-euro"></i> Historique des transactions
</button>
</h5>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionProfile">
<div class="card-body">
{% render_table history_list %}
</div>
</div>
</div>
</div> </div>
{% endblock %}
{% endblock %}

View File

@ -1,17 +1,16 @@
<!doctype html>
{% extends "base.html" %} {% extends "base.html" %}
{% load crispy_forms_tags %} {% load i18n crispy_forms_tags %}
{% load i18n static pretty_money django_tables2 %} {% comment %}
SPDX-License-Identifier: GPL-3.0-or-later
{% endcomment %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}
{{ profile_form|crispy }} {{ profile_form|crispy }}
<button class="btn btn-link" type="submit"> <button class="btn btn-primary" type="submit">
{% trans "Save Changes" %} {% trans "Save Changes" %}
</button> </button>
</form> </form>
{% endblock %} {% endblock %}