# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1241436664 -7200 # Node ID 45bec81a9e1c15aeb2b2f185222060e1aaff1023 # Parent 59c5cec05bbde621f07840dc9de62412ad0bfb9d makes vobject optional diff -r 59c5cec05bbd -r 45bec81a9e1c web/views/calendar.py --- a/web/views/calendar.py Mon May 04 13:30:47 2009 +0200 +++ b/web/views/calendar.py Mon May 04 13:31:04 2009 +0200 @@ -7,8 +7,6 @@ from datetime import datetime, date, timedelta -from vobject import iCalendar - from logilab.mtconverter import html_escape from cubicweb.interfaces import ICalendarable @@ -32,35 +30,40 @@ # Calendar views ############################################################## +try: + from vobject import iCalendar -class iCalView(EntityView): - """A calendar view that generates a iCalendar file (RFC 2445) + class iCalView(EntityView): + """A calendar view that generates a iCalendar file (RFC 2445) - Does apply to ICalendarable compatible entities - """ - __select__ = implements(ICalendarable) - need_navigation = False - content_type = 'text/calendar' - title = _('iCalendar') - templatable = False - id = 'ical' + Does apply to ICalendarable compatible entities + """ + __select__ = implements(ICalendarable) + need_navigation = False + content_type = 'text/calendar' + title = _('iCalendar') + templatable = False + id = 'ical' - def call(self): - ical = iCalendar() - for i in range(len(self.rset.rows)): - task = self.complete_entity(i) - event = ical.add('vevent') - event.add('summary').value = task.dc_title() - event.add('description').value = task.dc_description() - if task.start: - event.add('dtstart').value = task.start - if task.stop: - event.add('dtend').value = task.stop + def call(self): + ical = iCalendar() + for i in range(len(self.rset.rows)): + task = self.complete_entity(i) + event = ical.add('vevent') + event.add('summary').value = task.dc_title() + event.add('description').value = task.dc_description() + if task.start: + event.add('dtstart').value = task.start + if task.stop: + event.add('dtend').value = task.stop - buff = ical.serialize() - if not isinstance(buff, unicode): - buff = unicode(buff, self.req.encoding) - self.w(buff) + buff = ical.serialize() + if not isinstance(buff, unicode): + buff = unicode(buff, self.req.encoding) + self.w(buff) + +except ImportError: + pass class hCalView(EntityView): """A calendar view that generates a hCalendar file