diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py index 5e3214dc5867581b554cd7c2f0126caf7134a654..b82ff470d4d01c780733ce8d1a41ee97ea16518d 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): """