From c89948793ef5df4f3d6d673ecbe80095aa9c0091 Mon Sep 17 00:00:00 2001 From: Yoshinori Okuji <yo@nexedi.com> Date: Tue, 13 Dec 2005 13:37:17 +0000 Subject: [PATCH] Cache getPortalObject when enabled. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@4627 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/Base.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py index c501da43a8..83788da2fc 100755 --- a/product/ERP5Type/Base.py +++ b/product/ERP5Type/Base.py @@ -48,7 +48,7 @@ from Products.ERP5Type.Utils2 import _getListFor from Products.ERP5Type.Accessor.TypeDefinition import list_types from Products.ERP5Type.Accessor import Base as BaseAccessor from Products.ERP5Type.XMLExportImport import Base_asXML -from Products.ERP5Type.Cache import CachingMethod, clearCache +from Products.ERP5Type.Cache import CachingMethod, clearCache, getTransactionCache from Products.CMFCore.WorkflowCore import ObjectDeleted from Accessor import WorkflowState @@ -1153,7 +1153,20 @@ class Base( CopyContainer, PortalContent, ActiveObject, ERP5PropertyManager ): """ Returns the portal object """ - return self.portal_url.getPortalObject() + cache = getTransactionCache(self) + if cache is not None: + key = 'getPortalObject' + try: + return cache[key] + except KeyError: + pass + + result = self.portal_url.getPortalObject() + + if cache is not None: + cache[key] = result + + return result security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowIds') def getWorkflowIds(self): -- 2.30.9