# HG changeset patch # User Paul Boddie # Date 1276126389 -7200 # Node ID 523d3d70da00110283c2b3853e5203ed1f8498a7 # Parent 407f7373d8ea89098d43fd29c527d72b5a646075 Fixed the summary action to work with the MoinMoin 1.9.x request API. Changed the form wrapper to provide None as the default for "empty" fields. diff -r 407f7373d8ea -r 523d3d70da00 EventAggregatorSupport.py --- a/EventAggregatorSupport.py Thu Jun 10 00:34:21 2010 +0200 +++ b/EventAggregatorSupport.py Thu Jun 10 01:33:09 2010 +0200 @@ -99,8 +99,6 @@ # Utility classes and associated functions. -Undefined = object() - class Form: """ @@ -111,13 +109,10 @@ def __init__(self, form): self.form = form - def get(self, name, default=Undefined): + def get(self, name, default=None): values = self.form.getlist(name) if not values: - if default is Undefined: - return [] - else: - return default + return default else: return values @@ -140,6 +135,21 @@ else: return request.form +class send_headers: + + """ + A wrapper to preserve MoinMoin 1.8.x (and earlier) request behaviour in a + 1.9.x environment. + """ + + def __init__(self, request): + self.request = request + + def __call__(self, headers): + for header in headers: + parts = header.split(":") + self.request.headers.add(parts[0], ":".join(parts[1:])) + # Textual representations. def getHTTPTimeString(tmtuple): @@ -1289,7 +1299,7 @@ in the 'request'. """ - return request.form.get(name, [default])[0] + return get_form(request).get(name, [default])[0] def getQualifiedParameter(request, calendar_name, argname, default=None): diff -r 407f7373d8ea -r 523d3d70da00 README.txt --- a/README.txt Thu Jun 10 00:34:21 2010 +0200 +++ b/README.txt Thu Jun 10 01:33:09 2010 +0200 @@ -232,6 +232,7 @@ breaks existing code (no longer providing access to query string parameters via the form attribute, and only returning single values unless the new getlist method on form-like objects is used). + * Fixed the direct writing of requests to be compatible with MoinMoin 1.9. New in EventAggregator 0.6 (Changes since EventAggregator 0.5) -------------------------------------------------------------- diff -r 407f7373d8ea -r 523d3d70da00 actions/EventAggregatorSummary.py --- a/actions/EventAggregatorSummary.py Thu Jun 10 00:34:21 2010 +0200 +++ b/actions/EventAggregatorSummary.py Thu Jun 10 01:33:09 2010 +0200 @@ -203,10 +203,12 @@ # Output summary data... - if EventAggregatorSupport.isMoin15(): + if hasattr(request, "http_headers"): send_headers = request.http_headers + elif hasattr(request, "emit_http_headers"): + send_headers = request.emit_http_headers else: - send_headers = request.emit_http_headers + send_headers = EventAggregatorSupport.send_headers(request) # Define headers. @@ -282,11 +284,16 @@ # Using the page name and the page URL in the title, link and # description. + if hasattr(request, "getPathinfo"): + path_info = request.getPathinfo() + else: + path_info = request.path + request.write('\r\n') request.write('\r\n') - request.write('%s\r\n' % request.getPathinfo()[1:]) - request.write('%s%s\r\n' % (request.getBaseURL(), request.getPathinfo())) - request.write('Events published on %s%s\r\n' % (request.getBaseURL(), request.getPathinfo())) + request.write('%s\r\n' % path_info[1:]) + request.write('%s%s\r\n' % (request.getBaseURL(), path_info)) + request.write('Events published on %s%s\r\n' % (request.getBaseURL(), path_info)) request.write('%s\r\n' % EventAggregatorSupport.getHTTPTimeString(latest_timestamp)) # Sort all_shown_events by start date, reversed: