1.1 --- a/EventAggregatorSupport.py Tue Jul 10 23:55:53 2012 +0200
1.2 +++ b/EventAggregatorSupport.py Wed Jul 11 00:46:55 2012 +0200
1.3 @@ -772,14 +772,8 @@
1.4 fmt.page = page = self.page
1.5 request = page.request
1.6
1.7 - # Suppress line anchors.
1.8 -
1.9 parser_cls = self.getParserClass(self.getFormat())
1.10 - parser = parser_cls(text, request, line_anchors=False)
1.11 -
1.12 - # Fix lists by indicating that a paragraph is already started.
1.13 -
1.14 - return redirectedOutput(request, parser, fmt, inhibit_p=True)
1.15 + return formatText(text, request, fmt, parser_cls)
1.16
1.17 # Event details.
1.18
1.19 @@ -3419,6 +3413,30 @@
1.20
1.21 # Event-only formatting.
1.22
1.23 +def formatEvent(event, request, fmt):
1.24 +
1.25 + "Format the given 'event' using the 'request' and formatter 'fmt'."
1.26 +
1.27 + event_details = event.getDetails()
1.28 + write = request.write
1.29 +
1.30 + write(fmt.definition_list(on=1))
1.31 +
1.32 + for term in ("title", "summary", "start", "end", "description", "link",
1.33 + "location", "geo", "topics", "categories"):
1.34 +
1.35 + if event_details.has_key(term):
1.36 + value = event_details[term]
1.37 + if value:
1.38 + write(fmt.definition_term(on=1))
1.39 + write(fmt.text(term))
1.40 + write(fmt.definition_term(on=0))
1.41 + write(fmt.definition_desc(on=1))
1.42 + write(formatText(str(value), request, fmt))
1.43 + write(fmt.definition_desc(on=0))
1.44 +
1.45 + write(fmt.definition_list(on=0))
1.46 +
1.47 def formatEventsForOutputType(events, request, mimetype, parent=None, descriptions=None, latest_timestamp=None):
1.48
1.49 """
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/parsers/event.py Wed Jul 11 00:46:55 2012 +0200
2.3 @@ -0,0 +1,62 @@
2.4 +# -*- coding: iso-8859-1 -*-
2.5 +"""
2.6 + MoinMoin - event (EventAggregator)
2.7 +
2.8 + @copyright: 2012 by Paul Boddie <paul@boddie.org.uk>
2.9 + @license: GNU GPL (v2 or later), see COPYING.txt for details.
2.10 +"""
2.11 +
2.12 +from EventAggregatorSupport import *
2.13 +
2.14 +Dependencies = ["pages"]
2.15 +
2.16 +# Parser support.
2.17 +
2.18 +class Parser:
2.19 +
2.20 + "Interpret and show event information in different ways."
2.21 +
2.22 + Dependencies = Dependencies
2.23 + extensions = []
2.24 +
2.25 + # Output content types preferred by this parser.
2.26 +
2.27 + output_mimetypes = ["text/html", "text/calendar"]
2.28 +
2.29 + def __init__(self, raw, request, **kw):
2.30 +
2.31 + """
2.32 + Initialise the parser with the given 'raw' data, 'request' and any
2.33 + keyword arguments that may have been supplied.
2.34 + """
2.35 +
2.36 + self.raw = raw
2.37 + self.request = request
2.38 + #self.attrs = parseAttributes(kw.get("format_args", ""), False)
2.39 +
2.40 + def format(self, fmt):
2.41 +
2.42 + "Format an event using the given formatter 'fmt'."
2.43 +
2.44 + events = parseEvents(self.raw, self.request.page)
2.45 +
2.46 + for event in events:
2.47 + formatEvent(event, self.request, fmt)
2.48 +
2.49 + # Extra API methods.
2.50 +
2.51 + def formatText(self, text, mimetype):
2.52 +
2.53 + "Format the event 'text' for the given 'mimetype'."
2.54 +
2.55 + events = parseEvents(text)
2.56 + formatEventsForOutputType(events, self.request, mimetype)
2.57 +
2.58 + # Class methods.
2.59 +
2.60 + def getOutputTypes(self):
2.61 + return self.output_mimetypes
2.62 +
2.63 + getOutputTypes = classmethod(getOutputTypes)
2.64 +
2.65 +# vim: tabstop=4 expandtab shiftwidth=4