diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py index 56bfab94048b6a076d92bfcb5618197e10cbc97c..38b1de10ad1ab4b99eb26495e5290d07205b0d8f 100644 --- a/product/ERP5Type/Base.py +++ b/product/ERP5Type/Base.py @@ -2209,11 +2209,20 @@ class Base( CopyContainer, # immediateReindexObject. # Do not check if root is indexable, it is done into catalogObjectList, # so we will save time - if activate_kw is None: - activate_kw = {} if self.isIndexable: + if activate_kw is None: + activate_kw = {} + + group_id_list = [] + if kw.get("group_id", "") not in ('', None): + group_id_list.append(kw.get("group_id", "")) + if kw.get("sql_catalog_id", "") not in ('', None): + group_id_list.append(kw.get("sql_catalog_id", "")) + group_id = ' '.join(group_id_list) + self.activate(group_method_id='portal_catalog/catalogObjectList', - alternate_method_id='alternateReindexObject', + alternate_method_id='alternateReindexObject', + group_id=group_id, **activate_kw).immediateReindexObject(**kw) security.declarePublic('recursiveReindexObject') diff --git a/product/ERP5Type/Core/Folder.py b/product/ERP5Type/Core/Folder.py index 19ed7ffda18d9eccaa94a7d95c56291ea0477323..a4a4db000b73300e21361732a4a454dc1fb6817a 100644 --- a/product/ERP5Type/Core/Folder.py +++ b/product/ERP5Type/Core/Folder.py @@ -577,9 +577,18 @@ class Folder( CopyContainer, CMFBTreeFolder, Base, FolderMixIn): if self.isIndexable: if activate_kw is None: activate_kw = {} + + group_id_list = [] + if kw.get("group_id", "") not in ('', None): + group_id_list.append(kw.get("group_id", "")) + if kw.get("sql_catalog_id", "") not in ('', None): + group_id_list.append(kw.get("sql_catalog_id", "")) + group_id = ' '.join(group_id_list) + self.activate(group_method_id='portal_catalog/catalogObjectList', expand_method_id='getIndexableChildValueList', alternate_method_id='alternateReindexObject', + group_id=group_id, **activate_kw).recursiveImmediateReindexObject(**kw) security.declareProtected( Permissions.AccessContentsInformation,