Hi,
I was wondering if anyone is planning to add automated migration of Python Methods to Python Scripts (maybe with Zope 2.3 final)? Or maybe there's something like this in there already that I missed?
Anyway, for now I created a simple hack to do this - it's not pretty, but it works. In case anyone's interested, this is how to do it: <...snip...>
Oops, bug. It didn't work in ZClasses. And while I was fixing that, I modified it so that if you select more than one object all will be converted and you'll get back to the object list. A bug in a hack. How embarrassing. Here's the new External Method. Still-hoping-anybody-cares-about-this, Itai from Products.PythonScripts.PythonScript import PythonScript from string import strip from urllib import quote def PythonMethod2Script(self, ids, REQUEST, RESPONSE): for method_id in ids: method_id = strip(method_id) method = self._getOb(method_id) if method.meta_type != 'Python Method': raise 'AppError', 'Selected object is not a Python Method' title = method.title params = method._params if not type(method._body) == type(''): body = method._body.read() else: body = method._body self.manage_renameObject(method_id, method_id+'X') id = self._setObject(method_id, PythonScript(method_id)) script = self._getOb(method_id) script.ZPythonScript_setTitle(title) script.ZPythonScript_edit(params, body) if len(ids) == 1: return RESPONSE.redirect('%s/%s/manage' % (REQUEST['URL1'], quote(method_id))) else: return RESPONSE.redirect('%s/manage' % REQUEST['URL1']) -- Itai Tavor "Je sautille, donc je suis." C3Works itai@c3works.com - Kermit the Frog "If you haven't got your health, you haven't got anything"