Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
AE UTBM
Sith
Commits
f26f2f42
Commit
f26f2f42
authored
Jun 12, 2017
by
Skia
🤘
Browse files
trombi: add custom club memberships
Signed-off-by:
Skia
<
skia@libskia.so
>
parent
5df9be91
Changes
8
Hide whitespace changes
Inline
Side-by-side
core/utils.py
View file @
f26f2f42
...
...
@@ -59,6 +59,13 @@ def get_start_of_semester(d=date.today()):
else
:
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
):
if
width
>
height
:
ratio
=
long_edge
*
1.
/
width
...
...
locale/fr/LC_MESSAGES/django.po
View file @
f26f2f42
...
...
@@ -6,7 +6,7 @@
msgid
""
msgstr
""
"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
"
"Last-Translator: Skia <skia@libskia.so>
\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
#: 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"
msgstr
"club"
...
...
@@ -139,7 +139,7 @@ msgid "comment"
msgstr
"commentaire"
#: accounting/models.py:256 counter/models.py:277 counter/models.py:325
#: subscription/models.py:5
3
#: subscription/models.py:5
4
msgid
"payment method"
msgstr
"méthode de paiement"
...
...
@@ -174,8 +174,6 @@ msgstr "type de cible"
#: accounting/models.py:267 club/templates/club/club_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/stats.jinja:15
#: 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:52
#: 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
#: 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"
msgstr
"Club"
...
...
@@ -341,14 +345,16 @@ msgstr "Compte en banque : "
#: election/templates/election/election_detail.jinja:280
#: election/templates/election/election_detail.jinja:330
#: 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/views.py:178 sas/templates/sas/album.jinja:26
#: 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:69
#: trombi/templates/trombi/detail.jinja:28
#: trombi/templates/trombi/edit_profile.jinja:35
msgid
"Delete"
msgstr
"Supprimer"
...
...
@@ -390,6 +396,7 @@ msgstr "Nouveau compte club"
#: launderette/templates/launderette/launderette_list.jinja:16
#: sas/templates/sas/album.jinja:18 sas/templates/sas/picture.jinja:100
#: trombi/templates/trombi/detail.jinja:9
#: trombi/templates/trombi/edit_profile.jinja:34
msgid
"Edit"
msgstr
"Éditer"
...
...
@@ -496,8 +503,8 @@ msgstr "Non"
#: accounting/templates/accounting/club_account_details.jinja:56
#: com/templates/com/news_admin_list.jinja:38
#: com/templates/com/news_admin_list.jinja:71
core/templates/core/file.jinja:36
#: core/templates/core/page.jinja:28
#: com/templates/com/news_admin_list.jinja:71
#:
core/templates/core/file.jinja:36
core/templates/core/page.jinja:28
msgid
"View"
msgstr
"Voir"
...
...
@@ -561,6 +568,7 @@ msgstr "No"
#: 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:54
#: trombi/templates/trombi/user_profile.jinja:40
msgid
"Date"
msgstr
"Date"
...
...
@@ -704,6 +712,7 @@ msgstr "Opération liée : "
#: forum/templates/forum/reply.jinja:33
#: subscription/templates/subscription/subscription.jinja:24
#: trombi/templates/trombi/comment.jinja:26
#: trombi/templates/trombi/edit_profile.jinja:13
#: trombi/templates/trombi/user_tools.jinja:13
msgid
"Save"
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
#: eboutic/models.py:38 eboutic/models.py:71 election/models.py:140
#: launderette/models.py:111 launderette/models.py:148 sas/models.py:156
#: trombi/models.py:139
msgid
"user"
msgstr
"nom d'utilisateur"
#: 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"
msgstr
"rôle"
...
...
@@ -872,7 +882,8 @@ msgstr "L'utilisateur est déjà membre de ce club"
msgid
"past member"
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"
msgstr
"Liste des clubs"
...
...
@@ -893,6 +904,8 @@ msgstr "Membres du club"
#: club/templates/club/club_old_members.jinja:9
#: core/templates/core/user_clubs.jinja:16
#: core/templates/core/user_clubs.jinja:42
#: trombi/templates/trombi/edit_profile.jinja:23
#: trombi/templates/trombi/user_profile.jinja:39
msgid
"Role"
msgstr
"Rôle"
...
...
@@ -934,13 +947,14 @@ msgstr "Du"
msgid
"To"
msgstr
"Au"
#: club/templates/club/club_sellings.jinja:5 club/views.py:84
club/views.py:247
#: counter/templates/counter/counter_main.jinja:19
#: club/templates/club/club_sellings.jinja:5 club/views.py:84
#:
club/views.py:247
counter/templates/counter/counter_main.jinja:19
#: counter/templates/counter/last_ops.jinja:35
msgid
"Sellings"
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
msgid
"Show"
msgstr
"Montrer"
...
...
@@ -1133,7 +1147,7 @@ msgstr "titre"
msgid
"summary"
msgstr
"résumé"
#: com/models.py:62 com/models.py:150 trombi/models.py:1
08
#: com/models.py:62 com/models.py:150 trombi/models.py:1
27
msgid
"content"
msgstr
"contenu"
...
...
@@ -1143,7 +1157,7 @@ msgstr "contenu"
msgid
"type"
msgstr
"type"
#: com/models.py:65 com/models.py:151 trombi/models.py:1
06
#: com/models.py:65 com/models.py:151 trombi/models.py:1
25
msgid
"author"
msgstr
"auteur"
...
...
@@ -1200,8 +1214,9 @@ msgid "News admin"
msgstr
"Administration des nouvelles"
#: 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_list.jinja:4 com/templates/com/news_list.jinja:28
#: com/templates/com/news_detail.jinja:5
#: com/templates/com/news_detail.jinja:11 com/templates/com/news_list.jinja:4
#: com/templates/com/news_list.jinja:28
msgid
"News"
msgstr
"Nouvelles"
...
...
@@ -1888,7 +1903,8 @@ msgstr "S'enregister"
msgid
"View more"
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"
msgstr
"Marquer tout commme lu"
...
...
@@ -1920,7 +1936,7 @@ msgstr "SAS"
#: core/templates/core/base.jinja:94 forum/templates/forum/forum.jinja:10
#: 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/topic.jinja:30
msgid
"Forum"
...
...
@@ -2170,11 +2186,13 @@ msgstr "login"
msgid
"Lost password?"
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: "
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: "
msgstr
"Promo : "
...
...
@@ -2844,7 +2862,7 @@ msgstr "Parrain"
msgid
"Godchild"
msgstr
"Fillot"
#: core/views/user.py:165
#: core/views/user.py:165
trombi/templates/trombi/user_profile.jinja:11
msgid
"Pictures"
msgstr
"Photos"
...
...
@@ -4394,35 +4412,35 @@ msgstr " demandé"
msgid
"%(effective_quantity)s left"
msgstr
"%(effective_quantity)s restant"
#: subscription/models.py:4
0
#: subscription/models.py:4
1
msgid
"Bad subscription type"
msgstr
"Mauvais type de cotisation"
#: subscription/models.py:4
4
#: subscription/models.py:4
5
msgid
"Bad payment method"
msgstr
"Mauvais type de paiement"
#: subscription/models.py:4
8
#: subscription/models.py:4
9
msgid
"subscription type"
msgstr
"type d'inscription"
#: subscription/models.py:5
1
#: subscription/models.py:5
2
msgid
"subscription start"
msgstr
"début de la cotisation"
#: subscription/models.py:5
2
#: subscription/models.py:5
3
msgid
"subscription end"
msgstr
"fin de la cotisation"
#: subscription/models.py:5
7
#: subscription/models.py:5
8
msgid
"location"
msgstr
"lieu"
#: subscription/models.py:6
6
#: subscription/models.py:6
7
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"
#: subscription/models.py:7
0
#: subscription/models.py:7
1
msgid
"Subscription error"
msgstr
"Erreur de cotisation"
...
...
@@ -4452,11 +4470,11 @@ msgid "You must either choose an existing user or create a new one properly"
msgstr
""
"Vous devez soit choisir un utilisateur existant, soit en créer un proprement"
#: trombi/models.py:5
1
#: trombi/models.py:5
2
msgid
"subscription deadline"
msgstr
"fin des inscriptions"
#: trombi/models.py:5
2
#: trombi/models.py:5
3
msgid
""
"Before this date, users are allowed to subscribe to this Trombi. After this "
"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 "
"commentaires entre eux."
#: trombi/models.py:5
5
#: trombi/models.py:5
6
msgid
"comments deadline"
msgstr
"fin des commentaires"
#: trombi/models.py:5
6
#: trombi/models.py:5
7
msgid
"After this date, users won't be able to make comments anymore."
msgstr
""
"Après cette date, les utilisateurs ne peuvent plus faire de commentaires."
#: trombi/models.py:5
8
#: trombi/models.py:5
9
msgid
"maximum characters"
msgstr
"nombre de caractères max"
#: trombi/models.py:
59
#: trombi/models.py:
60
msgid
"Maximum number of characters allowed in a comment."
msgstr
"Nombre maximum de caractères autorisés dans un commentaire."
#: trombi/models.py:6
0
#: trombi/models.py:6
1
msgid
"show users profiles to each other"
msgstr
"montrer les profils aux inscrits"
#: trombi/models.py:7
1
#: trombi/models.py:7
2
msgid
""
"Closing the subscriptions after the comments is definitively not a good idea."
msgstr
""
"Fermer les inscriptions après les commentaires est vraiment une idée pourrie."
#: trombi/models.py:9
1
#: trombi/models.py:9
2
msgid
"trombi user"
msgstr
"utilisateur trombi"
#: trombi/models.py:9
2
#: trombi/models.py:9
3
msgid
"trombi"
msgstr
"trombi"
#: trombi/models.py:9
3
#: trombi/models.py:9
4
msgid
"profile pict"
msgstr
"photo de profil"
#: trombi/models.py:9
4
#: trombi/models.py:9
5
msgid
""
"The profile picture you want in the trombi (warning: this picture may be "
"published)"
...
...
@@ -4512,11 +4530,11 @@ msgstr ""
"La photo de profil que vous souhaitez voir dans le Trombi (attention: cette "
"photo risque d'être publiée)"
#: trombi/models.py:9
5
#: trombi/models.py:9
6
msgid
"scrub pict"
msgstr
"photo de blouse"
#: trombi/models.py:9
6
#: trombi/models.py:9
7
msgid
""
"The scrub picture you want in the trombi (warning: this picture may be "
"published)"
...
...
@@ -4524,14 +4542,22 @@ msgstr ""
"La photo de blouse que vous souhaitez voir dans le Trombi (attention: cette "
"photo risque d'être publiée)"
#: trombi/models.py:1
07
#: trombi/models.py:1
26
msgid
"target"
msgstr
"cible"
#: trombi/models.py:1
09
#: trombi/models.py:1
28
msgid
"is the comment moderated"
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:8
msgid
"Moderate Trombi comments"
...
...
@@ -4563,16 +4589,34 @@ msgstr "Fin des inscriptions : "
msgid
"Comment deadline: "
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:8
#, python-format
msgid
"%(user_name)s's Trombi profile"
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
#, python-format
msgid
"%(user_name)s's Trombi"
...
...
@@ -4667,7 +4711,7 @@ msgstr "Téléphone"
msgid
"Native town"
msgstr
"Ville d'origine"
#: trombi/views.py:2
4
6
#: trombi/views.py:26
9
msgid
""
"You can not yet write comment, you must wait for the subscription deadline "
"to be passed."
...
...
@@ -4675,11 +4719,11 @@ msgstr ""
"Vous ne pouvez pas encore écrire de commentaires, vous devez attendre la fin "
"des inscriptions"
#: trombi/views.py:2
49
#: trombi/views.py:2
72
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."
#: trombi/views.py:2
56
#: trombi/views.py:2
79
#, python-format
msgid
"Maximum characters: %(max_length)s"
msgstr
"Nombre de caractères max: %(max_length)s"
trombi/migrations/0004_trombiclubmembership.py
0 → 100644
View file @
f26f2f42
# -*- 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'
],
},
),
]
trombi/models.py
View file @
f26f2f42
...
...
@@ -31,6 +31,7 @@ from django.core.exceptions import ValidationError
from
datetime
import
timedelta
,
date
from
core.models
import
User
from
core.utils
import
get_start_of_semester
,
get_semester
from
club.models
import
Club
class
TrombiManager
(
models
.
Manager
):
...
...
@@ -98,6 +99,24 @@ class TrombiUser(models.Model):
def
__str__
(
self
):
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
):
"""
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
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'
)
trombi/templates/trombi/edit_profile.jinja
0 → 100644
View file @
f26f2f42
{%
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
%}
trombi/templates/trombi/user_profile.jinja
View file @
f26f2f42
...
...
@@ -8,6 +8,7 @@
<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>
<div>
<h4>
{%
trans
%}
Pictures
{%
endtrans
%}
</h4>
{%
set
profile_file
=
None
%}
{%
set
scrub_file
=
None
%}
{%
if
trombi_user.profile_pict
%}
...
...
@@ -20,10 +21,36 @@
{%
else
%}
{%
set
scrub_file
=
static
(
'core/img/na.gif'
)
%}
{%
endif
%}
<div
style=
"max-width: 410px; margin: auto;"
>
<img
src=
"
{{
profile_file
}}
"
alt=
""
style=
"max-width: 200px"
>
<img
src=
"
{{
scrub_file
}}
"
alt=
""
style=
"max-width: 200px"
>
<div
style=
"max-width: 410px; margin: auto; text-align: center;"
>
<div>
<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>
{%
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>
{%
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>
...
...
trombi/urls.py
View file @
f26f2f42
...
...
@@ -39,5 +39,8 @@ urlpatterns = [
url
(
r
'^tools$'
,
UserTrombiToolsView
.
as_view
(),
name
=
'user_tools'
),