diff --git a/product/ERP5/Tool/TrashTool.py b/product/ERP5/Tool/TrashTool.py index cabb49d69d5e3f20839e4e39a5f029d179f25607..f84723a7159b0072fa5f976fab21fb457e46ff40 100644 --- a/product/ERP5/Tool/TrashTool.py +++ b/product/ERP5/Tool/TrashTool.py @@ -82,7 +82,12 @@ class TrashTool(BaseTool): # object doesn't exist any longer pass else: - copy = obj._p_jar.exportFile(obj._p_oid) + connection = obj._p_jar + o = obj + while connection is None: + o = o.aq_parent + connection=o._p_jar + copy = connection.exportFile(obj._p_oid) # import object in trash connection = backup_object_container._p_jar o = backup_object_container @@ -91,8 +96,8 @@ class TrashTool(BaseTool): connection=o._p_jar copy.seek(0) backup = connection.importFile(copy) - backup.isIndexable = 0 try: + backup.isIndexable = 0 backup_object_container._setObject(object_id, backup) except AttributeError: # XXX we can go here due to formulator because attribute field_added @@ -103,7 +108,7 @@ class TrashTool(BaseTool): # in case of portal types, export properties instead of subobjects if obj is None: object_path = container_path + [object_id] - obj = self.unrestrictedTraverse(object_path) + obj = self.unrestrictedTraverse(object_path, None) if obj is None: pass elif getattr(obj, 'meta_type', None) == 'ERP5 Type Information':