Commit 3f52cb6d authored by Kevin Deldycke's avatar Kevin Deldycke

New Tool to import OpenOffice data as ERP5 Objects

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@7280 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 23c69a6d
<?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> <string encoding="base64">O/INCg==</string> </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>"""\n
This function transform a string to a safe id.\n
It is used here to create a safe category id from a string.\n
"""\n
\n
translation_map = { "a": [\'\\xe0\']\n
, "e": [\'\\xe9\', \'\\xe8\']\n
}\n
\n
clean_id = \'\'\n
if string == None:\n
return None\n
string = string.lower()\n
string = string.strip()\n
# oocalc inserts some strange chars when you press - key in a text cell.\n
# Following line is a workaround for this, because \\u2013 does not exist in latin1\n
string = string.replace(u\'\\u2013\', \'-\')\n
for char in string.encode(\'iso8859_1\'):\n
if char == \'_\' or char.isalnum():\n
clean_id += char\n
elif char.isspace() or char in (\'+\', \'-\'):\n
clean_id += \'_\'\n
else:\n
for (safe_char, char_list) in translation_map.items():\n
if char in char_list:\n
clean_id += safe_char\n
break\n
return clean_id\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_core/Base_getSafeIdFromString</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>string=None</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>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>string</string>
<string>translation_map</string>
<string>clean_id</string>
<string>None</string>
<string>_getattr_</string>
<string>_getiter_</string>
<string>char</string>
<string>safe_char</string>
<string>char_list</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<none/>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Base_getSafeIdFromString</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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> <string encoding="base64">O/INCg==</string> </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>module = context\n
\n
property_list = []\n
\n
for portal_type in module.allowedContentTypes():\n
for property in portal_type.getInstancePropertyMap():\n
property_string = "%s.%s" % (portal_type.id, property[\'id\'])\n
property_list.append(property_string)\n
\n
property_list.sort()\n
return [(\'-- Ignore this Property --\', \'\')] + map(lambda x: (x,x), property_list)\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_core/ERP5Site_getModulePortalTypeSortedPropertyList</string> </value>
</item>
<item>
<key> <string>_owner</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>context</string>
<string>module</string>
<string>property_list</string>
<string>_getiter_</string>
<string>_getattr_</string>
<string>portal_type</string>
<string>property</string>
<string>_getitem_</string>
<string>property_string</string>
<string>map</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>ERP5Site_getModulePortalTypeSortedPropertyList</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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> <string encoding="base64">O/INCg==</string> </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>from Products.ERP5Type.Document import newTempBase\n
from string import zfill\n
\n
portal_object = context.getPortalObject()\n
num = 0\n
listbox_lines = []\n
\n
request = context.REQUEST\n
\n
# Get spreadsheet data\n
try:\n
spreadsheets = request[\'ooo_import_spreadsheet_data\']\n
except:\n
return []\n
\n
for spreadsheet in spreadsheets.keys():\n
# Get the first line\n
column_name_list = spreadsheets[spreadsheet][0]\n
for column in column_name_list:\n
safe_id = context.Base_getSafeIdFromString(spreadsheet + column)\n
num += 1\n
int_len = 3\n
o = newTempBase(portal_object, safe_id)\n
o.setUid( \'new_%s\' % zfill(num, int_len)) # XXX There is a security issue here\n
o.edit(uid=\'new_%s\' % zfill(num, int_len)) # XXX There is a security issue here\n
o.edit( id = safe_id\n
, spreadsheet_name = spreadsheet\n
, spreadsheet_column = column\n
)\n
listbox_lines.append(o)\n
\n
return listbox_lines\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_core/ERP5Site_getSpreadsheetColumnNameList</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</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>kw</string>
<string>Products.ERP5Type.Document</string>
<string>newTempBase</string>
<string>string</string>
<string>zfill</string>
<string>_getattr_</string>
<string>context</string>
<string>portal_object</string>
<string>num</string>
<string>listbox_lines</string>
<string>request</string>
<string>_getitem_</string>
<string>spreadsheets</string>
<string>_getiter_</string>
<string>spreadsheet</string>
<string>column_name_list</string>
<string>column</string>
<string>safe_id</string>
<string>int_len</string>
<string>o</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>ERP5Site_getSpreadsheetColumnNameList</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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> <string encoding="base64">O/INCg==</string> </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 encoding="cdata"><![CDATA[
request = context.REQUEST\n
\n
def getRequestKeys(rq):\n
return map(lambda x: x[0], rq.items())\n
\n
def getRequestValues(rq):\n
return map(lambda x: x[1], rq.items())\n
\n
def getSpreadsheet():\n
from Products.ERP5OOo.OOoUtils import OOoParser\n
OOoParser = OOoParser()\n
# Extract tables from the speadsheet file\n
import_file = kw[\'import_file\']\n
OOoParser.openFile(import_file)\n
return OOoParser.getSpreadsheetsMapping()\n
\n
\n
# if listbox is empty, then we are in the first step\n
listbox = []\n
if kw.has_key(\'listbox\') and kw[\'listbox\'] not in (\'\', None):\n
listbox = kw[\'listbox\']\n
\n
\n
# First step\n
if len(listbox) == 0:\n
\n
spreadsheets = getSpreadsheet()\n
# Put the result of OOo parsing in the request\n
request.set(\'ooo_import_spreadsheet_data\', spreadsheets)\n
\n
\n
# Second Step\n
else:\n
\n
# Re-upload the OOo file\n
spreadsheets = getSpreadsheet()\n
\n
# Build the data mapping\n
mapping = {}\n
request.set(\'ooo_import_spreadsheet_data\', spreadsheets)\n
listbox_ordered_lines = context.ERP5Site_getSpreadsheetColumnNameList()\n
for line in listbox_ordered_lines:\n
listbox_id = line.getUid()[4:]\n
portal_type_property = listbox[listbox_id][\'portal_type_property_list\']\n
if portal_type_property not in (\'\', None):\n
spreadsheet_name = getattr(line, \'spreadsheet_name\')\n
column_name = getattr(line, \'spreadsheet_column\')\n
map_item = { \'portal_type\': portal_type_property.split(\'.\')[0]\n
, \'property\' : portal_type_property.split(\'.\')[1]\n
}\n
if spreadsheet_name not in mapping.keys():\n
mapping[spreadsheet_name] = {}\n
mapping[spreadsheet_name][column_name] = map_item\n
\n
# Convert each spreadsheet\n
for (sheet_name, sheet_data) in spreadsheets.items():\n
\n
# The ERP5 module where all lines of the current spreadsheet will be generated\n
sheet_module = context\n
\n
# Build a data structure to associate column index with column title\n
column_index = {}\n
for column_id in range(len(sheet_data[0])):\n
column_index[column_id] = sheet_data[0][column_id]\n
\n
# Build a data structure to associate column index with object property and portal type\n
column_mapping = {}\n
for (column_name, property_dict) in mapping[spreadsheet_name].items():\n
for (column_id, column_title) in column_index.items():\n
if column_name == column_title:\n
column_mapping[column_id] = property_dict\n
break\n
\n
# Create a dict to describe each line in property\n
object_list = {}\n
for line in sheet_data[1:]:\n
new_object_property_dict = {}\n
for line_property_index in range(len(line)):\n
if line_property_index in column_mapping.keys():\n
property_module = sheet_module\n
property_pt = column_mapping[line_property_index][\'portal_type\']\n
property_id = column_mapping[line_property_index][\'property\']\n
property_value = line[line_property_index]\n
\n
if not property_value in (\'\', None):\n
if not object_list.has_key(property_module):\n
object_list[property_module] = {}\n
if not object_list[property_module].has_key(property_pt):\n
object_list[property_module][property_pt] = []\n
\n
# Create a new property value\n
new_object_property_dict[property_id] = property_value\n
\n
if len(new_object_property_dict.keys()) > 0:\n
object_list[property_module][property_pt].append(new_object_property_dict)\n
\n
# Create new ERP5 objects\n
new_path_list = []\n
for (module, per_portal_type_data) in object_list.items():\n
for (portal_type, new_object_list) in per_portal_type_data.items():\n
for new_object_property_dict in new_object_list:\n
new_object = module.newContent( portal_type = portal_type\n
, immediate_reindex = 1\n
)\n
new_object.edit(**new_object_property_dict)\n
new_path_list.append(new_object.getRelativeUrl())\n
\n
return request.RESPONSE.redirect(context.absolute_url() + \'/person_module/view?portal_status_message=OpenOffice+document+successfully+imported.+New+object+created:+\' + str(len(new_path_list)))\n
\n
return context.ERP5Site_importObjectFromOOoFastInput(REQUEST=request)\n
]]></string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_core/ERP5Site_importObjectFromOOo</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</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>kw</string>
<string>_getattr_</string>
<string>context</string>
<string>request</string>
<string>getRequestKeys</string>
<string>getRequestValues</string>
<string>getSpreadsheet</string>
<string>listbox</string>
<string>_getitem_</string>
<string>None</string>
<string>len</string>
<string>spreadsheets</string>
<string>mapping</string>
<string>listbox_ordered_lines</string>
<string>_getiter_</string>
<string>line</string>
<string>listbox_id</string>
<string>portal_type_property</string>
<string>getattr</string>
<string>spreadsheet_name</string>
<string>column_name</string>
<string>map_item</string>
<string>_write_</string>
<string>sheet_name</string>
<string>sheet_data</string>
<string>sheet_module</string>
<string>column_index</string>
<string>range</string>
<string>column_id</string>
<string>column_mapping</string>
<string>property_dict</string>
<string>column_title</string>
<string>object_list</string>
<string>new_object_property_dict</string>
<string>line_property_index</string>
<string>property_module</string>
<string>property_pt</string>
<string>property_id</string>
<string>property_value</string>
<string>new_path_list</string>
<string>module</string>
<string>per_portal_type_data</string>
<string>portal_type</string>
<string>new_object_list</string>
<string>new_object</string>
<string>_apply_</string>
<string>str</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>ERP5Site_importObjectFromOOo</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.ERP5Form.Form</string>
<string>ERP5Form</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<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/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>ERP5Site_importObjectFromOOo</string> </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>
<string>listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list>
<string>listbox_portal_type_property_list</string>
</list>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_import_file</string>
<string>openoffice_template</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>ERP5Site_importObjectFromOOoFastInput</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>ERP5Site_importObjectFromOOoFastInput</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view_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>Import OpenOffice Document</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>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.ERP5Form.ListBox</string>
<string>ListBox</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox</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>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>all_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>all_editable_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>columns</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>default_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>domain_root_list</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>domain_tree</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable_columns</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>global_attributes</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>lines</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>list_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>list_method</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>meta_types</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>report_root_list</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>report_tree</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>search</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>search_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>select</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>sort</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>sort_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>stat_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>stat_method</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>url_columns</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>all_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>all_editable_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>columns</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>default_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>domain_root_list</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>domain_tree</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable_columns</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>global_attributes</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>lines</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>list_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>list_method</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>meta_types</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>report_root_list</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>report_tree</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>search</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>search_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>select</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>sort</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>sort_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>stat_columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>stat_method</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>url_columns</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>Base_viewSearchResultList</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>all_columns</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>all_editable_columns</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>spreadsheet_name</string>
<string>Spreadsheet Name</string>
</tuple>
<tuple>
<string>spreadsheet_column</string>
<string>Spreadsheet Column</string>
</tuple>
<tuple>
<string>portal_type_property_list</string>
<string>Portal Type Property</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>count_method</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>default_params</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Allow user to associate spreadsheet columns with portal types properties.</string> </value>
</item>
<item>
<key> <string>domain_root_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>domain_tree</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>editable_columns</string> </key>
<value>
<list>
<tuple>
<string>portal_type_property_list</string>
<string>Portal Type Property</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>editable_expression</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable_permission</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>editable_role</string> </key>
<value>
<list/>
</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>global_attributes</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>lines</string> </key>
<value> <int>200</int> </value>
</item>
<item>
<key> <string>list_action</string> </key>
<value> <string>Folder_viewContentList</string> </value>
</item>
<item>
<key> <string>list_method</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>meta_types</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>not_viewable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>read_only</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>report_root_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>report_tree</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>search</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>search_columns</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>select</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>spreadsheet_column_to_property_dialog_listbox_selection</string> </value>
</item>
<item>
<key> <string>sort</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>sort_columns</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>stat_columns</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>stat_method</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Spreadsheet Column To Property Mapping</string> </value>
</item>
<item>
<key> <string>url_columns</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>viewable_expression</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>viewable_permission</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>viewable_role</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.MethodField</string>
<string>Method</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>ERP5Site_getSpreadsheetColumnNameList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>ListField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_portal_type_property_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>first_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>whitespace_preserve</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>first_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>whitespace_preserve</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> <string></string> </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>first_item</string> </key>
<value> <int>0</int> </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>0</int> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>listbox_portal_type_property_list</string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/ERP5Site_getModulePortalTypeSortedPropertyList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>FileField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>my_import_file</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>
</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>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</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>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</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>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</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>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</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> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>80</int> </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>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OpenOffice Source File</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>StringField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>openoffice_template</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>too_long</string> </key>
<value> <string>Too much input was given.</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>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</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>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</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>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</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>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</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> <string encoding="cdata"><![CDATA[
You can find an OpenOffice template at <a href="openoffice-erp5-objects-template.sxc">openoffice-erp5-objects-template.sxc</a>
]]></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</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>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OpenOffice Source File Example</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>File</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts47455675.31</string> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>openoffice-erp5-objects-template.sxc</string> </value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/vnd.sun.xml.calc</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">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
CypbruDlTvNG0mbS8Eoac1bmauBR2lGtXrZ836q9U49Dr+7TNUsqXd1krLCthPT/+O33WmNPiT8i
+BIqJyM6uGvqpiQM5oG9KII+5/Y9d8Y9/9+RrplJcV5fxSykQrX4W5yU5PmLZ7F4s6rzFOd5YkLg
dPIY7Q6g3jkM24m+tf3Itaok2r35khTTe40kx7yep53uueN5oWqZGaCpwAkN6koE4XDKLCQcBkuQ
FhDC5p52pY5JL6VN/d80rS2h8QbGLghA2CpiD7ClHZ4/yuMuWc3VaIVwiusPBIdqRP/LyVakAccx
5FsAWwnv0KkkTsFKLst+RO8aEgv6q+wEr+RwuiNqT+PbOO09yuuKsXGvQ8pJoC9ZImqPORNYLjpY
ptXKXrhDY1Fv5jCPuBTQbAUNnO4wksuWm8JLDdSstm956u2eQLYcCkAWOynMBWAgd8S6SY4NONZ0
uTHnZOnbGMbd2esDDzq1Wsc8BlFCIinoLnID766umQC3pJZeux8zImJM/FOGwTQyYlXXAjSIwMNB
mf/3giIla8ZD+WrtztzDwyC1CpbQ0Npz1ZdC5DjUn6oAxDustuHgRnbCLKyK5V7gyu+ahRYC+mxM
Gq4b777KpPh6WHk4KdHOGmIEGtirLGZRaprq6a2TnGHp0SHzl7LWH+Xmb7EhRL9M+MfHx0vUXzQr
eS/wvbsgA1e1O1rAgAaVO8JJ0XndZKJ1+oV0xTxIq/Uw43vVea21gQmVqg7nkyagAY0PMXtJcsYn
iZ0PiDWNhcSyrUh7vpBr67nGCSqSNkQ/vxjw0Dmps6TuTO90mEPIzpEEBp0a5KhRFO6J48of2/fm
yD2QH1C9MiZIlP+dVVkLpnsvj+Yvj1yvtngsdbrG/Wv5ZKE2UA3v/mLRBuq1vynv0PhFR+OfSft/
AlBLBwi25MyZTAUAADgXAABQSwMEFAAAAAAAAGOsNCbJ+/3pAwAA6QMAAAgAAABtZXRhLnhtbDw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjwhRE9DVFlQRSBvZmZpY2U6ZG9j
dW1lbnQtbWV0YSBQVUJMSUMgIi0vL09wZW5PZmZpY2Uub3JnLy9EVEQgT2ZmaWNlRG9jdW1lbnQg
MS4wLy9FTiIgIm9mZmljZS5kdGQiPjxvZmZpY2U6ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9
Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDAwL29mZmljZSIgeG1sbnM6eGxpbms9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVu
dHMvMS4xLyIgeG1sbnM6bWV0YT0iaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDAvbWV0YSIgb2Zm
aWNlOnZlcnNpb249IjEuMCI+PG9mZmljZTptZXRhPjxtZXRhOmdlbmVyYXRvcj5PcGVuT2ZmaWNl
Lm9yZyAxLjEuNSAoTGludXgpPC9tZXRhOmdlbmVyYXRvcj48IS0tNjQ1KEJ1aWxkOjg5NTApLS0+
PGRjOnRpdGxlPkVSUDUgQ2F0ZWdvcnkgRGVmaW5pdGlvbiBUZW1wbGF0ZTwvZGM6dGl0bGU+PG1l
dGE6Y3JlYXRpb24tZGF0ZT4yMDA1LTA1LTE1VDE3OjUxOjA2PC9tZXRhOmNyZWF0aW9uLWRhdGU+
PGRjOmRhdGU+MjAwNi0wNS0xMlQxNDoyNDowMTwvZGM6ZGF0ZT48ZGM6bGFuZ3VhZ2U+ZnItRlI8
L2RjOmxhbmd1YWdlPjxtZXRhOmVkaXRpbmctY3ljbGVzPjY8L21ldGE6ZWRpdGluZy1jeWNsZXM+
PG1ldGE6ZWRpdGluZy1kdXJhdGlvbj5QVDExTTQ1UzwvbWV0YTplZGl0aW5nLWR1cmF0aW9uPjxt
ZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gMSIvPjxtZXRhOnVzZXItZGVmaW5lZCBt
ZXRhOm5hbWU9IkluZm8gMiIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gMyIv
PjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gNCIvPjxtZXRhOmRvY3VtZW50LXN0
YXRpc3RpYyBtZXRhOnRhYmxlLWNvdW50PSIxIiBtZXRhOmNlbGwtY291bnQ9IjUiLz48L29mZmlj
ZTptZXRhPjwvb2ZmaWNlOmRvY3VtZW50LW1ldGE+UEsDBBQACAAIAABjrDQAAAAAAAAAAAAAAAAM
AAAAc2V0dGluZ3MueG1s7Vltc9o4EP5+v4Lz15vEhrxc6CR0ZPOahgQDhphvwlaMD1ny2DKG/vpb
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</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <long>5732</long> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
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