From e279752ce9101a5a3bea4c1e3e4c9dcc58d94836 Mon Sep 17 00:00:00 2001 From: Yoshinori Okuji <yo@nexedi.com> Date: Thu, 15 Sep 2005 16:29:01 +0000 Subject: [PATCH] Use group_method_id for reindexObject. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3791 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/Base.py | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py index 5e3214dc58..b82ff470d4 100755 --- a/product/ERP5Type/Base.py +++ b/product/ERP5Type/Base.py @@ -1701,10 +1701,26 @@ class Base( CopyContainer, PortalContent, ActiveObject, ERP5PropertyManager ): Reindexes an object args / kw required since we must follow API """ - self.activate(**kw).immediateReindexObject(*args, **kw) + self._reindexObject(*args, **kw) + + def _reindexObject(self, *args, **kw): + # When the activity supports group methods, portal_catalog/catalogObjectList is called instead of + # immediateReindexObject. + root_indexable = int(getattr(self.getPortalObject(),'isIndexable',1)) + if self.isIndexable and root_indexable: + self.activate(group_method_id='portal_catalog/catalogObjectList', **kw).immediateReindexObject(*args, **kw) security.declarePublic('recursiveReindexObject') recursiveReindexObject = reindexObject + + security.declareProtected( Permissions.AccessContentsInformation, 'getIndexableChildValueList' ) + def getIndexableChildValueList(self): + """ + Get indexable childen recursively. + """ + if self.isIndexable: + return [self] + return [] security.declareProtected(Permissions.ModifyPortalContent, 'reindexObjectSecurity') def reindexObjectSecurity(self): @@ -1716,24 +1732,6 @@ class Base( CopyContainer, PortalContent, ActiveObject, ERP5PropertyManager ): #LOG('reindexObjectSecurity', 0, 'self = %r, self.getPath() = %r' % (self, self.getPath())) self.reindexObject() - def immediateQueueCataloggedObject(self, *args, **kw): - if self.isIndexable: - catalog_tool = getToolByName(self, 'portal_catalog', None) - if catalog_tool is not None: - catalog_tool.queueCataloggedObject(self, *args, **kw) - - security.declarePublic('queueCataloggedObject') - def queueCataloggedObject(self, *args, **kw): - """ - Index an object in a deferred manner. - """ - if self.isIndexable: - #LOG('queueCataloggedObject', 0, 'activate immediateQueueCataloggedObject on %s' % self.getPath()) - self.activate(**kw).immediateQueueCataloggedObject(*args, **kw) - - security.declarePublic('recursiveQueueCataloggedObject') - recursiveQueueCataloggedObject = queueCataloggedObject - security.declareProtected( Permissions.AccessContentsInformation, 'asXML' ) def asXML(self, ident=0): """ -- 2.30.9