Ronnie has proposed merging lp:~ronnie.vd.c/loco-directory/623288 into
lp:loco-directory.
Requested reviews:
loco-directory-dev (loco-directory-dev)
Related bugs:
#623288 importing ical gives an error
https://bugs.launchpad.net/bugs/623288
Calendar suppport is now trough the python-vobject library
--
https://code.launchpad.net/~ronnie.vd.c/loco-directory/623288/+merge/44127
Your team loco-directory-dev is requested to review the proposed merge of
lp:~ronnie.vd.c/loco-directory/623288 into lp:loco-directory.
=== modified file 'INSTALL'
--- INSTALL 2010-11-27 03:36:17 +0000
+++ INSTALL 2010-12-18 12:43:53 +0000
@@ -8,7 +8,7 @@
- sudo -u postgres createdb -O postgres loco_directory
Generally:
- - sudo apt-get install python-django python-launchpadlib libjs-jquery-ui python-django-openid-auth python-django-south iso-codes gettext python-tz
+ - sudo apt-get install python-django python-launchpadlib libjs-jquery-ui python-django-openid-auth python-django-south iso-codes gettext python-tz python-vobject
- cd loco_directory
- cp local_settings.py.sample local_settings.py
# edit local_settings.py and set DATABASE_USER, DATABASE_PASSWORD, SECRET_KEY
=== modified file 'loco_directory/events/models.py'
--- loco_directory/events/models.py 2010-11-27 03:56:49 +0000
+++ loco_directory/events/models.py 2010-12-18 12:43:53 +0000
@@ -27,21 +27,17 @@
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 Loco Team Event
-SUMMARY:%(eventname)s
-DESCRIPTION:%(description)s
-END:VEVENT
-''' % {'id':self.id, 'dtstart':dtstart, 'dtend':dtend, 'eventname':self.name, 'description': self.description}
+ 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 Loco Team Event']
+ event.add('summary').value = self.name
+ event.add('description').value = self.description
def is_past(self):
return self.date_end > datetime.datetime.today()
=== modified file 'loco_directory/events/views.py'
--- loco_directory/events/views.py 2010-11-20 17:40:31 +0000
+++ loco_directory/events/views.py 2010-12-18 12:43:53 +0000
@@ -20,6 +20,7 @@
from common import launchpad
import datetime
+import vobject
def event_list(request):
"""
@@ -41,18 +42,17 @@
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('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 event in events:
- response.write(event.as_ical())
- response.write('''END:VCALENDAR''')
+ event.as_ical(calendar)
+ response.write(calendar.serialize())
+
return response
def event_ical(request, team_event_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