Merge lp:~daker/loco-team-portal/fix.profil-links into lp:loco-team-portal

Proposed by Adnane Belmadiaf
Status: Merged
Approved by: Adnane Belmadiaf
Approved revision: 572
Merged at revision: 575
Proposed branch: lp:~daker/loco-team-portal/fix.profil-links
Merge into: lp:loco-team-portal
Diff against target: 485 lines (+68/-119)
13 files modified
loco_directory/media/css/jquery.lightbox-0.5.css (+24/-18)
loco_directory/media/css/styles.css (+0/-1)
loco_directory/media/js/jquery-pixie.js (+7/-7)
loco_directory/templates/base.html (+1/-1)
loco_directory/templates/events/team_event_detail.inc.html (+1/-1)
loco_directory/templates/events/team_event_detail_basic.inc.html (+0/-59)
loco_directory/templates/events/team_event_detail_comments.inc.html (+7/-7)
loco_directory/templates/profiles/details.html (+7/-5)
loco_directory/templates/teams/team_detail.html (+10/-7)
loco_directory/urls.py (+1/-1)
loco_directory/userprofiles/models.py (+6/-3)
loco_directory/userprofiles/urls.py (+2/-6)
loco_directory/userprofiles/views.py (+2/-3)
To merge this branch: bzr merge lp:~daker/loco-team-portal/fix.profil-links
Reviewer Review Type Date Requested Status
LoCo Team Portal Developers Pending
Review via email: mp+138881@code.launchpad.net

Commit message

Fixed profile links

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'loco_directory/media/css/jquery.lightbox-0.5.css'
2--- loco_directory/media/css/jquery.lightbox-0.5.css 2010-08-25 21:50:17 +0000
3+++ loco_directory/media/css/jquery.lightbox-0.5.css 2012-12-09 15:21:20 +0000
4@@ -35,6 +35,9 @@
5 width: 250px;
6 height: 250px;
7 margin: 0 auto;
8+ -webkit-border-radius: 5px 5px 0 0;
9+ -moz-border-radius: 5px 5px 0 0;
10+ border-radius: 5px 5px 0 0;
11 }
12 #lightbox-container-image { padding: 10px; }
13 #lightbox-loading {
14@@ -62,12 +65,12 @@
15 zoom: 1;
16 display: block;
17 }
18-#lightbox-nav-btnPrev {
19- left: 0;
20+#lightbox-nav-btnPrev {
21+ left: 0;
22 float: left;
23 }
24-#lightbox-nav-btnNext {
25- right: 0;
26+#lightbox-nav-btnNext {
27+ right: 0;
28 float: right;
29 }
30 #lightbox-container-image-data-box {
31@@ -78,24 +81,27 @@
32 overflow: auto;
33 width: 100%;
34 padding: 0 10px 0;
35+ -webkit-border-radius: 0 0 5px 5px;
36+ -moz-border-radius: 0 0 5px 5px;
37+ border-radius: 0 0 5px 5px;
38 }
39 #lightbox-container-image-data {
40- padding: 0 10px;
41- color: #666;
42-}
43-#lightbox-container-image-data #lightbox-image-details {
44- width: 70%;
45- float: left;
46- text-align: left;
47-}
48+ padding: 0 10px;
49+ color: #666;
50+}
51+#lightbox-container-image-data #lightbox-image-details {
52+ width: 70%;
53+ float: left;
54+ text-align: left;
55+}
56 #lightbox-image-details-caption { font-weight: bold; }
57 #lightbox-image-details-currentNumber {
58- display: block;
59- clear: left;
60- padding-bottom: 1.0em;
61-}
62+ display: block;
63+ clear: left;
64+ padding-bottom: 1.0em;
65+}
66 #lightbox-secNav-btnClose {
67- width: 66px;
68+ width: 66px;
69 float: right;
70- padding-bottom: 0.7em;
71+ padding-bottom: 0.7em;
72 }
73
74=== modified file 'loco_directory/media/css/styles.css'
75--- loco_directory/media/css/styles.css 2012-11-18 22:02:56 +0000
76+++ loco_directory/media/css/styles.css 2012-12-09 15:21:20 +0000
77@@ -1000,7 +1000,6 @@
78 position: relative;
79 display: inline-block;
80 text-transform: uppercase;
81- top: -4px;
82 }
83
84 .new:active {
85
86=== modified file 'loco_directory/media/js/jquery-pixie.js'
87--- loco_directory/media/js/jquery-pixie.js 2011-07-03 15:11:51 +0000
88+++ loco_directory/media/js/jquery-pixie.js 2012-12-09 15:21:20 +0000
89@@ -8,8 +8,8 @@
90 */
91
92 (function ($) {
93- $.fn.extend({
94- //This is where you write your plugin's name
95+ $.fn.extend({
96+ //This is where you write your plugin's name
97 pixie: function (options) {
98 var defaults = {
99 key: null,
100@@ -18,16 +18,16 @@
101 lightbox_class: 'lightbox'
102 },
103 html_elements = this,
104- data = {
105+ data = {
106 oauth_consumer_key: options.key,
107 page: '1',
108 perpage: options.amount,
109 sortby: 'recent',
110 extras: 'items_item_owner,items_item_Description,items_item_sizes_all',
111- callback: ''
112+ callback: ''
113 };
114 options = $.extend(defaults, options);
115-
116+
117 function parseResponse(data) {
118 var images = [], image, link;
119 $.each(data.items, function (i, rPhoto) {
120@@ -41,7 +41,7 @@
121 }).append(image);
122 images.push(link);
123 });
124-
125+
126 $(html_elements).each(function (i, html_element) {
127 var index;
128 for (index in images) {
129@@ -55,7 +55,7 @@
130 }
131
132 $.getJSON('http://api.pix.ie/v0.81/account/' + options.id + '/photos.json?' + $.param(data) + '&jsonp=?', parseResponse);
133-
134+
135 // Return the html objects untouched (the photo's are added when loaded)
136 return this;
137 } // End of pixie command
138
139=== modified file 'loco_directory/templates/base.html'
140--- loco_directory/templates/base.html 2012-11-27 21:04:48 +0000
141+++ loco_directory/templates/base.html 2012-12-09 15:21:20 +0000
142@@ -25,7 +25,7 @@
143
144 {% block top_nav_login_links %}
145 {% if user.is_authenticated %}
146- {% trans "Welcome" %} <a class="top-login-item" href="http://launchpad.net/~{{ user.username }}">{{ user.username }}</a>
147+ {% trans "Welcome" %} <a class="top-login-item" href="{% url profile-detail user.username %}">{{ user.username }}</a>
148 <span class="top-login-separator">|</span>
149 {% if user.is_staff %}
150 <a class="top-login-item" href="/admin" title="Admin">{% trans "Admin" %}</a>
151
152=== modified file 'loco_directory/templates/events/team_event_detail.inc.html'
153--- loco_directory/templates/events/team_event_detail.inc.html 2012-11-28 00:46:29 +0000
154+++ loco_directory/templates/events/team_event_detail.inc.html 2012-12-09 15:21:20 +0000
155@@ -94,7 +94,7 @@
156 {% if team_event_object.contact %}
157 <div>
158 <span class="pictogram personne"></span>
159- <a class="pictogram-l" title="{{ team_event_object.contact.realname }}" href="https://launchpad.net/~{{ team_event_object.contact.user }}">{{ team_event_object.contact.realname }}</a>
160+ <a class="pictogram-l" title="{{ team_event_object.contact.realname }}" href="{% url profile-detail team_event_object.contact.user %}">{{ team_event_object.contact.realname }}</a>
161 </div>
162 {% endif %}
163
164
165=== removed file 'loco_directory/templates/events/team_event_detail_basic.inc.html'
166--- loco_directory/templates/events/team_event_detail_basic.inc.html 2011-07-17 19:01:27 +0000
167+++ loco_directory/templates/events/team_event_detail_basic.inc.html 1970-01-01 00:00:00 +0000
168@@ -1,59 +0,0 @@
169-{% load i18n %}
170-{% if team_event_object %}
171-<table id="team-event-basic">
172- {% if team_event_object.date_begin %}
173- <tr>
174- <th class="form-item-label" scope="row">{% trans "When:" %}</th>
175- <td class="form-item-value">
176- {% ifequal team_event_object.local_date_begin|date team_event_object.local_date_end|date %}
177- {{ team_event_object.local_date_begin|date:"D, d N Y H:i" }} - {{ team_event_object.local_date_end|date:"H:i T" }}
178- {% else %}
179- {{ team_event_object.local_date_begin|date:"D, d N Y H:i" }} - {{ team_event_object.local_date_end|date:"D, d N Y H:i T" }}
180- {% endifequal %}
181- </td>
182- </tr>
183-{% endif %}
184-
185- {% if team_event_object.venue %}
186- <tr>
187- <th class="form-item-label" scope="row">{% trans "Where:" %}</th>
188- <td class="form-item-value"><a title="{% trans "show venue details" %}" href="{{ team_event_object.venue.get_absolute_url }}">{{ team_event_object.venue.name }}{% if team_event_object.venue.city %} in {{ team_event_object.venue.city }}{% endif %}</a></td>
189- </tr>
190- {% endif %}
191-
192- {% if team_event_object.channel %}
193- <tr>
194- <th class="form-item-label" scope="row">{% trans "IRC Channel:" %}</th>
195- <td class="form-item-value">{{ team_event_object.channel }}</td>
196- </tr>
197- {% endif %}
198-
199- {% if team_event_object.contact %}
200- <tr>
201- <th class="form-item-label" scope="row">{% trans "Event Contact:" %}</th>
202- <td class="form-item-value"><a title="{{ team_event_object.contact.realname }}" href="https://launchpad.net/~{{ team_event_object.contact.user }}">{{ team_event_object.contact.realname }}</a></td>
203- </tr>
204- {% endif %}
205-
206- {% if team_event_object.teams.all %}
207- <tr>
208- <th class="form-item-label" scope="row">{% trans "Organizing Team(s):" %}</th>
209- <td class="form-item-value">{% for team in team_event_object.teams.all %}<a title="{% trans "Get more information about this team" %}" href="{{ team.get_absolute_url }}">{{ team.name }}</a>{% if not forloop.last %},{% endif %}{% endfor %}</td>
210- </tr>
211- {% endif %}
212-
213- {% if team_event_object.announce %}
214- <tr>
215- <th class="form-item-label" scope="row">{% trans "Announcement:" %}</th>
216- <td class="form-item-value"><a href="{{ team_event_object.announce }}">{{team_event_object.announce }}</a></td>
217- </tr>
218- {% endif %}
219-
220- {% if team_event_object.global_event %}
221- <tr>
222- <th class="form-item-label" scope="row">{% trans "Global Event:" %}</th>
223- <td class="form-item-value"><a href="{{ team_event_object.global_event.get_absolute_url }}">{{team_event_object.global_event.name }}</a></td>
224- </tr>
225- {% endif %}
226-</table>
227-{% endif %}
228
229=== modified file 'loco_directory/templates/events/team_event_detail_comments.inc.html'
230--- loco_directory/templates/events/team_event_detail_comments.inc.html 2012-09-08 21:51:39 +0000
231+++ loco_directory/templates/events/team_event_detail_comments.inc.html 2012-12-09 15:21:20 +0000
232@@ -11,18 +11,18 @@
233 {% for comment in team_event_object.teameventcomment_set.all %}
234 <li id="comment-{{ comment.pk }}" class="response">
235 <div class="mugshot">
236- <a href="https://launchpad.net/~{{ comment.commenter_profile.user.username }}" class="url" title="{{ comment.commenter_profile.user.get_full_name }}">
237- <img alt="" class="photo fn" src="{% if comment.commenter_profile.mugshot %}{{ comment.commenter_profile.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}">
238+ <a href="{% url profile-detail comment.commenter_profile.user.username %}" class="url" title="{{ comment.commenter_profile.user.get_full_name }}">
239+ <img alt="" class="photo fn" src="{% if comment.commenter_profile.mugshot %}{{ comment.commenter_profile.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}">
240 </a>
241 </div>
242 <div class="comment-body">
243- <a href="https://launchpad.net/~{{ comment.commenter_profile.user.username }}" class="url" title="{{ comment.commenter_profile.user.get_full_name }}">
244+ <a href="{% url profile-detail comment.commenter_profile.user.username %}" class="url" title="{{ comment.commenter_profile.user.get_full_name }}">
245 {% if comment.commenter_profile.user.get_full_name %}
246 {{ comment.commenter_profile.user.get_full_name }}
247 {% else %}
248 {{ comment.commenter_profile.realname }}
249 {% endif %}
250- </a>
251+ </a>
252 <div class="comment-error" style="display:none;"></div>
253 <div class="comment-comment">
254 {{ comment.comment|linebreaks|urlize }}
255@@ -31,9 +31,9 @@
256 <a href="#comment-{{ comment.pk }}" class="posted" title="{{ comment.local_date_created }}">
257 {{ comment.local_date_created|date:"d F Y" }}</a>
258 {% if comment.commenter_profile.user.username == user.username %}
259- · <a class="edit" href="#">Edit</a> - <a href="{% url team-event-comment-delete comment.id %}?next={% url team-event-detail team_event_object.first_team.lp_name team_event_object.id %}">Delete</a>
260- {% endif %}
261- </p>
262+ · <a class="edit" href="#">Edit</a> - <a href="{% url team-event-comment-delete comment.id %}?next={% url team-event-detail team_event_object.first_team.lp_name team_event_object.id %}">Delete</a>
263+ {% endif %}
264+ </p>
265 </div>
266 </li>
267 {% endfor %}
268
269=== modified file 'loco_directory/templates/profiles/details.html'
270--- loco_directory/templates/profiles/details.html 2012-11-19 23:03:10 +0000
271+++ loco_directory/templates/profiles/details.html 2012-12-09 15:21:20 +0000
272@@ -18,14 +18,16 @@
273 <a href="{% url team-detail team_slug=team.lp_name %}" title="{{ team.name }}" class="link2">
274 {{ team.name }}
275 </a>
276- <a href="{% url team-meeting-new team_slug=team.lp_name %}" title="{% trans "Schedule a meeting" %}" class="new">{% trans "Schedule a meeting" %}</a>
277- <a href="{% url team-event-new team_slug=team.lp_name %}" title="{% trans "Create an event" %}" class="new">{% trans "Create an event" %}</a>
278+ <div style="float: right">
279+ <a href="{% url team-meeting-new team_slug=team.lp_name %}" title="{% trans "Schedule a meeting" %}" class="new">{% trans "Schedule a meeting" %}</a>
280+ <a href="{% url team-event-new team_slug=team.lp_name %}" title="{% trans "Create an event" %}" class="new">{% trans "Create an event" %}</a>
281+ </div>
282 <h4 class="title">{% trans "Meetings" %}</h4>
283 <ul class="indent">
284 {% if team.teammeeting_set.next_3_meetings %}
285- {% for team_event in team.teammeeting_set.next_3_meetings %}
286+ {% for team_metting in team.teammeeting_set.next_3_meetings %}
287 <li>
288- <a title="{{team_event.date_begin|date:"M d"}}" href="{% url team-meeting-detail team_event.first_team.lp_name team_event.id %}">{{ team_event.name }} {% trans "on" %} {{ team_event.local_date_begin|date:"l, d N Y" }} {% trans "at " %}{{ team_event.local_date_begin|date:"H:i T" }}</a>
289+ <a title="{{ team_metting.name }}" href="{{ team_metting.get_absolute_url }}">{{ team_metting.name }} {% trans "on" %} {{ team_metting.local_date_begin|date:"l, d N Y" }} {% trans "at " %}{{ team_metting.local_date_begin|date:"H:i T" }}</a>
290 </li>
291 {% endfor %}
292 {% else %}
293@@ -38,7 +40,7 @@
294 {% if team.teamevent_set.next_3_events %}
295 {% for team_event in team.teamevent_set.next_3_events %}
296 <li>
297- <a title="{% if team_event.venue %}{% else %}{{team_event.date_begin|date:"M d"}}{% endif %}" href="{% url team-event-detail team_event.first_team.lp_name team_event.id %}">{{ team_event.name }} {% trans "on" %} {{ team_event.local_date_begin|date:"l, d N Y" }} {% trans "at " %}{{ team_event.local_date_begin|date:"H:i T" }}</a>
298+ <a title="{% if team_event.venue %}{% else %}{{team_event.date_begin|date:"M d"}}{% endif %}" href="{{ team_event.get_absolute_url }}">{{ team_event.name }} {% trans "on" %} {{ team_event.local_date_begin|date:"l, d N Y" }} {% trans "at " %}{{ team_event.local_date_begin|date:"H:i T" }}</a>
299 </li>
300 {% endfor %}
301 {% else %}
302
303=== modified file 'loco_directory/templates/teams/team_detail.html'
304--- loco_directory/templates/teams/team_detail.html 2012-11-28 00:46:29 +0000
305+++ loco_directory/templates/teams/team_detail.html 2012-12-09 15:21:20 +0000
306@@ -31,17 +31,20 @@
307 <script type="text/javascript" src="{{MEDIA_URL}}js/jquery-pixie.js"></script>
308 {% endif %}
309
310+{% if team.microbloghashtag %}
311 <link rel="stylesheet" type="text/css" href="{{MEDIA_URL}}css/twidenash.css" />
312 <script type="text/javascript" src="{{MEDIA_URL}}js/twidenash/jquery-twidenash.js"></script>
313-
314+{% endif %}
315 <script type="text/javascript">
316 $(function() {
317 var perPage = '14';
318+ {% if team.microbloghashtag %}
319 $('.twidenash').twidenash({
320 sources: [
321 'http://search.twitter.com/',
322 ]
323 });
324+ {% endif %}
325 {% if team.flickr_id %}
326 $('#flickr').flickr({ key: "{{ flickr_api_key }}", id: "{{ team.flickr_id }}", amount: perPage });
327 {% endif %}
328@@ -112,7 +115,7 @@
329
330 <div style="display:block;">
331 <div id="loco-location">
332- <span title="{% trans "Mailing List" %}" class="pictogram ml"></span>
333+ <span title="{% trans "Resources" %}" class="pictogram ml"></span>
334 <span class="value ellipsis small-ellipsis">
335 {% if team.web_url %}
336 <a href="{{ team.web_url }}" title="{% trans "Website" %}" target="_blank">
337@@ -130,7 +133,7 @@
338
339
340 <div id="loco-support">
341- <span class="pictogram forums" title="{% trans "Local Support" %}"></span>
342+ <span class="pictogram forums" title="{% trans "Support" %}"></span>
343 <span class="value ellipsis">
344 {% if team.ml_url %}
345 <a href="{{ team.ml_url }}" title="{% trans "Mailing List" %}" target="_blank">
346@@ -176,7 +179,7 @@
347 <a href="{% url team-event-history team.lp_name %}" title="{% trans "Past Events" %}">{% trans "Past Events" %}</a>
348 </span>
349 <span>
350- <a class="pictogram rss action" href="/feeds/teams/{{ team.lp_name }}" title="{% trans "RSS Feed" %}"></a>
351+ <a class="pictogram rss action" href="/feeds/teams/{{ team.lp_name }}/" title="{% trans "RSS Feed" %}"></a>
352 </span>
353 <span>
354 <a class="pictogram ical action" href="{% url team-calendar team.lp_name %}" title="{% trans "iCal Feed" %}"></a>
355@@ -227,12 +230,12 @@
356 <div class="team-admins">
357 {% for admin in team.admin_profiles.all %}
358 {% ifequal team.owner admin.user.username %}
359- <a href="https://launchpad.net/~{{ admin.user.username }}">
360+ <a href="{% url profile-detail admin.user.username %}">
361 <img alt="" class="photo fn" src="{% if admin.mugshot %}{{ admin.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}" class="mugshot">
362 <p>{{ admin.realname }}</p>
363 </a>
364 {% else %}
365- <a href="https://launchpad.net/~{{ admin.user.username }}">
366+ <a href="{% url profile-detail admin.user.username %}">
367 <img alt="{{ admin.realname }}" src="{% if admin.mugshot %}{{ admin.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}" class="mugshot" height="50" width="50">
368 <p>{{ admin.realname }}</p>
369 </a>
370@@ -243,7 +246,7 @@
371 <div class="team-admins">
372 {% if team.contact_profiles.all %}
373 {% for contact in team.contact_profiles.all %}
374- <a href="https://launchpad.net/~{{ contact.user.username }}">
375+ <a href="{% url profile-detail contact.user.username %}">
376 <img alt="{{ contact.realname }}" src="{% if contact.mugshot %}{{ contact.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}" class="mugshot" height="50" width="50">
377 <p>{{ contact.realname }}</p>
378 </a>
379
380=== modified file 'loco_directory/urls.py'
381--- loco_directory/urls.py 2012-11-26 23:07:59 +0000
382+++ loco_directory/urls.py 2012-12-09 15:21:20 +0000
383@@ -39,7 +39,7 @@
384 url(r'^services/', include('services.urls')),
385 url(r'^search/', 'common.views.site_search', name='site_search'),
386 url(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}, name='feed_view'),
387- url(r'', include('userprofiles.urls')),
388+ url(r'^', include('userprofiles.urls')),
389 )
390
391 urlpatterns += patterns('django_openid_auth.views',
392
393=== modified file 'loco_directory/userprofiles/models.py'
394--- loco_directory/userprofiles/models.py 2012-11-28 00:46:29 +0000
395+++ loco_directory/userprofiles/models.py 2012-12-09 15:21:20 +0000
396@@ -6,7 +6,6 @@
397 from common.launchpad import (get_user_timezone, lp_login, get_mugshot_url, set_user_openid)
398
399 import pytz
400-
401 import logging
402 import sys
403 st_handler = logging.StreamHandler(sys.stderr)
404@@ -17,6 +16,7 @@
405 log.addHandler(st_handler)
406 log.setLevel(logging.DEBUG)
407
408+
409 class UserProfile(models.Model):
410 " Store profile information about a user "
411
412@@ -61,6 +61,7 @@
413 local = self.timezone.localize(dt)
414 return local.astimezone(pytz.utc)
415
416+
417 def _getUserProfile(self):
418 if not self.is_authenticated():
419 return UserProfile()
420@@ -73,12 +74,14 @@
421
422 return profile
423
424+
425 def _getAnonProfile(self):
426 return UserProfile()
427
428 auth_models.User.profile = property(_getUserProfile)
429 auth_models.AnonymousUser.profile = property(_getAnonProfile)
430
431+
432 def create_userprofile(sender, instance, lp=None, USER_BLACKLIST=(u"root", u"admin"), need_update=False, **kwargs):
433 profile, created = UserProfile.objects.get_or_create(user=instance)
434 if instance.username in USER_BLACKLIST:
435@@ -93,10 +96,10 @@
436 log.debug("Updating %s" % instance)
437 lp_user = lp.people[instance.username]
438 profile.tz = lp_user.time_zone or "UTC"
439- profile.realname = lp_user.display_name or user.username
440+ profile.realname = lp_user.display_name or instance.username
441 profile.mugshot = get_mugshot_url(lp_user.mugshot_link)
442 profile.save()
443- except Exception, e:
444+ except Exception:
445 log.error("Error updating %s" % instance)
446 return profile
447
448
449=== modified file 'loco_directory/userprofiles/urls.py'
450--- loco_directory/userprofiles/urls.py 2012-11-18 22:02:56 +0000
451+++ loco_directory/userprofiles/urls.py 2012-12-09 15:21:20 +0000
452@@ -2,9 +2,5 @@
453 from django.conf.urls.defaults import *
454
455 urlpatterns = patterns('userprofiles.views',
456- url(r'^(?P<username>[-.\w]+)/$',
457- view='profile_detail',
458- name='profile_detail',
459- ),
460-
461-)
462\ No newline at end of file
463+ url(r'^(?P<username>[-.\w]+)/$', 'profile_detail', name='profile-detail'),
464+)
465
466=== modified file 'loco_directory/userprofiles/views.py'
467--- loco_directory/userprofiles/views.py 2012-11-19 23:03:10 +0000
468+++ loco_directory/userprofiles/views.py 2012-12-09 15:21:20 +0000
469@@ -1,14 +1,13 @@
470 # -*- coding: utf-8 -*-
471 from django.shortcuts import render_to_response, get_object_or_404
472 from django.template import RequestContext
473-from django.http import Http404
474 from django.contrib.auth.models import User
475-
476 from django.db.models import Count
477
478 from userprofiles.models import UserProfile
479 from teams.models import Team
480-from events.models import Attendee, TeamEvent
481+from events.models import TeamEvent
482+
483
484 def profile_detail(request, username):
485 user = get_object_or_404(User, username__iexact=username)

Subscribers

People subscribed via source and target branches