diff --git a/core/templates/core/user_clubs.jinja b/core/templates/core/user_clubs.jinja
new file mode 100644
index 00000000..5e16fb93
--- /dev/null
+++ b/core/templates/core/user_clubs.jinja
@@ -0,0 +1,24 @@
+{% extends "core/base.jinja" %}
+
+{% block title %}
+ {% trans user_name=profile.get_display_name() %}{{ user_name }}'s club(s){% endtrans %}
+{% endblock %}
+
+{% block content %}
+
{% trans%}Club(s){% endtrans %}
+
+{% trans%}Current club(s){% endtrans %}
+
+ {% for m in profile.memberships.filter(end_date=None).all() %}
+ - {{ m.club }}
+ {% endfor %}
+
+
+{% trans%}Old club(s){% endtrans %}
+
+ {% for m in profile.memberships.exclude(end_date=None).all() %}
+ - {{ m.club }}
+ {% endfor %}
+
+{% endblock %}
+
diff --git a/core/urls.py b/core/urls.py
index db983740..aaf10c53 100644
--- a/core/urls.py
+++ b/core/urls.py
@@ -36,6 +36,7 @@ urlpatterns = [
url(r'^user/(?P[0-9]+)/godfathers/(?P[0-9]+)/(?P(True)|(False))/delete$', DeleteUserGodfathers, name='user_godfathers_delete'),
url(r'^user/(?P[0-9]+)/edit$', UserUpdateProfileView.as_view(), name='user_edit'),
url(r'^user/(?P[0-9]+)/profile_upload$', UserUploadProfilePictView.as_view(), name='user_profile_upload'),
+ url(r'^user/(?P[0-9]+)/clubs$', UserClubView.as_view(), name='user_clubs'),
url(r'^user/(?P[0-9]+)/groups$', UserUpdateGroupView.as_view(), name='user_groups'),
url(r'^user/tools/$', UserToolsView.as_view(), name='user_tools'),
url(r'^user/(?P[0-9]+)/account$', UserAccountView.as_view(), name='user_account'),
diff --git a/core/views/user.py b/core/views/user.py
index c5f83d1b..ac219ce1 100644
--- a/core/views/user.py
+++ b/core/views/user.py
@@ -20,6 +20,7 @@ import logging
from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, TabedViewMixin
from core.views.forms import RegisteringForm, UserPropForm, UserProfileForm, LoginForm, UserGodfathersForm
from core.models import User, SithFile
+from club.models import Club
from subscription.models import Subscription
def login(request):
@@ -150,6 +151,12 @@ class UserTabsMixin(TabedViewMixin):
'slug': 'edit',
'name': _("Edit"),
})
+ if self.request.user.can_view(self.object):
+ tab_list.append({
+ 'url': reverse('core:user_clubs', kwargs={'user_id': self.object.id}),
+ 'slug': 'clubs',
+ 'name': _("Clubs"),
+ })
if self.request.user.is_owner(self.object):
tab_list.append({
'url': reverse('core:user_groups', kwargs={'user_id': self.object.id}),
@@ -336,6 +343,16 @@ class UserUpdateProfileView(UserTabsMixin, CanEditMixin, UpdateView):
kwargs['form'] = self.form
return kwargs
+class UserClubView(UserTabsMixin, CanViewMixin, DetailView):
+ """
+ Display the user's club(s)
+ """
+ model = User
+ context_object_name = "profile"
+ pk_url_kwarg = "user_id"
+ template_name = "core/user_clubs.jinja"
+ current_tab = "clubs"
+
class UserUpdateGroupView(UserTabsMixin, CanEditPropMixin, UpdateView):
"""
Edit a user's groups