Commit 91796c04 authored by Ivan Tyagov's avatar Ivan Tyagov

Do not work directly with REQUEST.form rather use a copy of it.

Clean up API.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@25323 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent b32c82f8
...@@ -385,12 +385,9 @@ class WizardTool(BaseTool): ...@@ -385,12 +385,9 @@ class WizardTool(BaseTool):
def callRemoteProxyMethod(self, distant_method, server_url=None, use_cache=1, **kw): def callRemoteProxyMethod(self, distant_method, server_url=None, use_cache=1, **kw):
""" Call proxy method on server. """ """ Call proxy method on server. """
# set real method_id
form = self.REQUEST.form
configurator_user_preferred_language = self.getConfiguratorUserPreferredLanguage() configurator_user_preferred_language = self.getConfiguratorUserPreferredLanguage()
def wrapper(distant_method, **kw): def wrapper(distant_method, **kw):
form['method_id'] = distant_method return self._callRemoteMethod(distant_method, use_proxy=1, **kw)['data']
return self._callRemoteMethod('proxyMethodHandler', **kw)['data']
if use_cache: if use_cache:
wrapper = CachingMethod(wrapper, wrapper = CachingMethod(wrapper,
id = 'callRemoteProxyMethod_%s_%s' id = 'callRemoteProxyMethod_%s_%s'
...@@ -399,16 +396,19 @@ class WizardTool(BaseTool): ...@@ -399,16 +396,19 @@ class WizardTool(BaseTool):
rc = wrapper(distant_method, **kw) rc = wrapper(distant_method, **kw)
return rc return rc
def _callRemoteMethod(self, distant_method, server_url=None, wrap_result=1, **kw): def _callRemoteMethod(self, distant_method, server_url=None, wrap_result=1, use_proxy=0, **kw):
""" Call remote method on server and get result. """ """ Call remote method on server and get result. """
result_call = GeneratorCall() result_call = GeneratorCall()
if server_url is None: if server_url is None:
# calculate it # calculate it
server_url = self.getServerUrl() + self.getServerRoot() server_url = self.getServerUrl() + self.getServerRoot()
witch_tool = self._getRemoteWitchTool(server_url) witch_tool = self._getRemoteWitchTool(server_url)
parameter_dict = self.REQUEST.form parameter_dict = self.REQUEST.form.copy()
# add remote method arguments if use_proxy:
parameter_dict['method_kw'] = kw # add remote method arguments
parameter_dict['method_id'] = distant_method
parameter_dict['method_kw'] = kw
distant_method = 'proxyMethodHandler'
## add client arguments ## add client arguments
self._updateParameterDictWithServerInfo(parameter_dict) self._updateParameterDictWithServerInfo(parameter_dict)
## handle file upload ## handle file upload
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment