X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/bc716e7b2058b3bbcf49b7b5431a1d9e7ed23f02..e1156e7b33a4336d4cc6f7dea46a335c8277d65b:/patch_impl.py diff --git a/patch_impl.py b/patch_impl.py new file mode 100644 index 0000000..32b0500 --- /dev/null +++ b/patch_impl.py @@ -0,0 +1,32 @@ +from ZTUtils import make_query +from Products.CMFCore.utils import getToolByName +from Products.CMFDefault.exceptions import zExceptions_Unauthorized +from Products.CMFDefault.utils import translate + +def _setRedirect(self, provider_id, action_path, keys=''): + # Products.CMFDefault.formlib.form._EditFormMixin._setRedirect Plinn implementation + provider = getToolByName(self.context, provider_id) + try: + target = provider.getActionInfo(action_path, self.context, + check_condition=1)['url'] + except (ValueError, zExceptions_Unauthorized): + target = self._getPortalURL() + + kw = {} + if self.status: + message = translate(self.status, self.context) + if isinstance(message, unicode): + message = message.encode(self._getBrowserCharset()) + kw['portal_status_message'] = message + for k in keys.split(','): + k = k.strip() + v = self.request.form.get(k, None) + if v: + kw[k] = v + + if self.request.form.has_key('ajax') : + kw['ajax'] = self.request.form['ajax'] + query = kw and ('?%s' % make_query(kw)) or '' + self.request.RESPONSE.redirect('%s%s' % (target, query)) + + return ''