Merge lp:~mhall119/summit/fixes-659285 into lp:summit

Proposed by Michael Hall
Status: Merged
Merged at revision: 42
Proposed branch: lp:~mhall119/summit/fixes-659285
Merge into: lp:summit
Prerequisite: lp:~mhall119/summit/fixes-458422
Diff against target: 96 lines (+16/-12)
4 files modified
summit/schedule/render.py (+6/-1)
summit/schedule/templates/schedule/summit.html (+1/-1)
summit/schedule/views.py (+7/-8)
summit/urls.py (+2/-2)
To merge this branch: bzr merge lp:~mhall119/summit/fixes-659285
Reviewer Review Type Date Requested Status
Dave Walker (community) Approve
Review via email: mp+38286@code.launchpad.net

Description of the change

Makes per-user ical feed available without login, but strips Private sessions from it.

To post a comment you must log in.
Revision history for this message
Dave Walker (davewalker) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'summit/schedule/render.py'
2--- summit/schedule/render.py 2010-10-12 21:50:55 +0000
3+++ summit/schedule/render.py 2010-10-12 21:50:55 +0000
4@@ -900,7 +900,10 @@
5
6 return csv
7
8- def as_ical(self, only_username=None, only_room=None, only_track=None):
9+ def as_ical(self, only_username=None,
10+ only_room=None,
11+ only_track=None,
12+ show_private=True):
13 """
14 return a schedule as ical
15 """
16@@ -924,6 +927,8 @@
17 continue
18 if only_track is not None and meeting.tracks.filter(slug=only_track).count() == 0:
19 continue
20+ if not show_private and meeting.private:
21+ continue
22 dtstart = str(slot.start_utc).replace(' ','T', 1).replace(':','',2).replace('-','',2)
23 dtend = str(slot.end_utc).replace(' ','T', 1).replace(':','',2).replace('-','',2)
24 categories = ','.join([t.title for t in meeting.tracks.all()])
25
26=== modified file 'summit/schedule/templates/schedule/summit.html'
27--- summit/schedule/templates/schedule/summit.html 2010-10-12 21:50:55 +0000
28+++ summit/schedule/templates/schedule/summit.html 2010-10-12 21:50:55 +0000
29@@ -37,7 +37,7 @@
30
31 <p><a href="/{{ summit.name }}/interest">Register your interest</a> in tracks and topics.</p>
32 <p>Download your
33-<a href="/{{ summit.name }}/my_schedule.ical">Participation Schedule</a> to import into your Calendar.
34+<a href="/{{ summit.name }}/participant/{{ attendee.user.username }}.ical">Participation Schedule</a> to import into your Calendar.
35 </p>
36 {% else %}
37 {% if request.user.is_authenticated %}
38
39=== modified file 'summit/schedule/views.py'
40--- summit/schedule/views.py 2010-10-12 21:50:55 +0000
41+++ summit/schedule/views.py 2010-10-12 21:50:55 +0000
42@@ -123,7 +123,7 @@
43 'summit': summit,
44 'attendee': attendee,
45 'schedule': schedule,
46- 'ical': '/%s/%s.ical' % (summit.name, room.name),
47+ 'ical': '/%s/room/%s.ical' % (summit.name, room.name),
48 'autoreload': 'reload' in request.GET,
49 }
50 return render_to_response("schedule/schedule.html", context,
51@@ -173,15 +173,15 @@
52 return response
53
54 @summit_only_required
55-def my_ical(request, summit):
56+def user_ical(request, summit, username):
57 """Returns a user's registered events as an ical"""
58 schedule = Schedule(request, summit)
59 schedule.calculate()
60
61- filename = "my_%s.ical" % summit.name.replace(' ', '-').lower()
62+ filename = "%s_%s.ical" % (summit.name, username)
63 response = HttpResponse(mimetype='text/calendar')
64- response['Content-Disposition'] = 'attachment; filename=%s' % filename.encode('ascii', 'replace')
65- response.write(schedule.as_ical(only_username=request.user.username))
66+ response['Content-Disposition'] = 'attachment; filename=%s' % filename.replace(' ', '-').lower().encode('ascii', 'replace')
67+ response.write(schedule.as_ical(only_username=username, show_private=False))
68 return response
69
70 @summit_only_required
71@@ -203,9 +203,8 @@
72 schedule.calculate()
73
74 filename = "%s_%s.ical" % (summit.name, track_slug)
75- response = HttpResponse(mimetype='text/pain')
76-# response = HttpResponse(mimetype='text/calendar')
77-# response['Content-Disposition'] = 'attachment; filename=%s' % filename.replace(' ', '-').lower().encode('ascii', 'replace')
78+ response = HttpResponse(mimetype='text/calendar')
79+ response['Content-Disposition'] = 'attachment; filename=%s' % filename.replace(' ', '-').lower().encode('ascii', 'replace')
80 response.write(schedule.as_ical(only_track=track_slug))
81 return response
82
83
84=== modified file 'summit/urls.py'
85--- summit/urls.py 2010-10-12 21:50:55 +0000
86+++ summit/urls.py 2010-10-12 21:50:55 +0000
87@@ -62,8 +62,8 @@
88 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[\w-]+)/$', 'by_track'),
89 (r'^(?P<summit_name>[\w-]+)\.csv$', 'csv'),
90 (r'^(?P<summit_name>[\w-]+)\.ical$', 'ical'),
91- (r'^(?P<summit_name>[\w-]+)/my_schedule\.ical$', 'my_ical'),
92- (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[\w-]+).ical$', 'room_ical'),
93+ (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[\w-]+)\.ical$', 'user_ical'),
94+ (r'^(?P<summit_name>[\w-]+)/room/(?P<room_name>[\w-]+).ical$', 'room_ical'),
95 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[\w-]+).ical$', 'track_ical'),
96 )
97

Subscribers

People subscribed via source and target branches