diff --git a/badgus/base/static/css/base.css b/badgus/base/static/css/base.css
index 9cd8f68..7b8ec06 100644
--- a/badgus/base/static/css/base.css
+++ b/badgus/base/static/css/base.css
@@ -159,6 +159,7 @@ ul.awardees li.awardee .label {
ul.awardees li.awardee .label:before { content: "\263A\00a0"; font-size: 1.25em; }
+ul.teams { margin: 0pt; padding: 0pt; }
ul.teams li { border-radius: 8px 8px 8px 8px; border: 1px solid #EEEEEE;
list-style: none outside none; margin: 0pt 0.75em 0.75em 0pt; padding: 0pt; }
ul.teams li img { border-radius: 8px 8px 8px 8px; display: block; }
diff --git a/badgus/profiles/templates/profiles/profile_view.html b/badgus/profiles/templates/profiles/profile_view.html
index 3f1c4c8..337ff41 100644
--- a/badgus/profiles/templates/profiles/profile_view.html
+++ b/badgus/profiles/templates/profiles/profile_view.html
@@ -111,6 +111,33 @@
{% endif %}
+ {% if teams %}
+
+
+
+ {% for team in teams %}
+ -
+ {% if team and team.image %}
+ {% set image_url = team.image.url %}
+ {% else %}
+ {# TODO: Put the URL for default team image in settings #}
+ {% set image_url = static("img/default-badge.png") %}
+ {% endif %}
+
+ {{ team.name }}
+
+ {% else %}
+ - {{ _("No teams, yet.") }}
+ {% endfor %}
+
+ {% endif %}
+
+
{% endblock %}
diff --git a/badgus/profiles/tests/test_views.py b/badgus/profiles/tests/test_views.py
new file mode 100644
index 0000000..a501980
--- /dev/null
+++ b/badgus/profiles/tests/test_views.py
@@ -0,0 +1,46 @@
+import logging
+
+import json
+from nose.tools import eq_, ok_
+from django.test import TestCase
+from django.http import HttpRequest
+from django import test
+
+from django.contrib.auth.models import User
+
+from pyquery import PyQuery as pq
+from django_browserid.tests import mock_browserid
+
+from tower import activate
+
+from teamwork.models import Role
+
+from badger.models import Badge
+
+from badgus.base.urlresolvers import reverse
+from badgus.teams.models import BadgeTeam
+
+
+class BadgeProfileViewsTest(test.TestCase):
+
+ def test_list_team_membership(self):
+ """User profile page should list team memberships"""
+ team = BadgeTeam(name='randoteam23')
+ team.save()
+
+ team.members.through.objects.all().delete()
+
+ member = User(username='rando23', email='random23@example.com')
+ member.save()
+
+ url = member.get_absolute_url()
+
+ r = self.client.get(url, follow=True)
+ doc = pq(r.content)
+ eq_(0, doc.find('.teams .team .label .title:contains("randoteam23")').length)
+
+ team.add_member(member)
+
+ r = self.client.get(url, follow=True)
+ doc = pq(r.content)
+ eq_(1, doc.find('.teams .team .label .title:contains("randoteam23")').length)
diff --git a/badgus/profiles/views.py b/badgus/profiles/views.py
index 81b5ff9..3231d25 100644
--- a/badgus/profiles/views.py
+++ b/badgus/profiles/views.py
@@ -17,6 +17,8 @@
from .models import UserProfile
from .forms import UserProfileEditForm, UserEditForm
+from badgus.teams.models import BadgeTeam
+
try:
from commons.urlresolvers import reverse
except ImportError, e:
@@ -49,8 +51,10 @@ def profile_view(request, username):
user = get_object_or_404(User, username=username)
profile = user.get_profile()
+ teams = BadgeTeam.objects.filter(members__username=user.username)
+
return render_to_response('profiles/profile_view.html', dict(
- user=user, profile=profile
+ user=user, profile=profile, teams=teams
), context_instance=RequestContext(request))