Merge lp:~ronnie.vd.c/loco-team-portal/712569-meeting-ical into lp:loco-team-portal

Proposed by Ronnie
Status: Merged
Approved by: Chris Johnston
Approved revision: 384
Merged at revision: 389
Proposed branch: lp:~ronnie.vd.c/loco-team-portal/712569-meeting-ical
Merge into: lp:loco-team-portal
Diff against target: 75 lines (+20/-22)
2 files modified
loco_directory/meetings/models.py (+7/-11)
loco_directory/meetings/views.py (+13/-11)
To merge this branch: bzr merge lp:~ronnie.vd.c/loco-team-portal/712569-meeting-ical
Reviewer Review Type Date Requested Status
LoCo Team Portal Developers Pending
Review via email: mp+48509@code.launchpad.net
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/meetings/models.py'
2--- loco_directory/meetings/models.py 2011-01-23 16:15:22 +0000
3+++ loco_directory/meetings/models.py 2011-02-03 16:55:59 +0000
4@@ -22,20 +22,16 @@
5 def __unicode__(self):
6 return self.name
7
8- def as_ical(self):
9+ def as_ical(self, cal):
10 """
11 return a event as ical
12 """
13- dtstart = str(self.date_begin).replace(' ','T', 1).replace(':','',2).replace('-','',2)
14- dtend = str(self.date_end).replace(' ','T', 1).replace(':','',2).replace('-','',2)
15- return '''BEGIN:VEVENT
16-UID:%(id)s
17-DTSTART:%(dtstart)sZ
18-DTEND:%(dtend)sZ
19-CATEGORIES:Ubuntu Team Meeting
20-SUMMARY:%(meetingname)s
21-END:VEVENT
22-''' % {'id':self.id, 'dtstart':dtstart, 'dtend':dtend, 'meetingname':self.name}
23+ event = cal.add('vevent')
24+ event.add('uid').value = str(self.id)
25+ event.add('dtstart').value = self.date_begin
26+ event.add('dtend').value = self.date_end
27+ event.add('categories').value = ['Ubuntu Team Meeting']
28+ event.add('summary').value = self.name or ''
29
30 def is_past(self):
31 return self.date_end < datetime.datetime.today()
32
33=== modified file 'loco_directory/meetings/views.py'
34--- loco_directory/meetings/views.py 2011-02-02 03:49:41 +0000
35+++ loco_directory/meetings/views.py 2011-02-03 16:55:59 +0000
36@@ -17,6 +17,7 @@
37
38 from userprofiles.models import UserProfile
39 import datetime
40+import vobject
41
42 def meeting_list(request):
43 """
44@@ -36,19 +37,20 @@
45 filename = "%s.ics" % name.replace(' ', '-').lower()
46 response = HttpResponse(mimetype='text/calendar')
47 response['Content-Disposition'] = 'attachment; filename=%s' % filename.encode('ascii', 'replace')
48- response.write('''BEGIN:VCALENDAR
49-PRODID:-//loco.ubuntu.com//EN
50-VERSION:2.0
51-CALSCALE:GREGORIAN
52-METHOD:PUBLISH
53-X-WR-TIMEZONE:UTC
54-''')
55- response.write('X-WR-CALNAME:%s\n' % name)
56- response.write('X-WR-CALDESC:%s\n' % name)
57+ calendar = vobject.iCalendar()
58+ calendar.add('prodid').value = '-//loco.ubuntu.com//EN'
59+ calendar.add('version').value = '2.0'
60+ calendar.add('calscale').value = 'GREGORIAN'
61+ calendar.add('method').value = 'PUBLISH'
62+ calendar.add('x-wr-timezone').value = 'UTC'
63+ calendar.add('x-wr-calname').value = name
64+ calendar.add('x-wr-caldesc').value = name
65 for meeting in meetings:
66- response.write(meeting.as_ical())
67- response.write('''END:VCALENDAR''')
68+ meeting.as_ical(calendar)
69+ response.write(calendar.serialize())
70+
71 return response
72+
73
74 def meeting_ical(request, team_meeting_id):
75 """

Subscribers

People subscribed via source and target branches