From 797981e3272ea4f001e45ba95cb7456eac2a5ae0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Calonne?= <aurel@nexedi.com>
Date: Thu, 16 Aug 2007 11:38:53 +0000
Subject: [PATCH] prevent some failure when backuping, thanks to bartek

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@15699 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Tool/TrashTool.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/product/ERP5/Tool/TrashTool.py b/product/ERP5/Tool/TrashTool.py
index cabb49d69d..f84723a715 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':
-- 
2.30.9