mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 14:13:21 +00:00
trombi: add custom club memberships
Signed-off-by: Skia <skia@libskia.so>
This commit is contained in:
parent
5df9be9188
commit
f26f2f4229
@ -59,6 +59,13 @@ def get_start_of_semester(d=date.today()):
|
|||||||
else:
|
else:
|
||||||
return start2
|
return start2
|
||||||
|
|
||||||
|
def get_semester(d=date.today()):
|
||||||
|
start = get_start_of_semester(d)
|
||||||
|
if start.month <= 6:
|
||||||
|
return "P" + str(start.year)[-2:]
|
||||||
|
else:
|
||||||
|
return "A" + str(start.year)[-2:]
|
||||||
|
|
||||||
def scale_dimension(width, height, long_edge):
|
def scale_dimension(width, height, long_edge):
|
||||||
if width > height:
|
if width > height:
|
||||||
ratio = long_edge * 1. / width
|
ratio = long_edge * 1. / width
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2017-06-12 08:12+0200\n"
|
"POT-Creation-Date: 2017-06-12 23:48+0200\n"
|
||||||
"PO-Revision-Date: 2016-07-18\n"
|
"PO-Revision-Date: 2016-07-18\n"
|
||||||
"Last-Translator: Skia <skia@libskia.so>\n"
|
"Last-Translator: Skia <skia@libskia.so>\n"
|
||||||
"Language-Team: AE info <ae.info@utbm.fr>\n"
|
"Language-Team: AE info <ae.info@utbm.fr>\n"
|
||||||
@ -67,7 +67,7 @@ msgstr "numero de compte"
|
|||||||
|
|
||||||
#: accounting/models.py:111 accounting/models.py:136 club/models.py:183
|
#: accounting/models.py:111 accounting/models.py:136 club/models.py:183
|
||||||
#: com/models.py:64 com/models.py:152 counter/models.py:134
|
#: com/models.py:64 com/models.py:152 counter/models.py:134
|
||||||
#: counter/models.py:161
|
#: counter/models.py:161 trombi/models.py:140
|
||||||
msgid "club"
|
msgid "club"
|
||||||
msgstr "club"
|
msgstr "club"
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ msgid "comment"
|
|||||||
msgstr "commentaire"
|
msgstr "commentaire"
|
||||||
|
|
||||||
#: accounting/models.py:256 counter/models.py:277 counter/models.py:325
|
#: accounting/models.py:256 counter/models.py:277 counter/models.py:325
|
||||||
#: subscription/models.py:53
|
#: subscription/models.py:54
|
||||||
msgid "payment method"
|
msgid "payment method"
|
||||||
msgstr "méthode de paiement"
|
msgstr "méthode de paiement"
|
||||||
|
|
||||||
@ -174,8 +174,6 @@ msgstr "type de cible"
|
|||||||
|
|
||||||
#: accounting/models.py:267 club/templates/club/club_members.jinja:8
|
#: accounting/models.py:267 club/templates/club/club_members.jinja:8
|
||||||
#: club/templates/club/club_old_members.jinja:8
|
#: club/templates/club/club_old_members.jinja:8
|
||||||
#: core/templates/core/user_clubs.jinja:15
|
|
||||||
#: core/templates/core/user_clubs.jinja:41
|
|
||||||
#: counter/templates/counter/cash_summary_list.jinja:32
|
#: counter/templates/counter/cash_summary_list.jinja:32
|
||||||
#: counter/templates/counter/stats.jinja:15
|
#: counter/templates/counter/stats.jinja:15
|
||||||
#: counter/templates/counter/stats.jinja:52
|
#: counter/templates/counter/stats.jinja:52
|
||||||
@ -188,7 +186,13 @@ msgstr "Utilisateur"
|
|||||||
#: com/templates/com/news_admin_list.jinja:17
|
#: com/templates/com/news_admin_list.jinja:17
|
||||||
#: com/templates/com/news_admin_list.jinja:52
|
#: com/templates/com/news_admin_list.jinja:52
|
||||||
#: com/templates/com/weekmail.jinja:18 com/templates/com/weekmail.jinja:47
|
#: com/templates/com/weekmail.jinja:18 com/templates/com/weekmail.jinja:47
|
||||||
|
#: core/templates/core/user_clubs.jinja:15
|
||||||
|
#: core/templates/core/user_clubs.jinja:41
|
||||||
#: counter/templates/counter/invoices_call.jinja:23
|
#: counter/templates/counter/invoices_call.jinja:23
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:15
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:22
|
||||||
|
#: trombi/templates/trombi/user_profile.jinja:34
|
||||||
|
#: trombi/templates/trombi/user_profile.jinja:38
|
||||||
msgid "Club"
|
msgid "Club"
|
||||||
msgstr "Club"
|
msgstr "Club"
|
||||||
|
|
||||||
@ -341,14 +345,16 @@ msgstr "Compte en banque : "
|
|||||||
#: election/templates/election/election_detail.jinja:280
|
#: election/templates/election/election_detail.jinja:280
|
||||||
#: election/templates/election/election_detail.jinja:330
|
#: election/templates/election/election_detail.jinja:330
|
||||||
#: election/templates/election/election_detail.jinja:378
|
#: election/templates/election/election_detail.jinja:378
|
||||||
#: forum/templates/forum/macros.jinja:21 forum/templates/forum/macros.jinja:123
|
#: forum/templates/forum/macros.jinja:21
|
||||||
|
#: forum/templates/forum/macros.jinja:123
|
||||||
#: launderette/templates/launderette/launderette_admin.jinja:16
|
#: launderette/templates/launderette/launderette_admin.jinja:16
|
||||||
#: launderette/views.py:178 sas/templates/sas/album.jinja:26
|
#: launderette/views.py:178 sas/templates/sas/album.jinja:26
|
||||||
#: sas/templates/sas/moderation.jinja:18 sas/templates/sas/picture.jinja:74
|
#: sas/templates/sas/moderation.jinja:18 sas/templates/sas/picture.jinja:74
|
||||||
#: sas/templates/sas/picture.jinja.py:124
|
#: sas/templates/sas/picture.jinja:124
|
||||||
#: stock/templates/stock/stock_shopping_list.jinja:43
|
#: stock/templates/stock/stock_shopping_list.jinja:43
|
||||||
#: stock/templates/stock/stock_shopping_list.jinja:69
|
#: stock/templates/stock/stock_shopping_list.jinja:69
|
||||||
#: trombi/templates/trombi/detail.jinja:28
|
#: trombi/templates/trombi/detail.jinja:28
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:35
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
@ -390,6 +396,7 @@ msgstr "Nouveau compte club"
|
|||||||
#: launderette/templates/launderette/launderette_list.jinja:16
|
#: launderette/templates/launderette/launderette_list.jinja:16
|
||||||
#: sas/templates/sas/album.jinja:18 sas/templates/sas/picture.jinja:100
|
#: sas/templates/sas/album.jinja:18 sas/templates/sas/picture.jinja:100
|
||||||
#: trombi/templates/trombi/detail.jinja:9
|
#: trombi/templates/trombi/detail.jinja:9
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:34
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Éditer"
|
msgstr "Éditer"
|
||||||
|
|
||||||
@ -496,8 +503,8 @@ msgstr "Non"
|
|||||||
|
|
||||||
#: accounting/templates/accounting/club_account_details.jinja:56
|
#: accounting/templates/accounting/club_account_details.jinja:56
|
||||||
#: com/templates/com/news_admin_list.jinja:38
|
#: com/templates/com/news_admin_list.jinja:38
|
||||||
#: com/templates/com/news_admin_list.jinja:71 core/templates/core/file.jinja:36
|
#: com/templates/com/news_admin_list.jinja:71
|
||||||
#: core/templates/core/page.jinja:28
|
#: core/templates/core/file.jinja:36 core/templates/core/page.jinja:28
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Voir"
|
msgstr "Voir"
|
||||||
|
|
||||||
@ -561,6 +568,7 @@ msgstr "No"
|
|||||||
#: counter/templates/counter/last_ops.jinja:39 sas/views.py:281
|
#: counter/templates/counter/last_ops.jinja:39 sas/views.py:281
|
||||||
#: stock/templates/stock/stock_shopping_list.jinja:25
|
#: stock/templates/stock/stock_shopping_list.jinja:25
|
||||||
#: stock/templates/stock/stock_shopping_list.jinja:54
|
#: stock/templates/stock/stock_shopping_list.jinja:54
|
||||||
|
#: trombi/templates/trombi/user_profile.jinja:40
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Date"
|
msgstr "Date"
|
||||||
|
|
||||||
@ -704,6 +712,7 @@ msgstr "Opération liée : "
|
|||||||
#: forum/templates/forum/reply.jinja:33
|
#: forum/templates/forum/reply.jinja:33
|
||||||
#: subscription/templates/subscription/subscription.jinja:24
|
#: subscription/templates/subscription/subscription.jinja:24
|
||||||
#: trombi/templates/trombi/comment.jinja:26
|
#: trombi/templates/trombi/comment.jinja:26
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:13
|
||||||
#: trombi/templates/trombi/user_tools.jinja:13
|
#: trombi/templates/trombi/user_tools.jinja:13
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Sauver"
|
msgstr "Sauver"
|
||||||
@ -846,11 +855,12 @@ msgstr "Un club avec ce nom UNIX existe déjà."
|
|||||||
#: club/models.py:182 counter/models.py:431 counter/models.py:448
|
#: club/models.py:182 counter/models.py:431 counter/models.py:448
|
||||||
#: eboutic/models.py:38 eboutic/models.py:71 election/models.py:140
|
#: eboutic/models.py:38 eboutic/models.py:71 election/models.py:140
|
||||||
#: launderette/models.py:111 launderette/models.py:148 sas/models.py:156
|
#: launderette/models.py:111 launderette/models.py:148 sas/models.py:156
|
||||||
|
#: trombi/models.py:139
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "nom d'utilisateur"
|
msgstr "nom d'utilisateur"
|
||||||
|
|
||||||
#: club/models.py:186 core/models.py:169 election/models.py:139
|
#: club/models.py:186 core/models.py:169 election/models.py:139
|
||||||
#: election/models.py:155
|
#: election/models.py:155 trombi/models.py:141
|
||||||
msgid "role"
|
msgid "role"
|
||||||
msgstr "rôle"
|
msgstr "rôle"
|
||||||
|
|
||||||
@ -872,7 +882,8 @@ msgstr "L'utilisateur est déjà membre de ce club"
|
|||||||
msgid "past member"
|
msgid "past member"
|
||||||
msgstr "Anciens membres"
|
msgstr "Anciens membres"
|
||||||
|
|
||||||
#: club/templates/club/club_list.jinja:4 club/templates/club/club_list.jinja:24
|
#: club/templates/club/club_list.jinja:4
|
||||||
|
#: club/templates/club/club_list.jinja:24
|
||||||
msgid "Club list"
|
msgid "Club list"
|
||||||
msgstr "Liste des clubs"
|
msgstr "Liste des clubs"
|
||||||
|
|
||||||
@ -893,6 +904,8 @@ msgstr "Membres du club"
|
|||||||
#: club/templates/club/club_old_members.jinja:9
|
#: club/templates/club/club_old_members.jinja:9
|
||||||
#: core/templates/core/user_clubs.jinja:16
|
#: core/templates/core/user_clubs.jinja:16
|
||||||
#: core/templates/core/user_clubs.jinja:42
|
#: core/templates/core/user_clubs.jinja:42
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:23
|
||||||
|
#: trombi/templates/trombi/user_profile.jinja:39
|
||||||
msgid "Role"
|
msgid "Role"
|
||||||
msgstr "Rôle"
|
msgstr "Rôle"
|
||||||
|
|
||||||
@ -934,13 +947,14 @@ msgstr "Du"
|
|||||||
msgid "To"
|
msgid "To"
|
||||||
msgstr "Au"
|
msgstr "Au"
|
||||||
|
|
||||||
#: club/templates/club/club_sellings.jinja:5 club/views.py:84 club/views.py:247
|
#: club/templates/club/club_sellings.jinja:5 club/views.py:84
|
||||||
#: counter/templates/counter/counter_main.jinja:19
|
#: club/views.py:247 counter/templates/counter/counter_main.jinja:19
|
||||||
#: counter/templates/counter/last_ops.jinja:35
|
#: counter/templates/counter/last_ops.jinja:35
|
||||||
msgid "Sellings"
|
msgid "Sellings"
|
||||||
msgstr "Ventes"
|
msgstr "Ventes"
|
||||||
|
|
||||||
#: club/templates/club/club_sellings.jinja:9 club/templates/club/stats.jinja:19
|
#: club/templates/club/club_sellings.jinja:9
|
||||||
|
#: club/templates/club/stats.jinja:19
|
||||||
#: counter/templates/counter/cash_summary_list.jinja:15
|
#: counter/templates/counter/cash_summary_list.jinja:15
|
||||||
msgid "Show"
|
msgid "Show"
|
||||||
msgstr "Montrer"
|
msgstr "Montrer"
|
||||||
@ -1133,7 +1147,7 @@ msgstr "titre"
|
|||||||
msgid "summary"
|
msgid "summary"
|
||||||
msgstr "résumé"
|
msgstr "résumé"
|
||||||
|
|
||||||
#: com/models.py:62 com/models.py:150 trombi/models.py:108
|
#: com/models.py:62 com/models.py:150 trombi/models.py:127
|
||||||
msgid "content"
|
msgid "content"
|
||||||
msgstr "contenu"
|
msgstr "contenu"
|
||||||
|
|
||||||
@ -1143,7 +1157,7 @@ msgstr "contenu"
|
|||||||
msgid "type"
|
msgid "type"
|
||||||
msgstr "type"
|
msgstr "type"
|
||||||
|
|
||||||
#: com/models.py:65 com/models.py:151 trombi/models.py:106
|
#: com/models.py:65 com/models.py:151 trombi/models.py:125
|
||||||
msgid "author"
|
msgid "author"
|
||||||
msgstr "auteur"
|
msgstr "auteur"
|
||||||
|
|
||||||
@ -1200,8 +1214,9 @@ msgid "News admin"
|
|||||||
msgstr "Administration des nouvelles"
|
msgstr "Administration des nouvelles"
|
||||||
|
|
||||||
#: com/templates/com/news_admin_list.jinja:9
|
#: com/templates/com/news_admin_list.jinja:9
|
||||||
#: com/templates/com/news_detail.jinja:5 com/templates/com/news_detail.jinja:11
|
#: com/templates/com/news_detail.jinja:5
|
||||||
#: com/templates/com/news_list.jinja:4 com/templates/com/news_list.jinja:28
|
#: com/templates/com/news_detail.jinja:11 com/templates/com/news_list.jinja:4
|
||||||
|
#: com/templates/com/news_list.jinja:28
|
||||||
msgid "News"
|
msgid "News"
|
||||||
msgstr "Nouvelles"
|
msgstr "Nouvelles"
|
||||||
|
|
||||||
@ -1888,7 +1903,8 @@ msgstr "S'enregister"
|
|||||||
msgid "View more"
|
msgid "View more"
|
||||||
msgstr "Voir plus"
|
msgstr "Voir plus"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:62 forum/templates/forum/last_unread.jinja:16
|
#: core/templates/core/base.jinja:62
|
||||||
|
#: forum/templates/forum/last_unread.jinja:16
|
||||||
msgid "Mark all as read"
|
msgid "Mark all as read"
|
||||||
msgstr "Marquer tout commme lu"
|
msgstr "Marquer tout commme lu"
|
||||||
|
|
||||||
@ -1920,7 +1936,7 @@ msgstr "SAS"
|
|||||||
|
|
||||||
#: core/templates/core/base.jinja:94 forum/templates/forum/forum.jinja:10
|
#: core/templates/core/base.jinja:94 forum/templates/forum/forum.jinja:10
|
||||||
#: forum/templates/forum/last_unread.jinja:13
|
#: forum/templates/forum/last_unread.jinja:13
|
||||||
#: forum/templates/forum/main.jinja:6 forum/templates/forum/main.jinja.py:11
|
#: forum/templates/forum/main.jinja:6 forum/templates/forum/main.jinja:11
|
||||||
#: forum/templates/forum/main.jinja:14 forum/templates/forum/reply.jinja:15
|
#: forum/templates/forum/main.jinja:14 forum/templates/forum/reply.jinja:15
|
||||||
#: forum/templates/forum/topic.jinja:30
|
#: forum/templates/forum/topic.jinja:30
|
||||||
msgid "Forum"
|
msgid "Forum"
|
||||||
@ -2170,11 +2186,13 @@ msgstr "login"
|
|||||||
msgid "Lost password?"
|
msgid "Lost password?"
|
||||||
msgstr "Mot de passe perdu ?"
|
msgstr "Mot de passe perdu ?"
|
||||||
|
|
||||||
#: core/templates/core/macros.jinja:31 core/templates/core/user_detail.jinja:27
|
#: core/templates/core/macros.jinja:31
|
||||||
|
#: core/templates/core/user_detail.jinja:27
|
||||||
msgid "Born: "
|
msgid "Born: "
|
||||||
msgstr "Né le : "
|
msgstr "Né le : "
|
||||||
|
|
||||||
#: core/templates/core/macros.jinja:35 core/templates/core/user_detail.jinja:48
|
#: core/templates/core/macros.jinja:35
|
||||||
|
#: core/templates/core/user_detail.jinja:48
|
||||||
msgid "Promo: "
|
msgid "Promo: "
|
||||||
msgstr "Promo : "
|
msgstr "Promo : "
|
||||||
|
|
||||||
@ -2844,7 +2862,7 @@ msgstr "Parrain"
|
|||||||
msgid "Godchild"
|
msgid "Godchild"
|
||||||
msgstr "Fillot"
|
msgstr "Fillot"
|
||||||
|
|
||||||
#: core/views/user.py:165
|
#: core/views/user.py:165 trombi/templates/trombi/user_profile.jinja:11
|
||||||
msgid "Pictures"
|
msgid "Pictures"
|
||||||
msgstr "Photos"
|
msgstr "Photos"
|
||||||
|
|
||||||
@ -4394,35 +4412,35 @@ msgstr " demandé"
|
|||||||
msgid "%(effective_quantity)s left"
|
msgid "%(effective_quantity)s left"
|
||||||
msgstr "%(effective_quantity)s restant"
|
msgstr "%(effective_quantity)s restant"
|
||||||
|
|
||||||
#: subscription/models.py:40
|
#: subscription/models.py:41
|
||||||
msgid "Bad subscription type"
|
msgid "Bad subscription type"
|
||||||
msgstr "Mauvais type de cotisation"
|
msgstr "Mauvais type de cotisation"
|
||||||
|
|
||||||
#: subscription/models.py:44
|
#: subscription/models.py:45
|
||||||
msgid "Bad payment method"
|
msgid "Bad payment method"
|
||||||
msgstr "Mauvais type de paiement"
|
msgstr "Mauvais type de paiement"
|
||||||
|
|
||||||
#: subscription/models.py:48
|
#: subscription/models.py:49
|
||||||
msgid "subscription type"
|
msgid "subscription type"
|
||||||
msgstr "type d'inscription"
|
msgstr "type d'inscription"
|
||||||
|
|
||||||
#: subscription/models.py:51
|
#: subscription/models.py:52
|
||||||
msgid "subscription start"
|
msgid "subscription start"
|
||||||
msgstr "début de la cotisation"
|
msgstr "début de la cotisation"
|
||||||
|
|
||||||
#: subscription/models.py:52
|
#: subscription/models.py:53
|
||||||
msgid "subscription end"
|
msgid "subscription end"
|
||||||
msgstr "fin de la cotisation"
|
msgstr "fin de la cotisation"
|
||||||
|
|
||||||
#: subscription/models.py:57
|
#: subscription/models.py:58
|
||||||
msgid "location"
|
msgid "location"
|
||||||
msgstr "lieu"
|
msgstr "lieu"
|
||||||
|
|
||||||
#: subscription/models.py:66
|
#: subscription/models.py:67
|
||||||
msgid "You can not subscribe many time for the same period"
|
msgid "You can not subscribe many time for the same period"
|
||||||
msgstr "Vous ne pouvez pas cotiser plusieurs fois pour la même période"
|
msgstr "Vous ne pouvez pas cotiser plusieurs fois pour la même période"
|
||||||
|
|
||||||
#: subscription/models.py:70
|
#: subscription/models.py:71
|
||||||
msgid "Subscription error"
|
msgid "Subscription error"
|
||||||
msgstr "Erreur de cotisation"
|
msgstr "Erreur de cotisation"
|
||||||
|
|
||||||
@ -4452,11 +4470,11 @@ msgid "You must either choose an existing user or create a new one properly"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous devez soit choisir un utilisateur existant, soit en créer un proprement"
|
"Vous devez soit choisir un utilisateur existant, soit en créer un proprement"
|
||||||
|
|
||||||
#: trombi/models.py:51
|
#: trombi/models.py:52
|
||||||
msgid "subscription deadline"
|
msgid "subscription deadline"
|
||||||
msgstr "fin des inscriptions"
|
msgstr "fin des inscriptions"
|
||||||
|
|
||||||
#: trombi/models.py:52
|
#: trombi/models.py:53
|
||||||
msgid ""
|
msgid ""
|
||||||
"Before this date, users are allowed to subscribe to this Trombi. After this "
|
"Before this date, users are allowed to subscribe to this Trombi. After this "
|
||||||
"date, users subscribed will be allowed to comment on each other."
|
"date, users subscribed will be allowed to comment on each other."
|
||||||
@ -4465,46 +4483,46 @@ msgstr ""
|
|||||||
"Après cette date, les utilisateurs inscrits peuvent se soumettre des "
|
"Après cette date, les utilisateurs inscrits peuvent se soumettre des "
|
||||||
"commentaires entre eux."
|
"commentaires entre eux."
|
||||||
|
|
||||||
#: trombi/models.py:55
|
#: trombi/models.py:56
|
||||||
msgid "comments deadline"
|
msgid "comments deadline"
|
||||||
msgstr "fin des commentaires"
|
msgstr "fin des commentaires"
|
||||||
|
|
||||||
#: trombi/models.py:56
|
#: trombi/models.py:57
|
||||||
msgid "After this date, users won't be able to make comments anymore."
|
msgid "After this date, users won't be able to make comments anymore."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Après cette date, les utilisateurs ne peuvent plus faire de commentaires."
|
"Après cette date, les utilisateurs ne peuvent plus faire de commentaires."
|
||||||
|
|
||||||
#: trombi/models.py:58
|
#: trombi/models.py:59
|
||||||
msgid "maximum characters"
|
msgid "maximum characters"
|
||||||
msgstr "nombre de caractères max"
|
msgstr "nombre de caractères max"
|
||||||
|
|
||||||
#: trombi/models.py:59
|
#: trombi/models.py:60
|
||||||
msgid "Maximum number of characters allowed in a comment."
|
msgid "Maximum number of characters allowed in a comment."
|
||||||
msgstr "Nombre maximum de caractères autorisés dans un commentaire."
|
msgstr "Nombre maximum de caractères autorisés dans un commentaire."
|
||||||
|
|
||||||
#: trombi/models.py:60
|
#: trombi/models.py:61
|
||||||
msgid "show users profiles to each other"
|
msgid "show users profiles to each other"
|
||||||
msgstr "montrer les profils aux inscrits"
|
msgstr "montrer les profils aux inscrits"
|
||||||
|
|
||||||
#: trombi/models.py:71
|
#: trombi/models.py:72
|
||||||
msgid ""
|
msgid ""
|
||||||
"Closing the subscriptions after the comments is definitively not a good idea."
|
"Closing the subscriptions after the comments is definitively not a good idea."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Fermer les inscriptions après les commentaires est vraiment une idée pourrie."
|
"Fermer les inscriptions après les commentaires est vraiment une idée pourrie."
|
||||||
|
|
||||||
#: trombi/models.py:91
|
#: trombi/models.py:92
|
||||||
msgid "trombi user"
|
msgid "trombi user"
|
||||||
msgstr "utilisateur trombi"
|
msgstr "utilisateur trombi"
|
||||||
|
|
||||||
#: trombi/models.py:92
|
#: trombi/models.py:93
|
||||||
msgid "trombi"
|
msgid "trombi"
|
||||||
msgstr "trombi"
|
msgstr "trombi"
|
||||||
|
|
||||||
#: trombi/models.py:93
|
#: trombi/models.py:94
|
||||||
msgid "profile pict"
|
msgid "profile pict"
|
||||||
msgstr "photo de profil"
|
msgstr "photo de profil"
|
||||||
|
|
||||||
#: trombi/models.py:94
|
#: trombi/models.py:95
|
||||||
msgid ""
|
msgid ""
|
||||||
"The profile picture you want in the trombi (warning: this picture may be "
|
"The profile picture you want in the trombi (warning: this picture may be "
|
||||||
"published)"
|
"published)"
|
||||||
@ -4512,11 +4530,11 @@ msgstr ""
|
|||||||
"La photo de profil que vous souhaitez voir dans le Trombi (attention: cette "
|
"La photo de profil que vous souhaitez voir dans le Trombi (attention: cette "
|
||||||
"photo risque d'être publiée)"
|
"photo risque d'être publiée)"
|
||||||
|
|
||||||
#: trombi/models.py:95
|
#: trombi/models.py:96
|
||||||
msgid "scrub pict"
|
msgid "scrub pict"
|
||||||
msgstr "photo de blouse"
|
msgstr "photo de blouse"
|
||||||
|
|
||||||
#: trombi/models.py:96
|
#: trombi/models.py:97
|
||||||
msgid ""
|
msgid ""
|
||||||
"The scrub picture you want in the trombi (warning: this picture may be "
|
"The scrub picture you want in the trombi (warning: this picture may be "
|
||||||
"published)"
|
"published)"
|
||||||
@ -4524,14 +4542,22 @@ msgstr ""
|
|||||||
"La photo de blouse que vous souhaitez voir dans le Trombi (attention: cette "
|
"La photo de blouse que vous souhaitez voir dans le Trombi (attention: cette "
|
||||||
"photo risque d'être publiée)"
|
"photo risque d'être publiée)"
|
||||||
|
|
||||||
#: trombi/models.py:107
|
#: trombi/models.py:126
|
||||||
msgid "target"
|
msgid "target"
|
||||||
msgstr "cible"
|
msgstr "cible"
|
||||||
|
|
||||||
#: trombi/models.py:109
|
#: trombi/models.py:128
|
||||||
msgid "is the comment moderated"
|
msgid "is the comment moderated"
|
||||||
msgstr "le commentaire est modéré"
|
msgstr "le commentaire est modéré"
|
||||||
|
|
||||||
|
#: trombi/models.py:142
|
||||||
|
msgid "start"
|
||||||
|
msgstr "début"
|
||||||
|
|
||||||
|
#: trombi/models.py:143
|
||||||
|
msgid "end"
|
||||||
|
msgstr "fin"
|
||||||
|
|
||||||
#: trombi/templates/trombi/comment_moderation.jinja:4
|
#: trombi/templates/trombi/comment_moderation.jinja:4
|
||||||
#: trombi/templates/trombi/comment_moderation.jinja:8
|
#: trombi/templates/trombi/comment_moderation.jinja:8
|
||||||
msgid "Moderate Trombi comments"
|
msgid "Moderate Trombi comments"
|
||||||
@ -4563,16 +4589,34 @@ msgstr "Fin des inscriptions : "
|
|||||||
msgid "Comment deadline: "
|
msgid "Comment deadline: "
|
||||||
msgstr "Fin des commentaires : "
|
msgstr "Fin des commentaires : "
|
||||||
|
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:4
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:8
|
||||||
|
msgid "Edit profile"
|
||||||
|
msgstr "Éditer mon profil"
|
||||||
|
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:9
|
||||||
|
#: trombi/templates/trombi/user_profile.jinja:9
|
||||||
|
msgid "Back to tools"
|
||||||
|
msgstr "Retour aux outils"
|
||||||
|
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:17
|
||||||
|
msgid ""
|
||||||
|
"Reset club memberships in Trombi (delete exising ones, does not impact real "
|
||||||
|
"club memberships)"
|
||||||
|
msgstr ""
|
||||||
|
"Réinitialiser les participations aux clubs dans le Trombi (supprime les existantes, n'impacte "
|
||||||
|
"pas les vraies appartenances du site)"
|
||||||
|
|
||||||
|
#: trombi/templates/trombi/edit_profile.jinja:24
|
||||||
|
msgid "Dates"
|
||||||
|
msgstr "Dates"
|
||||||
|
|
||||||
#: trombi/templates/trombi/user_profile.jinja:4
|
#: trombi/templates/trombi/user_profile.jinja:4
|
||||||
#: trombi/templates/trombi/user_profile.jinja:8
|
#: trombi/templates/trombi/user_profile.jinja:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(user_name)s's Trombi profile"
|
msgid "%(user_name)s's Trombi profile"
|
||||||
msgstr "Profil Trombi de %(user_name)s"
|
msgstr "Profil Trombi de %(user_name)s"
|
||||||
|
|
||||||
#: trombi/templates/trombi/user_profile.jinja:9
|
|
||||||
msgid "Back to tools"
|
|
||||||
msgstr "Retour aux outils"
|
|
||||||
|
|
||||||
#: trombi/templates/trombi/user_tools.jinja:4
|
#: trombi/templates/trombi/user_tools.jinja:4
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(user_name)s's Trombi"
|
msgid "%(user_name)s's Trombi"
|
||||||
@ -4667,7 +4711,7 @@ msgstr "Téléphone"
|
|||||||
msgid "Native town"
|
msgid "Native town"
|
||||||
msgstr "Ville d'origine"
|
msgstr "Ville d'origine"
|
||||||
|
|
||||||
#: trombi/views.py:246
|
#: trombi/views.py:269
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can not yet write comment, you must wait for the subscription deadline "
|
"You can not yet write comment, you must wait for the subscription deadline "
|
||||||
"to be passed."
|
"to be passed."
|
||||||
@ -4675,11 +4719,11 @@ msgstr ""
|
|||||||
"Vous ne pouvez pas encore écrire de commentaires, vous devez attendre la fin "
|
"Vous ne pouvez pas encore écrire de commentaires, vous devez attendre la fin "
|
||||||
"des inscriptions"
|
"des inscriptions"
|
||||||
|
|
||||||
#: trombi/views.py:249
|
#: trombi/views.py:272
|
||||||
msgid "You can not write comment anymore, the deadline is already passed."
|
msgid "You can not write comment anymore, the deadline is already passed."
|
||||||
msgstr "Vous ne pouvez plus écrire de commentaires, la date est passée."
|
msgstr "Vous ne pouvez plus écrire de commentaires, la date est passée."
|
||||||
|
|
||||||
#: trombi/views.py:256
|
#: trombi/views.py:279
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Maximum characters: %(max_length)s"
|
msgid "Maximum characters: %(max_length)s"
|
||||||
msgstr "Nombre de caractères max: %(max_length)s"
|
msgstr "Nombre de caractères max: %(max_length)s"
|
||||||
|
28
trombi/migrations/0004_trombiclubmembership.py
Normal file
28
trombi/migrations/0004_trombiclubmembership.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('trombi', '0003_trombicomment_is_moderated'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='TrombiClubMembership',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('club', models.CharField(default='', max_length=32, verbose_name='club')),
|
||||||
|
('role', models.CharField(default='', max_length=64, verbose_name='role')),
|
||||||
|
('start', models.CharField(default='', max_length=16, verbose_name='start')),
|
||||||
|
('end', models.CharField(default='', max_length=16, verbose_name='end')),
|
||||||
|
('user', models.ForeignKey(verbose_name='user', related_name='memberships', to='trombi.TrombiUser')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['id'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
@ -31,6 +31,7 @@ from django.core.exceptions import ValidationError
|
|||||||
from datetime import timedelta, date
|
from datetime import timedelta, date
|
||||||
|
|
||||||
from core.models import User
|
from core.models import User
|
||||||
|
from core.utils import get_start_of_semester, get_semester
|
||||||
from club.models import Club
|
from club.models import Club
|
||||||
|
|
||||||
class TrombiManager(models.Manager):
|
class TrombiManager(models.Manager):
|
||||||
@ -98,6 +99,24 @@ class TrombiUser(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.user)
|
return str(self.user)
|
||||||
|
|
||||||
|
def make_memberships(self):
|
||||||
|
self.memberships.all().delete()
|
||||||
|
for m in self.user.memberships.filter(role__gt=settings.SITH_MAXIMUM_FREE_ROLE).order_by('end_date'):
|
||||||
|
role = str(settings.SITH_CLUB_ROLES[m.role])
|
||||||
|
if m.description:
|
||||||
|
role += " (%s)" % m.description
|
||||||
|
if m.end_date:
|
||||||
|
end_date = get_semester(m.end_date)
|
||||||
|
else:
|
||||||
|
end_date = ""
|
||||||
|
TrombiClubMembership(
|
||||||
|
user=self,
|
||||||
|
club=str(m.club),
|
||||||
|
role=role[:64],
|
||||||
|
start=get_semester(m.start_date),
|
||||||
|
end=end_date,
|
||||||
|
).save()
|
||||||
|
|
||||||
class TrombiComment(models.Model):
|
class TrombiComment(models.Model):
|
||||||
"""
|
"""
|
||||||
This represent a comment given by someone to someone else in the same Trombi
|
This represent a comment given by someone to someone else in the same Trombi
|
||||||
@ -113,3 +132,25 @@ class TrombiComment(models.Model):
|
|||||||
return False
|
return False
|
||||||
return user.id == self.author.user.id or user.can_edit(self.author.trombi)
|
return user.id == self.author.user.id or user.can_edit(self.author.trombi)
|
||||||
|
|
||||||
|
class TrombiClubMembership(models.Model):
|
||||||
|
"""
|
||||||
|
This represent a membership to a club
|
||||||
|
"""
|
||||||
|
user = models.ForeignKey(TrombiUser, verbose_name=_("user"), related_name='memberships')
|
||||||
|
club = models.CharField(_("club"), max_length=32, default="")
|
||||||
|
role = models.CharField(_("role"), max_length=64, default="")
|
||||||
|
start = models.CharField(_("start"), max_length=16, default="")
|
||||||
|
end = models.CharField(_("end"), max_length=16, default="")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
ordering = ['id']
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "%s - %s - %s (%s)" % (self.user, self.club, self.role, self.start)
|
||||||
|
|
||||||
|
def can_be_edited_by(self, user):
|
||||||
|
return user.id == self.user.user.id or user.can_edit(self.user.trombi)
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return reverse('trombi:profile')
|
||||||
|
|
||||||
|
44
trombi/templates/trombi/edit_profile.jinja
Normal file
44
trombi/templates/trombi/edit_profile.jinja
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{% extends "core/base.jinja" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
{% trans %}Edit profile{% endtrans %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h2>{% trans %}Edit profile{% endtrans %}</h2>
|
||||||
|
<p> <a href="{{ url('trombi:user_tools') }}">{% trans %}Back to tools{% endtrans %}</a></p>
|
||||||
|
<form action="" method="post" enctype="multipart/form-data">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form.as_p() }}
|
||||||
|
<p><input type="submit" value="{% trans %}Save{% endtrans %}" /></p>
|
||||||
|
</form>
|
||||||
|
<h4>{% trans %}Club{% endtrans %}</h4>
|
||||||
|
<a href="{{ url('trombi:reset_memberships') }}">
|
||||||
|
{% trans %}Reset club memberships in Trombi (delete exising ones, does not impact real club memberships){% endtrans %}
|
||||||
|
</a>
|
||||||
|
<table style="max-width: 80%; margin: auto;">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>{% trans %}Club{% endtrans %}</td>
|
||||||
|
<td>{% trans %}Role{% endtrans %}</td>
|
||||||
|
<td>{% trans %}Dates{% endtrans %}</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for m in user.trombi_user.memberships.all() %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ m.club }}</td>
|
||||||
|
<td>{{ m.role }}</td>
|
||||||
|
<td>{{ m.start }} - {{ m.end }}</td>
|
||||||
|
<td>
|
||||||
|
<a href="{{ url('trombi:edit_membership', membership_id=m.id) }}">{% trans %}Edit{% endtrans %}</a>
|
||||||
|
<a href="{{ url('trombi:delete_membership', membership_id=m.id) }}">{% trans %}Delete{% endtrans %}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
|||||||
<h3>{% trans user_name=trombi_user.user.get_display_name() %}{{ user_name }}'s Trombi profile{% endtrans %}</h3>
|
<h3>{% trans user_name=trombi_user.user.get_display_name() %}{{ user_name }}'s Trombi profile{% endtrans %}</h3>
|
||||||
<p> <a href="{{ url('trombi:user_tools') }}">{% trans %}Back to tools{% endtrans %}</a></p>
|
<p> <a href="{{ url('trombi:user_tools') }}">{% trans %}Back to tools{% endtrans %}</a></p>
|
||||||
<div>
|
<div>
|
||||||
|
<h4>{% trans %}Pictures{% endtrans %}</h4>
|
||||||
{% set profile_file = None %}
|
{% set profile_file = None %}
|
||||||
{% set scrub_file = None %}
|
{% set scrub_file = None %}
|
||||||
{% if trombi_user.profile_pict %}
|
{% if trombi_user.profile_pict %}
|
||||||
@ -20,10 +21,36 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
{% set scrub_file = static('core/img/na.gif') %}
|
{% set scrub_file = static('core/img/na.gif') %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div style="max-width: 410px; margin: auto;">
|
<div style="max-width: 410px; margin: auto; text-align: center;">
|
||||||
<img src="{{ profile_file }}" alt="" style="max-width: 200px">
|
<div>
|
||||||
<img src="{{ scrub_file }}" alt="" style="max-width: 200px">
|
<img src="{{ profile_file }}" alt="" style="max-width: 200px">
|
||||||
|
<img src="{{ scrub_file }}" alt="" style="max-width: 200px">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<em>{{ trombi_user.user.get_short_name() }}</em>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% if trombi_user.memberships.exists() %}
|
||||||
|
<h4>{% trans %}Club{% endtrans %}</h4>
|
||||||
|
<table style="max-width: 70%; margin: auto;">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>{% trans %}Club{% endtrans %}</td>
|
||||||
|
<td>{% trans %}Role{% endtrans %}</td>
|
||||||
|
<td>{% trans %}Date{% endtrans %}</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for m in trombi_user.memberships.all() %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ m.club }}</td>
|
||||||
|
<td>{{ m.role }}</td>
|
||||||
|
<td>{{ m.start }} - {{ m.end }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
<dl>
|
<dl>
|
||||||
{% for c in trombi_user.received_comments.filter(is_moderated=True) %}
|
{% for c in trombi_user.received_comments.filter(is_moderated=True) %}
|
||||||
<dt style="font-weight: bold; font-size: 110%">{{ c.author.user.get_display_name() }}</dt>
|
<dt style="font-weight: bold; font-size: 110%">{{ c.author.user.get_display_name() }}</dt>
|
||||||
|
@ -39,5 +39,8 @@ urlpatterns = [
|
|||||||
url(r'^tools$', UserTrombiToolsView.as_view(), name='user_tools'),
|
url(r'^tools$', UserTrombiToolsView.as_view(), name='user_tools'),
|
||||||
url(r'^profile$', UserTrombiEditProfileView.as_view(), name='profile'),
|
url(r'^profile$', UserTrombiEditProfileView.as_view(), name='profile'),
|
||||||
url(r'^pictures$', UserTrombiEditPicturesView.as_view(), name='pictures'),
|
url(r'^pictures$', UserTrombiEditPicturesView.as_view(), name='pictures'),
|
||||||
|
url(r'^reset_memberships$', UserTrombiResetClubMembershipsView.as_view(), name='reset_memberships'),
|
||||||
|
url(r'^membership/(?P<membership_id>[0-9]+)/edit$', UserTrombiEditMembershipView.as_view(), name='edit_membership'),
|
||||||
|
url(r'^membership/(?P<membership_id>[0-9]+)/delete$', UserTrombiDeleteMembershipView.as_view(), name='delete_membership'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ from django.forms.models import modelform_factory
|
|||||||
|
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
from trombi.models import Trombi, TrombiUser, TrombiComment
|
from trombi.models import Trombi, TrombiUser, TrombiComment, TrombiClubMembership
|
||||||
from core.views.forms import SelectFile, SelectDate
|
from core.views.forms import SelectFile, SelectDate
|
||||||
from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, TabedViewMixin, CanCreateMixin, QuickNotifMixin
|
from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, TabedViewMixin, CanCreateMixin, QuickNotifMixin
|
||||||
from core.models import User
|
from core.models import User
|
||||||
@ -210,7 +210,7 @@ class UserTrombiEditProfileView(UpdateView):
|
|||||||
'phone': _("Phone"),
|
'phone': _("Phone"),
|
||||||
'parent_address': _("Native town"),
|
'parent_address': _("Native town"),
|
||||||
})
|
})
|
||||||
template_name = "core/edit.jinja"
|
template_name = "trombi/edit_profile.jinja"
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
return self.request.user
|
return self.request.user
|
||||||
@ -218,6 +218,29 @@ class UserTrombiEditProfileView(UpdateView):
|
|||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse('trombi:user_tools')+"?qn_success"
|
return reverse('trombi:user_tools')+"?qn_success"
|
||||||
|
|
||||||
|
class UserTrombiResetClubMembershipsView(RedirectView):
|
||||||
|
permanent = False
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
user = self.request.user.trombi_user
|
||||||
|
user.make_memberships()
|
||||||
|
return redirect(self.get_success_url())
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return reverse('trombi:user_tools')+"?qn_success"
|
||||||
|
|
||||||
|
class UserTrombiDeleteMembershipView(DeleteView, CanEditMixin):
|
||||||
|
model = TrombiClubMembership
|
||||||
|
pk_url_kwarg = "membership_id"
|
||||||
|
template_name = "core/delete_confirm.jinja"
|
||||||
|
success_url = reverse_lazy('trombi:profile')
|
||||||
|
|
||||||
|
class UserTrombiEditMembershipView(UpdateView, CanEditMixin):
|
||||||
|
model = TrombiClubMembership
|
||||||
|
pk_url_kwarg = "membership_id"
|
||||||
|
fields = ['role', 'start', 'end']
|
||||||
|
template_name = "core/edit.jinja"
|
||||||
|
|
||||||
class UserTrombiProfileView(DetailView):
|
class UserTrombiProfileView(DetailView):
|
||||||
model = TrombiUser
|
model = TrombiUser
|
||||||
pk_url_kwarg = "user_id"
|
pk_url_kwarg = "user_id"
|
||||||
|
Loading…
Reference in New Issue
Block a user