From f5966ebeb03408cc2977189977b20b56a4a75e63 Mon Sep 17 00:00:00 2001 From: Yusuke Muraoka <yusuke@nexedi.com> Date: Tue, 5 Jan 2010 04:57:21 +0000 Subject: [PATCH] 2010-01-05 yusuke * Add a category exporting feature git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@31568 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../Category%20Tool/export_category_list.xml | 91 ++++++ ...oryTool_constructCategoryTableToExport.xml | 195 ++++++++++++ .../erp5_core/CategoryTool_exportCategory.xml | 124 ++++++++ .../CategoryTool_viewExportCategoryDialog.xml | 155 ++++++++++ .../your_category_list.xml | 277 ++++++++++++++++++ .../ERP5/bootstrap/erp5_core/bt/change_log | 3 + product/ERP5/bootstrap/erp5_core/bt/revision | 2 +- .../erp5_core/bt/template_action_path_list | 1 + 8 files changed, 847 insertions(+), 1 deletion(-) create mode 100644 product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Category%20Tool/export_category_list.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_constructCategoryTableToExport.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_exportCategory.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog/your_category_list.xml diff --git a/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Category%20Tool/export_category_list.xml b/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Category%20Tool/export_category_list.xml new file mode 100644 index 0000000000..68a4d5594a --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Category%20Tool/export_category_list.xml @@ -0,0 +1,91 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_exchange</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_exchange</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>export_category_list</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>3.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Export Category List</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/CategoryTool_viewExportCategoryDialog</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_constructCategoryTableToExport.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_constructCategoryTableToExport.xml new file mode 100644 index 0000000000..8a8fc8fe5f --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_constructCategoryTableToExport.xml @@ -0,0 +1,195 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </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 encoding="cdata"><![CDATA[ + +cat_info_list = []\n +for base_cat_id in context.REQUEST[\'category_list\']:\n + base_cat = context.portal_categories[base_cat_id]\n + d = dict()\n + d[\'base_cat\'] = base_cat\n + d[\'cat_list\'] = cat_list = []\n + d[\'max_cat_depth\'] = max_cat_depth = 0\n + cat_info_list.append(d)\n + for cat in context.portal_catalog(portal_type=\'Category\', sort_on=((\'path\', \'accending\'),), **{\'%s_uid\' % (base_cat.getId(),): base_cat.getUid()}):\n + d[\'cat_list\'].append(cat)\n + cat_depth = len(cat.getRelativeUrl().split(\'/\'))\n + if cat_depth > d[\'max_cat_depth\']:\n + d[\'max_cat_depth\'] = cat_depth\n +\n +result = []\n +for cat_info in cat_info_list:\n + table_dict = dict()\n + table_dict[\'name\'] = cat_info[\'base_cat\'].getId()\n + table_dict[\'row_list\'] = row_list = []\n + result.append(table_dict)\n +\n + # make headers\n + header_dict = dict()\n + table_dict[\'header_row\'] = header_dict\n +\n + cat_list = cat_info[\'cat_list\']\n + if cat_list:\n + max_cat_depth = cat_info[\'max_cat_depth\']\n + header_dict[\'path_cell_list\'] = [\'\'] * (max_cat_depth - 1)\n + header_dict[\'path_cell_list\'][0] = \'Path\'\n + header_dict[\'category_property_list\'] = [\' \'.join([s.capitalize() for s in property_id.split(\'_\')]) for property_id in cat_list[0].getPropertyIdList() if property_id != \'uid\']\n + \n + for cat in cat_list:\n + row = dict()\n + row[\'path_cell_list\'] = [\'\'] * (max_cat_depth - 1)\n + row[\'path_cell_list\'][len(cat.getRelativeUrl().split(\'/\')) - 2] = \'*\'\n + row[\'category_property_list\'] = [item[1] for item in cat.getPropertyItemList() if item[0] != \'uid\']\n + row_list.append(row) \n + else:\n + header_dict[\'path_cell_list\'] = [\'Path\']\n + header_dict[\'category_property_list\'] = []\n +\n +return result\n +#vim: filetype=python\n + + +]]></string> </value> + </item> + <item> + <key> <string>_code</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string></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>0</int> </value> + </item> + <item> + <key> <string>co_varnames</string> </key> + <value> + <tuple> + <string>cat_info_list</string> + <string>_getiter_</string> + <string>_getitem_</string> + <string>_getattr_</string> + <string>context</string> + <string>base_cat_id</string> + <string>base_cat</string> + <string>dict</string> + <string>d</string> + <string>_write_</string> + <string>cat_list</string> + <string>max_cat_depth</string> + <string>_apply_</string> + <string>cat</string> + <string>len</string> + <string>cat_depth</string> + <string>result</string> + <string>cat_info</string> + <string>table_dict</string> + <string>row_list</string> + <string>header_dict</string> + <string>append</string> + <string>$append0</string> + <string>property_id</string> + <string>$append1</string> + <string>s</string> + <string>row</string> + <string>item</string> + </tuple> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>func_defaults</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CategoryTool_constructCategoryTableToExport</string> </value> + </item> + <item> + <key> <string>warnings</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_exportCategory.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_exportCategory.xml new file mode 100644 index 0000000000..e71f474838 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_exportCategory.xml @@ -0,0 +1,124 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="OOoTemplate" module="Products.ERP5OOo.OOoTemplate"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>OLE_documents_zipstring</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_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +<office:document-content\n + xmlns:office=\'urn:oasis:names:tc:opendocument:xmlns:office:1.0\'\n + xmlns:table=\'urn:oasis:names:tc:opendocument:xmlns:table:1.0\'\n + xmlns:tal=\'http://xml.zope.org/namespaces/tal\'\n + xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"\n +\n + office:version="1.0"\n +\n + tal:attributes=\'dummy python: request.RESPONSE.setHeader("Content-Type", "text/html;; charset=utf-8")\'>\n + <office:body>\n + <office:spreadsheet>\n + <tal:block tal:repeat="table context/CategoryTool_constructCategoryTableToExport">\n + <table:table table:print="false" tal:attributes="table:name table/name"> \n + <table:table-column tal:repeat="path_cell table/header_row"/>\n +\n + <table:table-header-rows>\n + <table:table-row tal:define="row table/header_row">\n + <table:table-cell tal:repeat="path_cell row/path_cell_list">\n + <text:p tal:content="path_cell"/>\n + </table:table-cell>\n + <table:table-cell tal:repeat="category_property row/category_property_list">\n + <text:p tal:content="category_property"/>\n + </table:table-cell>\n + </table:table-row>\n + </table:table-header-rows>\n + <table:table-row tal:repeat="row table/row_list">\n + <table:table-cell tal:repeat="path_cell row/path_cell_list">\n + <text:p tal:content="path_cell"/>\n + </table:table-cell>\n + <table:table-cell tal:repeat="category_property row/category_property_list">\n + <text:p tal:content="category_property"/>\n + </table:table-cell>\n + </table:table-row>\n + </table:table>\n + </tal:block>\n + </office:spreadsheet>\n + </office:body>\n +</office:document-content>\n +<!--\n +vim: filetype=xml\n +-->\n + + +]]></string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CategoryTool_exportCategory</string> </value> + </item> + <item> + <key> <string>ooo_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ooo_stylesheet</string> </key> + <value> <string>Base_getODSStyleSheet</string> </value> + </item> + <item> + <key> <string>ooo_xml_file_id</string> </key> + <value> <string>content.xml</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog.xml new file mode 100644 index 0000000000..90a6bce782 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog.xml @@ -0,0 +1,155 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ERP5Form" module="Products.ERP5Form.Form"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <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/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>CategoryTool_exportCategory</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string>multipart/form-data</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>your_category_list</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CategoryTool_viewExportCategoryDialog</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>CategoryTool_exportCategoryDialog</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_dialog</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Export Categories</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog/your_category_list.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog/your_category_list.xml new file mode 100644 index 0000000000..8d70239299 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CategoryTool_viewExportCategoryDialog/your_category_list.xml @@ -0,0 +1,277 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="MultiListField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_category_list</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>unknown_selection</string> </key> + <value> <string>You selected an item that was not in the list.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>view_separator</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>view_separator</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>10</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Category List To Be Exported</string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>view_separator</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +<br /> + +]]></string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: [x.getId() for x in here.portal_categories.searchFolder(sort_on=\'id\')]</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/bt/change_log b/product/ERP5/bootstrap/erp5_core/bt/change_log index eb486e63ab..5efc30b05a 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/change_log +++ b/product/ERP5/bootstrap/erp5_core/bt/change_log @@ -1,3 +1,6 @@ +2010-01-05 yusuke +* Add a category exporting feature + 2010-01-05 yusei * Update ERP5Site_reindexAll and index some tools correctly. diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision index 90f664aa46..3d33af84e1 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/revision +++ b/product/ERP5/bootstrap/erp5_core/bt/revision @@ -1 +1 @@ -1408 \ No newline at end of file +1412 \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list b/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list index b311199b98..2267957b6b 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list +++ b/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list @@ -29,6 +29,7 @@ Cache Factory | statistics Cache Factory | view Cache Tool | statistics Cache Tool | view +Category Tool | export_category_list Category Tool | fast_input Category Tool | view Category | view -- 2.30.9