# HG changeset patch # User Paul Boddie # Date 1357336635 -3600 # Node ID 4bb7e573787369c6803c85c6ce836bbcd2f83c84 # Parent 9c363e2c0b20e86c8d5fafab26f2c593d338671c Fixed the items method in the Form class for Moin 1.9 request parameters, producing lists as the values and not (key, value) pairs for each value in a value list. Added missing support for mutable requests in Moin 1.9. diff -r 9c363e2c0b20 -r 4bb7e5737873 MoinSupport.py --- a/MoinSupport.py Mon Dec 03 16:37:04 2012 +0100 +++ b/MoinSupport.py Fri Jan 04 22:57:15 2013 +0100 @@ -16,6 +16,13 @@ import re import time +# Moin 1.9 request parameters. + +try: + from MoinMoin.support.werkzeug.datastructures import MultiDict +except ImportError: + pass + __version__ = "0.2" # Content type parsing. @@ -434,8 +441,9 @@ environment. """ - def __init__(self, form): - self.form = form + def __init__(self, request): + self.request = request + self.form = request.values def has_key(self, name): return not not self.form.getlist(name) @@ -450,14 +458,28 @@ def __getitem__(self, name): return self.form.getlist(name) + def __setitem__(self, name, value): + try: + self.form.setlist(name, value) + except TypeError: + self._write_enable() + self.form.setlist(name, value) + def __delitem__(self, name): - del self.form[name] + try: + del self.form[name] + except TypeError: + self._write_enable() + del self.form[name] + + def _write_enable(self): + self.form = self.request.values = MultiDict(self.form) def keys(self): return self.form.keys() def items(self): - return self.form.items(True) + return self.form.lists() class ActionSupport: @@ -521,7 +543,7 @@ "Work around disruptive MoinMoin changes in 1.9." if hasattr(request, "values"): - return Form(request.values) + return Form(request) else: return request.form