# HG changeset patch # User Paul Boddie # Date 1389707461 -3600 # Node ID 9476faf9055d2bf9b69977b2836751739dffecf1 # Parent a911715f664cec2e175556d4a035542a437ede6b Added elementary presentation of calendar resources as events. diff -r a911715f664c -r 9476faf9055d parsers/calendar.py --- a/parsers/calendar.py Tue Jan 14 14:50:33 2014 +0100 +++ b/parsers/calendar.py Tue Jan 14 14:51:01 2014 +0100 @@ -2,12 +2,13 @@ """ MoinMoin - calendar (EventAggregator) - @copyright: 2012, 2013 by Paul Boddie + @copyright: 2012, 2013, 2014 by Paul Boddie @license: GNU GPL (v2 or later), see COPYING.txt for details. """ from MoinSupport import parseAttributes -from EventAggregatorSupport.Formatting import formatEventsForOutputType +from EventAggregatorSupport.Formatting import formatEventsForOutputType, \ + formatEvent from EventAggregatorSupport.Types import parseEvents, EventCalendar from codecs import getreader import vCalendar @@ -57,7 +58,13 @@ using the request. """ - (write or self.request.write)(fmt.text(self.raw)) + # Make a Unicode-capable StringIO. + + f = getreader("utf-8")(StringIO(self.raw.encode("utf-8"))) + calendar = EventCalendar("", vCalendar.parse(f), {}) + + for event in calendar.getEvents(): + formatEvent(event, self.request, fmt, write=write) # Extra API methods.