Commit bafcae56 authored by Romain Courteaud's avatar Romain Courteaud

Rewrite ERP5Site_reindexAll in order not to create all activities in only one transaction.

Trash Folder_reindexAll which was useless, and create a new one used in ERP5Site_reindexAll.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@11615 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 6abfff59
......@@ -68,36 +68,69 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>error_list = []\n
return_list = []\n
<value> <string>folder = context\n
\n
#for object in context.objectValues():\n
error_list += context.reindexAll(object=context,request=context)\n
# Reindex folder\n
folder_kw = {\n
\'tag\': folder_tag,\n
\'after_tag\': folder_after_tag,\n
\'sql_catalog_id\': sql_catalog_id,\n
\'passive_commit\': passive_commit\n
}\n
for key, value in folder_kw.items():\n
if value is None:\n
folder_kw.pop(key)\n
\n
nb_types = {}\n
folder.reindexObject(**folder_kw)\n
\n
for error in error_list:\n
# We count the number of each portal type\n
if error[1]==\'portal_type\':\n
type = error[3]\n
if nb_types.has_key(type):\n
nb_types[type] = nb_types[type] + 1\n
else:\n
nb_types[type] = 1\n
else: \n
#print error\n
return_list.append(error)\n
# Reindex folder content\n
group_tag = None\n
group_after_tag = object_after_tag\n
if object_tag is not None:\n
group_tag = "group_%s" % object_tag\n
if object_after_tag is not None:\n
group_after_tag = object_after_tag + (object_tag,)\n
else:\n
group_after_tag = (object_tag, )\n
\n
for type in nb_types.keys():\n
# Find the number of each portal type in the catalog\n
count_result = context.portal_catalog.countResults(portal_type=type)\n
nb_catalog = count_result[0][0]\n
if nb_types[type] != nb_catalog:\n
message = "XXX Warning for %s: there is %i lines in the catalog instead of %i" % \\\n
(type,nb_catalog,nb_types[type])\n
return_list.append((\'Count Error\', \'PortalRoot_reindexAll\',1,message))\n
object_kw = {\n
\'tag\': folder_tag,\n
\'after_tag\': folder_after_tag,\n
\'sql_catalog_id\': sql_catalog_id,\n
\'passive_commit\': passive_commit\n
}\n
for key, value in object_kw.items():\n
if value is None:\n
object_kw.pop(key)\n
\n
return return_list\n
\n
id_list = []\n
len = 0\n
for obj in folder.objectValues():\n
id_list.append(obj.getId())\n
len += 1\n
if len==100:\n
\n
folder.activate(activity=\'SQLQueue\', priority=object_priority, **object_kw).Folder_reindexObjectList(\n
id_list,\n
object_priority=object_priority,\n
object_tag=object_tag,\n
object_after_tag=object_after_tag,\n
sql_catalog_id=sql_catalog_id,\n
passive_commit=passive_commit,\n
)\n
id_list = []\n
len = 0\n
\n
\n
folder.activate(activity=\'SQLQueue\', priority=object_priority, **object_kw).Folder_reindexObjectList(\n
id_list,\n
object_priority=object_priority,\n
object_tag=object_tag,\n
object_after_tag=object_after_tag,\n
sql_catalog_id=sql_catalog_id,\n
passive_commit=passive_commit,\n
)\n
</string> </value>
</item>
<item>
......@@ -112,9 +145,15 @@ return return_list\n
<none/>
</value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>request=None</string> </value>
<value> <string>folder_tag=None, folder_after_tag=None, object_tag=None, object_after_tag=None, object_priority=1, sql_catalog_id=None, passive_commit=1</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
......@@ -134,26 +173,34 @@ return return_list\n
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
<value> <int>7</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>request</string>
<string>error_list</string>
<string>return_list</string>
<string>_getattr_</string>
<string>folder_tag</string>
<string>folder_after_tag</string>
<string>object_tag</string>
<string>object_after_tag</string>
<string>object_priority</string>
<string>sql_catalog_id</string>
<string>passive_commit</string>
<string>context</string>
<string>nb_types</string>
<string>folder</string>
<string>folder_kw</string>
<string>_getiter_</string>
<string>error</string>
<string>_getitem_</string>
<string>type</string>
<string>_write_</string>
<string>count_result</string>
<string>nb_catalog</string>
<string>message</string>
<string>_getattr_</string>
<string>key</string>
<string>value</string>
<string>None</string>
<string>_apply_</string>
<string>group_tag</string>
<string>group_after_tag</string>
<string>object_kw</string>
<string>id_list</string>
<string>len</string>
<string>obj</string>
</tuple>
</value>
</item>
......@@ -167,6 +214,12 @@ return return_list\n
<value>
<tuple>
<none/>
<none/>
<none/>
<none/>
<int>1</int>
<none/>
<int>1</int>
</tuple>
</value>
</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>folder = context\n
\n
object_kw = {\n
\'tag\': object_tag,\n
\'after_tag\': object_after_tag,\n
\'sql_catalog_id\': sql_catalog_id,\n
\'passive_commit\': passive_commit\n
}\n
for key, value in object_kw.items():\n
if value is None:\n
object_kw.pop(key)\n
\n
for id in id_list:\n
obj = folder.restrictedTraverse(id)\n
obj.recursiveReindexObject(priority=object_priority,\n
**object_kw)\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>id_list, object_tag=None, object_after_tag=None, object_priority=1, sql_catalog_id=None, passive_commit=1</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>6</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>id_list</string>
<string>object_tag</string>
<string>object_after_tag</string>
<string>object_priority</string>
<string>sql_catalog_id</string>
<string>passive_commit</string>
<string>context</string>
<string>folder</string>
<string>object_kw</string>
<string>_getiter_</string>
<string>_getattr_</string>
<string>key</string>
<string>value</string>
<string>None</string>
<string>id</string>
<string>obj</string>
<string>_apply_</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<none/>
<none/>
<int>1</int>
<none/>
<int>1</int>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Folder_reindexObjectList</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
211
\ No newline at end of file
213
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment