Ronnie has proposed merging lp:~ronnie.vd.c/loco-directory/712569-meeting-ical
into lp:loco-directory.
Requested reviews:
loco-directory-dev (loco-directory-dev)
Related bugs:
#712569 meetings ical does not use python-vobject
https://bugs.launchpad.net/bugs/712569
For more details, see:
https://code.launchpad.net/~ronnie.vd.c/loco-directory/712569-meeting-ical/+merge/48509
--
https://code.launchpad.net/~ronnie.vd.c/loco-directory/712569-meeting-ical/+merge/48509
Your team loco-directory-dev is requested to review the proposed merge of
lp:~ronnie.vd.c/loco-directory/712569-meeting-ical into lp:loco-directory.
=== modified file 'loco_directory/meetings/models.py'
--- loco_directory/meetings/models.py 2011-01-23 16:15:22 +0000
+++ loco_directory/meetings/models.py 2011-02-03 16:54:55 +0000
@@ -22,20 +22,16 @@
def __unicode__(self):
return self.name
- def as_ical(self):
+ def as_ical(self, cal):
"""
return a event as ical
"""
- dtstart = str(self.date_begin).replace(' ','T', 1).replace(':','',2).replace('-','',2)
- dtend = str(self.date_end).replace(' ','T', 1).replace(':','',2).replace('-','',2)
- return '''BEGIN:VEVENT
-UID:%(id)s
-DTSTART:%(dtstart)sZ
-DTEND:%(dtend)sZ
-CATEGORIES:Ubuntu Team Meeting
-SUMMARY:%(meetingname)s
-END:VEVENT
-''' % {'id':self.id, 'dtstart':dtstart, 'dtend':dtend, 'meetingname':self.name}
+ event = cal.add('vevent')
+ event.add('uid').value = str(self.id)
+ event.add('dtstart').value = self.date_begin
+ event.add('dtend').value = self.date_end
+ event.add('categories').value = ['Ubuntu Team Meeting']
+ event.add('summary').value = self.name or ''
def is_past(self):
return self.date_end < datetime.datetime.today()
=== modified file 'loco_directory/meetings/views.py'
--- loco_directory/meetings/views.py 2011-02-02 03:49:41 +0000
+++ loco_directory/meetings/views.py 2011-02-03 16:54:55 +0000
@@ -17,6 +17,7 @@
from userprofiles.models import UserProfile
import datetime
+import vobject
def meeting_list(request):
"""
@@ -36,19 +37,20 @@
filename = "%s.ics" % name.replace(' ', '-').lower()
response = HttpResponse(mimetype='text/calendar')
response['Content-Disposition'] = 'attachment; filename=%s' % filename.encode('ascii', 'replace')
- response.write('''BEGIN:VCALENDAR
-PRODID:-//loco.ubuntu.com//EN
-VERSION:2.0
-CALSCALE:GREGORIAN
-METHOD:PUBLISH
-X-WR-TIMEZONE:UTC
-''')
- response.write('X-WR-CALNAME:%s\n' % name)
- response.write('X-WR-CALDESC:%s\n' % name)
+ calendar = vobject.iCalendar()
+ calendar.add('prodid').value = '-//loco.ubuntu.com//EN'
+ calendar.add('version').value = '2.0'
+ calendar.add('calscale').value = 'GREGORIAN'
+ calendar.add('method').value = 'PUBLISH'
+ calendar.add('x-wr-timezone').value = 'UTC'
+ calendar.add('x-wr-calname').value = name
+ calendar.add('x-wr-caldesc').value = name
for meeting in meetings:
- response.write(meeting.as_ical())
- response.write('''END:VCALENDAR''')
+ meeting.as_ical(calendar)
+ response.write(calendar.serialize())
+
return response
+
def meeting_ical(request, team_meeting_id):
"""
_______________________________________________
Mailing list: https://launchpad.net/~loco-directory-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~loco-directory-dev
More help : https://help.launchpad.net/ListHelp