From 3234cf1982b2f0d5edae16174e7b2e7f28dfdafc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Fri, 24 Mar 2006 12:36:22 +0000
Subject: [PATCH] cache path of TypeInformation objects, not objects themselves
 (for allowedContentType)

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@6198 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Type/Document/Folder.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/product/ERP5Type/Document/Folder.py b/product/ERP5Type/Document/Folder.py
index 60531c30db..77c92b85e0 100755
--- a/product/ERP5Type/Document/Folder.py
+++ b/product/ERP5Type/Document/Folder.py
@@ -644,17 +644,19 @@ be a problem)."""
       def compareTypes(a, b): return cmp(a.title or a.id, b.title or b.id)
       type_list = CMFBTreeFolder.allowedContentTypes(self)
       type_list.sort(compareTypes)
-      return type_list
+      return ['/'.join(x.getPhysicalPath()) for x in type_list]
     
     _allowedContentTypes = CachingMethod( _allowedContentTypes,
                                           id = 'allowedContentTypes',
                                           cache_duration = 300)
     user = str(_getAuthenticatedUser(self))
     portal_type = self.getPortalType()
-    portal_path = self.getPortalObject().getPhysicalPath()
-    return _allowedContentTypes( portal_type = portal_type,
-                                 user = user,
-                                 portal_path = portal_path )
+    portal = self.getPortalObject()
+    portal_path = portal.getPhysicalPath()
+    return [portal.restrictedTraverse(path) for path in
+              _allowedContentTypes( portal_type = portal_type,
+                                    user = user,
+                                    portal_path = portal_path )]
 
   # Multiple Inheritance Priority Resolution
   _setProperty = Base._setProperty
-- 
2.30.9