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

Reply via email to