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

Proposed by Adnane Belmadiaf
Status: Merged
Approved by: Adnane Belmadiaf
Approved revision: 568
Merged at revision: 568
Proposed branch: lp:~daker/loco-team-portal/fix.876659
Merge into: lp:loco-team-portal
Diff against target: 474 lines (+74/-107)
12 files modified
loco_directory/common/utils.py (+0/-12)
loco_directory/events/managers.py (+36/-0)
loco_directory/events/models.py (+10/-52)
loco_directory/events/urls.py (+4/-3)
loco_directory/events/views.py (+10/-16)
loco_directory/meetings/views.py (+2/-7)
loco_directory/teams/tests.py (+2/-2)
loco_directory/teams/views.py (+2/-6)
loco_directory/templates/events/team_event_detail.html (+1/-1)
loco_directory/templates/events/team_event_detail.inc.html (+5/-5)
loco_directory/templates/teams/team_detail.html (+1/-1)
loco_directory/userprofiles/models.py (+1/-2)
To merge this branch: bzr merge lp:~daker/loco-team-portal/fix.876659
Reviewer Review Type Date Requested Status
LoCo Team Portal Developers Pending
Review via email: mp+136548@code.launchpad.net

Commit message

* More SEO friendly urls
* Fixed the tests
* Moved the manages to a sperate file

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
=== modified file 'loco_directory/common/utils.py'
--- loco_directory/common/utils.py 2012-11-09 23:35:39 +0000
+++ loco_directory/common/utils.py 2012-11-28 00:51:20 +0000
@@ -49,18 +49,6 @@
49 return reduce(lambda a, b: a.extend(b) or a, some_list)49 return reduce(lambda a, b: a.extend(b) or a, some_list)
5050
5151
52# pylint: disable-msg=C0103
53def redirect(to, *args, **kwargs):
54 from distutils.version import LooseVersion as V
55 import django
56 if V(django.get_version()) > V('1.1'):
57 from django.shortcuts import redirect as red
58 else:
59 from shortcuts import redirect as red
60
61 return red(to, *args, **kwargs)
62
63
64def get_locodirectory_version(version_file, debug):52def get_locodirectory_version(version_file, debug):
65 """53 """
66 return the bzr revision number and version of the LoCo Team Portal54 return the bzr revision number and version of the LoCo Team Portal
6755
=== added file 'loco_directory/events/managers.py'
--- loco_directory/events/managers.py 1970-01-01 00:00:00 +0000
+++ loco_directory/events/managers.py 2012-11-28 00:51:20 +0000
@@ -0,0 +1,36 @@
1# -*- coding: utf-8 -*-
2from django.db import models
3import datetime
4
5
6class GlobalEventManager(models.Manager):
7 """ manager for a global event """
8 def next_events(self):
9 """ a list with all upcoming global events """
10 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')
11
12 def history_events(self):
13 """ all global events in history """
14 return self.filter(date_end__lt=datetime.datetime.now()).order_by('date_end')
15
16
17class TeamEventManager(models.Manager):
18 """ manager for a team event """
19 def next_3_events(self):
20 """ a list with the next 3 events """
21 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')[:3]
22
23 def next_5_events(self):
24 """ a list with the next 5 events """
25 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')[:5]
26
27 def next_events(self):
28 """ a list with all upcoming team events """
29 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')
30
31 def history_events(self):
32 """ all team events in history """
33 return self.filter(date_end__lt=datetime.datetime.now()).order_by('-date_end')
34
35 def has_location(self):
36 return self.filter(venue__longitude__isnull=False, venue__latitude__isnull=False)
037
=== modified file 'loco_directory/events/models.py'
--- loco_directory/events/models.py 2012-06-30 23:44:14 +0000
+++ loco_directory/events/models.py 2012-11-28 00:51:20 +0000
@@ -1,11 +1,16 @@
1# -*- coding: utf-8 -*-
1from django.db import models2from django.db import models
3from django.template.defaultfilters import slugify
4from django.utils.translation import ugettext_lazy as _
5
2from userprofiles.models import UserProfile6from userprofiles.models import UserProfile
3from teams.models import *7from teams.models import *
4from venues.models import Venue8from venues.models import Venue
5from django.utils.translation import ugettext_lazy as _
6from common.shortcuts import queryset_sum, queryset_count9from common.shortcuts import queryset_sum, queryset_count
7from common.mixins import LocalTimeMixin10from common.mixins import LocalTimeMixin
811
12from managers import GlobalEventManager, TeamEventManager
13
9ATTENDEE_PROMISE_CHOICES = (14ATTENDEE_PROMISE_CHOICES = (
10 ('sure', _('attending')),15 ('sure', _('attending')),
11 ('maybe', _('might be attending')),16 ('maybe', _('might be attending')),
@@ -46,25 +51,6 @@
46 return self.date_end > datetime.datetime.today()51 return self.date_end > datetime.datetime.today()
4752
4853
49class GlobalEventManager(models.Manager):
50 """ manager for a global event """
51 def next_events(self):
52 """ a list with all upcoming global events """
53 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')
54
55 def history_events(self):
56 """ all global events in history """
57 return self.filter(date_end__lt=datetime.datetime.now()).order_by('date_end')
58
59 def random_5(self):
60 """ return 5 random Team Events for this global event """
61 return TeamEvent.objects.filter(global_event__id__exact=self.id).order_by('?')[:5]
62
63 def last_5(self):
64 """ return the last 5 active Team events for this global event"""
65 return TeamEvent.objects.filter(global_event__id__exact=self.id).order_by('?')[5:]
66
67
68class GlobalEvent(BaseEvent):54class GlobalEvent(BaseEvent):
69 """55 """
70 a global event. other events can attend to a global event56 a global event. other events can attend to a global event
@@ -94,34 +80,6 @@
94 'countries': countries})80 'countries': countries})
9581
9682
97class TeamEventManager(models.Manager):
98 """ manager for a team event """
99 def next_3_events(self):
100 """ a list with the next 3 events """
101 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')[:3]
102
103 def next_5_events(self):
104 """ a list with the next 5 events """
105 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')[:5]
106
107 def next_events(self):
108 """ a list with all upcoming team events """
109 return self.filter(date_end__gt=datetime.datetime.now()).order_by('date_end')
110
111 def history_events(self):
112 """ all team events in history """
113 return self.filter(date_end__lt=datetime.datetime.now()).order_by('-date_end')
114
115 def attending(self):
116 return Attendee.objects.filter(event__id__exact=self.id)
117
118 def random_5_attendees(self):
119 return Attendee.objects.filter(event__id__exact=self.id).order_by('?')[5:]
120
121 def has_location(self):
122 return self.filter(venue__longitude__isnull=False, venue__latitude__isnull=False)
123
124
125class TeamEvent(BaseEvent, LocalTimeMixin):83class TeamEvent(BaseEvent, LocalTimeMixin):
126 """84 """
127 a event of one or more teams85 a event of one or more teams
@@ -141,7 +99,7 @@
14199
142 @models.permalink100 @models.permalink
143 def get_absolute_url(self):101 def get_absolute_url(self):
144 return ('team-event-detail', [getattr(self.first_team(), 'lp_name', 'no-team'), str(self.id)])102 return ('team-event-detail', [getattr(self.first_team(), 'lp_name', 'no-team'), str(self.id), slugify(self.name)])
145103
146 def get_tz(self):104 def get_tz(self):
147 timezone = 'UTC'105 timezone = 'UTC'
@@ -183,7 +141,7 @@
183 try:141 try:
184 return self.teams.all()[0]142 return self.teams.all()[0]
185 except:143 except:
186 print 'Event %s has no team' % self.id144 #print 'Event %s has no team' % self.id
187 return {'lp_name': 'no-team'}145 return {'lp_name': 'no-team'}
188146
189 def is_attending(self, user):147 def is_attending(self, user):
@@ -195,13 +153,13 @@
195 def total_attending(self):153 def total_attending(self):
196 total_attending_guests = queryset_sum('guests', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="sure"))154 total_attending_guests = queryset_sum('guests', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="sure"))
197 total_attending_registered = queryset_count('attendee_profile', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="sure"))155 total_attending_registered = queryset_count('attendee_profile', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="sure"))
198 return total_attending_guests + total_attending_registered156 return total_attending_guests + total_attending_registered
199157
200 def total_maybe_attending(self):158 def total_maybe_attending(self):
201159
202 total_maybe_attending_guests = queryset_sum('guests', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="maybe"))160 total_maybe_attending_guests = queryset_sum('guests', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="maybe"))
203 total_maybe_attending_registered = queryset_count('attendee_profile', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="maybe"))161 total_maybe_attending_registered = queryset_count('attendee_profile', Attendee.objects.filter(team_event__id__exact=self.id).filter(promise="maybe"))
204 return total_maybe_attending_guests + total_maybe_attending_registered162 return total_maybe_attending_guests + total_maybe_attending_registered
205163
206164
207class TeamEventComment(models.Model):165class TeamEventComment(models.Model):
208166
=== modified file 'loco_directory/events/urls.py'
--- loco_directory/events/urls.py 2012-09-08 21:45:10 +0000
+++ loco_directory/events/urls.py 2012-11-28 00:51:20 +0000
@@ -20,19 +20,20 @@
20 #team events20 #team events
21 url(r'^locations/$', 'events.views.team_event_locations', name='team-event-locations'),21 url(r'^locations/$', 'events.views.team_event_locations', name='team-event-locations'),
22 url(r'^ical/$', 'events.views.teams_event_list_ical', name='teams-event-list-ical'),22 url(r'^ical/$', 'events.views.teams_event_list_ical', name='teams-event-list-ical'),
23 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)-(?P<event_slug>[a-zA-Z0-9\-\.\+?]+)/$', 'events.views.team_event_detail', name='team-event-detail'),
23 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/detail/ical/$', 'events.views.event_ical', name='event-ical'),24 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/detail/ical/$', 'events.views.event_ical', name='event-ical'),
24 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/register/$', 'events.views.team_event_register', name='team-event-register'),25 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/register/$', 'events.views.team_event_register', name='team-event-register'),
25 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/detail/$', 'events.views.team_event_detail', name='team-event-detail'),26 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/detail/$', 'events.views.team_event_detail', name='team-event-detail-old'),
26 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/delete/$', 'events.views.team_event_delete', name='team-event-delete'),27 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/delete/$', 'events.views.team_event_delete', name='team-event-delete'),
27 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/update/$', 'events.views.team_event_update', name='team-event-update'),28 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/update/$', 'events.views.team_event_update', name='team-event-update'),
28 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/copy/$', 'events.views.team_event_copy', name='team-event-copy'),29 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/(?P<team_event_id>\d+)/copy/$', 'events.views.team_event_copy', name='team-event-copy'),
29 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/add/$', 'events.views.team_event_new', name='team-event-new'),30 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/add/$', 'events.views.team_event_new', name='team-event-new'),
30 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/rss/$', 'events.views.team_events_rss', name='team-events-rss'),31 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/rss/$', 'events.views.team_events_rss', name='team-events-rss'),
31 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/ical/$', 'events.views.team_event_list_ical', name='team-event-list-ical'),32 url(r'^(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/ical/$', 'events.views.team_event_list_ical', name='team-event-list-ical'),
32 url(r'^add/$', 'events.views.team_event_select', name='team-event-select'), 33 url(r'^add/$', 'events.views.team_event_select', name='team-event-select'),
33 url(r'^comment-update/$', 'events.views.team_event_comment_edit', name='team-event-comment-edit'),34 url(r'^comment-update/$', 'events.views.team_event_comment_edit', name='team-event-comment-edit'),
34 url(r'^comment-delete/(?P<pk>\d+)/$', 'events.views.team_event_comment_delete', name='team-event-comment-delete'),35 url(r'^comment-delete/(?P<pk>\d+)/$', 'events.views.team_event_comment_delete', name='team-event-comment-delete'),
35 36
36 # Old url notations37 # Old url notations
37 url(r'^team/locations/$', 'events.views.team_event_locations'),38 url(r'^team/locations/$', 'events.views.team_event_locations'),
38 url(r'^team/ical/$', 'events.views.teams_event_list_ical'),39 url(r'^team/ical/$', 'events.views.teams_event_list_ical'),
3940
=== modified file 'loco_directory/events/views.py'
--- loco_directory/events/views.py 2012-11-26 23:07:59 +0000
+++ loco_directory/events/views.py 2012-11-28 00:51:20 +0000
@@ -16,7 +16,7 @@
16from forms import GlobalEventForm16from forms import GlobalEventForm
17from forms import AttendeeRegistrationForm17from forms import AttendeeRegistrationForm
1818
19from common.utils import redirect, simple_iterator19from common.utils import simple_iterator
20from common.forms import FilterHistoryList20from common.forms import FilterHistoryList
21from common import launchpad21from common import launchpad
2222
@@ -133,7 +133,7 @@
133#################################################################133#################################################################
134# Team Events134# Team Events
135#################################################################135#################################################################
136def team_event_detail(request, team_slug, team_event_id):136def team_event_detail(request, team_slug, team_event_id, event_slug=None):
137 """137 """
138 detailed view for a team event138 detailed view for a team event
139 """139 """
@@ -148,9 +148,7 @@
148 if form.is_valid():148 if form.is_valid():
149 team_event_comment = form.save(commit=False)149 team_event_comment = form.save(commit=False)
150 team_event_comment.team_event = team_event_object150 team_event_comment.team_event = team_event_object
151 from userprofiles.models import create_profile151 team_event_comment.commenter_profile = request.user.get_profile()
152 profile = create_profile(request.user.username)
153 team_event_comment.commenter_profile = profile
154 team_event_comment.save()152 team_event_comment.save()
155 request.user.message_set.create(message=_('Your comment has been saved.'))153 request.user.message_set.create(message=_('Your comment has been saved.'))
156 return redirect(team_event_object)154 return redirect(team_event_object)
@@ -192,7 +190,6 @@
192 else:190 else:
193 context = {'team_event_object': team_event_object}191 context = {'team_event_object': team_event_object}
194 return render_to_response('events/team_event_delete_confirm.html', context, RequestContext(request))192 return render_to_response('events/team_event_delete_confirm.html', context, RequestContext(request))
195
196 else:193 else:
197 request.user.message_set.create(message='%s %s' % (_('You can not remove this team event.'), _('You are not an admin/owner of the Launchpad team or on the LoCo Council.')))194 request.user.message_set.create(message='%s %s' % (_('You can not remove this team event.'), _('You are not an admin/owner of the Launchpad team or on the LoCo Council.')))
198 return redirect(team_event_object)195 return redirect(team_event_object)
@@ -207,7 +204,7 @@
207 elif len(teams) == 1:204 elif len(teams) == 1:
208 from django.core import urlresolvers205 from django.core import urlresolvers
209 url = urlresolvers.reverse('team-event-new', args=[teams[0].lp_name])206 url = urlresolvers.reverse('team-event-new', args=[teams[0].lp_name])
210 if request.GET.has_key('global_event_id'):207 if 'global_event_id' in request.GET:
211 return HttpResponseRedirect('%s?global_event_id=%s' % (url, request.GET.get('global_event_id', None)))208 return HttpResponseRedirect('%s?global_event_id=%s' % (url, request.GET.get('global_event_id', None)))
212 else:209 else:
213 return HttpResponseRedirect(url)210 return HttpResponseRedirect(url)
@@ -240,7 +237,7 @@
240 return HttpResponseRedirect(team_event.get_absolute_url())237 return HttpResponseRedirect(team_event.get_absolute_url())
241 else:238 else:
242 form = TeamEventForm(initial={'global_event': request.GET.get('global_event_id', None)}, teams=[team_object])239 form = TeamEventForm(initial={'global_event': request.GET.get('global_event_id', None)}, teams=[team_object])
243 if request.GET.has_key('global_event_id'):240 if 'global_event_id' in request.GET:
244 global_event = get_object_or_404(GlobalEvent, pk=request.GET.get('global_event_id'))241 global_event = get_object_or_404(GlobalEvent, pk=request.GET.get('global_event_id'))
245 context = {242 context = {
246 'team_object': team_object,243 'team_object': team_object,
@@ -331,11 +328,9 @@
331 """328 """
332 team_event_object = get_object_or_404(TeamEvent, pk=team_event_id)329 team_event_object = get_object_or_404(TeamEvent, pk=team_event_id)
333 if team_event_object.is_attending(request.user):330 if team_event_object.is_attending(request.user):
334 attendee_object = team_event_object.attendee_set.get(attendee_profile__user=request.user)331 attendee_object = team_event_object.attendee_set.get(attendee_profile=request.user.get_profile())
335 else:332 else:
336 from userprofiles.models import create_profile333 attendee_object = Attendee(team_event=team_event_object, attendee_profile=request.user.get_profile())
337 profile = create_profile(request.user.username)
338 attendee_object = Attendee(team_event=team_event_object, attendee_profile=profile)
339334
340 if request.method == 'POST':335 if request.method == 'POST':
341 form = AttendeeRegistrationForm(instance=attendee_object, data=request.POST)336 form = AttendeeRegistrationForm(instance=attendee_object, data=request.POST)
@@ -358,6 +353,7 @@
358 return render_to_response('events/team_event_register.html',353 return render_to_response('events/team_event_register.html',
359 context, RequestContext(request))354 context, RequestContext(request))
360355
356
361@login_required357@login_required
362def team_event_comment_new(request, team_slug, team_event_id):358def team_event_comment_new(request, team_slug, team_event_id):
363 """359 """
@@ -370,12 +366,10 @@
370 if form.is_valid():366 if form.is_valid():
371 team_event_comment = form.save(commit=False)367 team_event_comment = form.save(commit=False)
372 team_event_comment.team_event = team_event_object368 team_event_comment.team_event = team_event_object
373 from userprofiles.models import create_profile369 team_event_comment.commenter_profile = request.user.get_profile()
374 profile = create_profile(request.user.username)
375 team_event_comment.commenter_profile = profile
376 team_event_comment.save()370 team_event_comment.save()
377 request.user.message_set.create(message=_('Comment saved.'))371 request.user.message_set.create(message=_('Comment saved.'))
378 return redirect( team_event_object )372 return redirect(team_event_object)
379 else:373 else:
380 form = TeamEventCommentForm()374 form = TeamEventCommentForm()
381375
382376
=== modified file 'loco_directory/meetings/views.py'
--- loco_directory/meetings/views.py 2012-11-26 23:07:59 +0000
+++ loco_directory/meetings/views.py 2012-11-28 00:51:20 +0000
@@ -1,7 +1,6 @@
1from django.template import RequestContext1from django.template import RequestContext
2from django.http import HttpResponse, HttpResponseRedirect2from django.http import HttpResponse, HttpResponseRedirect
3from django.shortcuts import render_to_response3from django.shortcuts import render_to_response, redirect, get_object_or_404
4from django.shortcuts import get_object_or_404
5from django.contrib.auth.decorators import login_required4from django.contrib.auth.decorators import login_required
6from django.utils.translation import ugettext as _5from django.utils.translation import ugettext as _
7from django.core.urlresolvers import reverse6from django.core.urlresolvers import reverse
@@ -11,9 +10,6 @@
1110
12from forms import TeamMeetingForm, AgendaItemForm11from forms import TeamMeetingForm, AgendaItemForm
1312
14from django.db.models import Q
15
16from common.utils import redirect, simple_iterator
17from common import launchpad13from common import launchpad
18from common.forms import FilterHistoryList14from common.forms import FilterHistoryList
1915
@@ -164,8 +160,7 @@
164 request.user.message_set.create(message='%s %s' % (_('You can not remove this team meeting.'), _('You are not a member of any LoCo Teams.')))160 request.user.message_set.create(message='%s %s' % (_('You can not remove this team meeting.'), _('You are not a member of any LoCo Teams.')))
165 return redirect( 'meeting-list' )161 return redirect( 'meeting-list' )
166 elif len(teams) == 1:162 elif len(teams) == 1:
167 from django.core import urlresolvers163 url = reverse('team-meeting-new', args=[teams[0].lp_name])
168 url = urlresolvers.reverse('team-meeting-new', args=[teams[0].lp_name])
169 return HttpResponseRedirect(url)164 return HttpResponseRedirect(url)
170 else:165 else:
171 context = {'teams': teams}166 context = {'teams': teams}
172167
=== modified file 'loco_directory/teams/tests.py'
--- loco_directory/teams/tests.py 2012-11-23 21:40:17 +0000
+++ loco_directory/teams/tests.py 2012-11-28 00:51:20 +0000
@@ -26,7 +26,7 @@
26 claimed_id='http://example.com/identity_foo',26 claimed_id='http://example.com/identity_foo',
27 display_id='http://example.com/identity_foo')27 display_id='http://example.com/identity_foo')
28 self.useropenid_foo.save()28 self.useropenid_foo.save()
29 self.userprofile_foo = UserProfile.objects.create(user=self.user_foo)29 self.userprofile_foo = self.user_foo.get_profile()
3030
31 # user bar31 # user bar
32 self.user_bar = User.objects.create(32 self.user_bar = User.objects.create(
@@ -38,7 +38,7 @@
38 claimed_id='http://example.com/identity_bar',38 claimed_id='http://example.com/identity_bar',
39 display_id='http://example.com/identity_bar')39 display_id='http://example.com/identity_bar')
40 self.useropenid_bar.save()40 self.useropenid_bar.save()
41 self.userprofile_bar = UserProfile.objects.create(user=self.user_bar)41 self.userprofile_bar = self.user_bar.get_profile()
4242
43 # setup test country43 # setup test country
44 self.country = Country.objects.create(name='Test Country')44 self.country = Country.objects.create(name='Test Country')
4545
=== modified file 'loco_directory/teams/views.py'
--- loco_directory/teams/views.py 2012-11-26 23:07:59 +0000
+++ loco_directory/teams/views.py 2012-11-28 00:51:20 +0000
@@ -1,18 +1,14 @@
1# -*- coding: utf-8 -*-1# -*- coding: utf-8 -*-
2
3from django.template import RequestContext2from django.template import RequestContext
4from django.utils.translation import ugettext3from django.utils.translation import ugettext
5from django.core import serializers4from django.core import serializers
65
6from django.shortcuts import render_to_response, redirect, get_object_or_404
7from django.contrib.auth.decorators import login_required7from django.contrib.auth.decorators import login_required
8from django.db.models import Q
9
10from django.shortcuts import get_object_or_404
11from django.shortcuts import render_to_response
128
13from django import http9from django import http
1410
15from common.utils import redirect, simple_iterator11from common.utils import simple_iterator
16from common import launchpad12from common import launchpad
1713
18from teams.models import Continent, Team, countries_without_continent, countries_without_continent_have_teams, teams_without_country14from teams.models import Continent, Team, countries_without_continent, countries_without_continent_have_teams, teams_without_country
1915
=== modified file 'loco_directory/templates/events/team_event_detail.html'
--- loco_directory/templates/events/team_event_detail.html 2012-09-08 21:45:10 +0000
+++ loco_directory/templates/events/team_event_detail.html 2012-11-28 00:51:20 +0000
@@ -9,7 +9,7 @@
9{% if team_event_object.description %}9{% if team_event_object.description %}
10<meta property="og:description" content="{{ team_event_object.description|linebreaks|striptags }}" />10<meta property="og:description" content="{{ team_event_object.description|linebreaks|striptags }}" />
11{% endif %}11{% endif %}
12<meta property="og:url" content="http://loco.ubuntu.com{% url team-event-detail team_event_object.first_team.lp_name team_event_object.id %}"/>12<meta property="og:url" content="http://loco.ubuntu.com{{ team_event_object.get_absolute_url }}"/>
13<meta property="og:image" content="http://loco.ubuntu.com/media/images/cof_orange_hex1.png"/>13<meta property="og:image" content="http://loco.ubuntu.com/media/images/cof_orange_hex1.png"/>
14<meta property="og:site_name" content="Loco Team Portal"/>14<meta property="og:site_name" content="Loco Team Portal"/>
15<meta property="og:type" content="loco-team-portal:event"/>15<meta property="og:type" content="loco-team-portal:event"/>
1616
=== modified file 'loco_directory/templates/events/team_event_detail.inc.html'
--- loco_directory/templates/events/team_event_detail.inc.html 2012-09-08 21:45:10 +0000
+++ loco_directory/templates/events/team_event_detail.inc.html 2012-11-28 00:51:20 +0000
@@ -6,7 +6,7 @@
6 <h3>{{ team_event_object.name }}</h3>6 <h3>{{ team_event_object.name }}</h3>
7 {% if team_event_object.global_event %}7 {% if team_event_object.global_event %}
8 <div class="event-partofglobal-event">8 <div class="event-partofglobal-event">
9 {% trans "This event is part of" %} 9 {% trans "This event is part of" %}
10 <a href="{{ team_event_object.global_event.get_absolute_url }}">{{team_event_object.global_event.name }}</a>10 <a href="{{ team_event_object.global_event.get_absolute_url }}">{{team_event_object.global_event.name }}</a>
11 </div>11 </div>
12 {% endif %}12 {% endif %}
@@ -23,7 +23,7 @@
23 <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>23 <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
24 <g:plusone size="medium"></g:plusone>24 <g:plusone size="medium"></g:plusone>
25 <a href="http://twitter.com/share" class="twitter-share-button" data-lang="en">Tweet</a>25 <a href="http://twitter.com/share" class="twitter-share-button" data-lang="en">Tweet</a>
26 <div class="fb-like" data-href="http://loco.ubuntu.com{% url team-event-detail team_event_object.first_team.lp_name team_event_object.id %}" data-send="false" data-layout="button_count" data-width="40" data-show-faces="false" data-font="arial"></div>26 <div class="fb-like" data-href="http://loco.ubuntu.com{{ team_event_object.get_absolute_url }}" data-send="false" data-layout="button_count" data-width="40" data-show-faces="false" data-font="arial"></div>
27 </div>27 </div>
2828
29 {% if team_event_object.global_event %}29 {% if team_event_object.global_event %}
@@ -50,7 +50,7 @@
50 </div>50 </div>
51 {% endif %}51 {% endif %}
52 </div>52 </div>
53 53
54 <div class="map">54 <div class="map">
55 <img class="map_img" src="http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=640x100&scale=1&maptype=roadmap&markers=color:orange%7Clabel:S%7C40.702147,-74.015794&sensor=false">55 <img class="map_img" src="http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=640x100&scale=1&maptype=roadmap&markers=color:orange%7Clabel:S%7C40.702147,-74.015794&sensor=false">
56 </div>56 </div>
@@ -67,7 +67,7 @@
67 </div>67 </div>
6868
69 <div class="event-venue-adress">69 <div class="event-venue-adress">
70 {% if team_event_object.venue.address %}{{ team_event_object.venue.address }}{% endif %}{% if team_event_object.venue.spr %}, {{ team_event_object.venue.spr }}{% endif %} 70 {% if team_event_object.venue.address %}{{ team_event_object.venue.address }}{% endif %}{% if team_event_object.venue.spr %}, {{ team_event_object.venue.spr }}{% endif %}
71 </div>71 </div>
72 </div>72 </div>
73 {% endif %}73 {% endif %}
@@ -104,7 +104,7 @@
104 {% for team in team_event_object.teams.all %}<a class="pictogram-l" title="{% trans "Get more information about this team" %}" href="{{ team.get_absolute_url }}">{{ team.name }}</a>{% if not forloop.last %},{% endif %}{% endfor %}104 {% for team in team_event_object.teams.all %}<a class="pictogram-l" title="{% trans "Get more information about this team" %}" href="{{ team.get_absolute_url }}">{{ team.name }}</a>{% if not forloop.last %},{% endif %}{% endfor %}
105 </div>105 </div>
106 {% endif %}106 {% endif %}
107 {% endif %} 107 {% endif %}
108 </div>108 </div>
109109
110 {% if team_event_object.registration %}110 {% if team_event_object.registration %}
111111
=== modified file 'loco_directory/templates/teams/team_detail.html'
--- loco_directory/templates/teams/team_detail.html 2012-11-26 23:07:59 +0000
+++ loco_directory/templates/teams/team_detail.html 2012-11-28 00:51:20 +0000
@@ -185,7 +185,7 @@
185 </div>185 </div>
186 {% if team.next_5_events_and_meetings %}186 {% if team.next_5_events_and_meetings %}
187 {% for team_event in team.next_5_events_and_meetings %}187 {% for team_event in team.next_5_events_and_meetings %}
188 <a href="{% url team-event-detail team_event.first_team.lp_name team_event.id %}" title="{% if team_event.venue %}{% else %}{{team_event.date_begin|date:"M d"}}{% endif %}" class="event-meetings">188 <a href="{{ team_event.get_absolute_url }}" title="{% if team_event.venue %}{% else %}{{team_event.date_begin|date:"M d"}}{% endif %}" class="event-meetings">
189 <span class="title">{{ team_event.name }}</span>189 <span class="title">{{ team_event.name }}</span>
190 <small>{{ team_event.local_date_begin|date:"l, d N Y" }} {% trans "at " %}{{ team_event.local_date_begin|date:"H:i T" }}</small>190 <small>{{ team_event.local_date_begin|date:"l, d N Y" }} {% trans "at " %}{{ team_event.local_date_begin|date:"H:i T" }}</small>
191 <p>{{ team_event.description }}</p>191 <p>{{ team_event.description }}</p>
192192
=== modified file 'loco_directory/userprofiles/models.py'
--- loco_directory/userprofiles/models.py 2012-11-18 22:02:56 +0000
+++ loco_directory/userprofiles/models.py 2012-11-28 00:51:20 +0000
@@ -102,9 +102,8 @@
102102
103post_save.connect(create_userprofile, sender=auth_models.User, dispatch_uid=__name__)103post_save.connect(create_userprofile, sender=auth_models.User, dispatch_uid=__name__)
104104
105
105def create_profile(username):106def create_profile(username):
106 user, created = auth_models.User.objects.get_or_create(username=username)107 user, created = auth_models.User.objects.get_or_create(username=username)
107 if created:
108 user.save()
109 set_user_openid(user, force=True)108 set_user_openid(user, force=True)
110 return user.get_profile()109 return user.get_profile()

Subscribers

People subscribed via source and target branches