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 %} +
+ +
+ {% 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))