[web/controller] fix some cases where _cwmsgid may appears twice
the Way the URL was build led to double _cwmsgid parameter in the
URL query, which led in turn to a crash.
We use _cw.rebuild_url to update new params instead of
append_url_params which merely does a textual concatenation.
--- a/web/controller.py Mon Feb 20 16:14:19 2012 +0100
+++ b/web/controller.py Wed Feb 22 09:33:43 2012 +0100
@@ -207,10 +207,12 @@
if '__redirectpath' in self._cw.form:
# if redirect path was explicitly specified in the form, use it
path = self._cw.form['__redirectpath']
- url = self._cw.build_url(path, **newparams)
+ url = self._cw.build_url(path)
url = append_url_params(url, self._cw.form.get('__redirectparams'))
else:
url = self._cw.last_visited_page()
+ # The newparams must update the params in all cases
+ url = self._cw.rebuild_url(url, **newparams)
raise Redirect(url)