diff --git a/product/ERP5/Tool/TrashTool.py b/product/ERP5/Tool/TrashTool.py index 31a1234064d4bdc3f46558f214c0d7cb2338d57a..a15a408819aa1743f87574f757a949f94d92cf65 100644 --- a/product/ERP5/Tool/TrashTool.py +++ b/product/ERP5/Tool/TrashTool.py @@ -37,6 +37,7 @@ from Products.ERP5 import _dtmldir from zLOG import LOG, WARNING from DateTime import DateTime from Acquisition import aq_base +from cStringIO import StringIO class TrashTool(BaseTool): """ @@ -145,9 +146,10 @@ class TrashTool(BaseTool): obj = self.unrestrictedTraverse(object_path) if obj is not None: for subobject_id in list(obj.objectIds()): - subobject = obj.unrestrictedTraverse(subobject_id) - subobject_copy = subobject._p_jar.exportFile(subobject._p_oid) - subobjects_dict[subobject_id] = subobject_copy + subobject = obj[subobject_id] + subobjects_dict[subobject_id] = subobject._p_jar.exportFile( + subobject._p_oid, StringIO()) + if save: # remove subobjecs from backup object obj._delObject(subobject_id) if subobject_id in obj.objectIds():