Commit 9861ce84 authored by Alexandre Boeglin's avatar Alexandre Boeglin

Add two ParallelListField hash scripts. These two are supposed to be used on...

Add two ParallelListField hash scripts. These two are supposed to be used on all variation related ParallelListField, and thus replace the 3 or 4 hash scripts that already exist.

Base_getMultiListFieldPropertyDictList generates MultiListFields dicts
Base_getLineListFieldPropertyDictList generates ListFields dicts

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@20405 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 19694df9
<?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>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># Define a dictionary where we store the subfields to display.\n
sub_field_dict = {}\n
split_depth = 1\n
# Try to assign each item to a sub field.\n
for item in item_list:\n
# Get value of the item\n
item_value = item[int(not is_right_display)]\n
# Hash key from item_value\n
item_split = item_value.split(\'/\')\n
item_key = \'/\'.join(item_split[:split_depth])\n
base_category = item_split[0]\n
# Create a new subfield if necessary\n
if not sub_field_dict.has_key(item_key):\n
# Create property dict (key are field parameters)\n
sub_field_property_dict = default_sub_field_property_dict.copy()\n
sub_field_property_dict[\'key\'] = item_key\n
sub_field_property_dict[\'title\'] = context.portal_categories[base_category].getTitle()\n
sub_field_property_dict[\'required\'] = 0\n
sub_field_property_dict[\'field_type\'] = \'ListField\'\n
sub_field_property_dict[\'size\'] = 1\n
sub_field_property_dict[\'item_list\'] = [(\'\', \'\')]\n
sub_field_property_dict[\'value\'] = None\n
sub_field_dict[item_key] = sub_field_property_dict\n
# Put the value in the correct sub field.\n
sub_field_dict[item_key][\'item_list\'].append(item)\n
if item_value in value_list and sub_field_property_dict[\'value\'] is None:\n
sub_field_dict[item_key][\'value\'] = item_value\n
\n
# Return the list of subfield configuration.\n
\n
return sub_field_dict.values()\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>item_list, value_list, default_sub_field_property_dict={}, is_right_display=0</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>4</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>item_list</string>
<string>value_list</string>
<string>default_sub_field_property_dict</string>
<string>is_right_display</string>
<string>sub_field_dict</string>
<string>split_depth</string>
<string>_getiter_</string>
<string>item</string>
<string>_getitem_</string>
<string>int</string>
<string>item_value</string>
<string>_getattr_</string>
<string>item_split</string>
<string>item_key</string>
<string>base_category</string>
<string>sub_field_property_dict</string>
<string>_write_</string>
<string>context</string>
<string>None</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<dictionary/>
<int>0</int>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Base_getLineListFieldPropertyDictList</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>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
<tuple/>
</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># Define a dictionary where we store the subfields to display.\n
sub_field_dict = {}\n
split_depth = 1\n
# Maximum size of the MultiListField\n
maximum_list_size = 5\n
# Try to assign each item to a sub field.\n
for item in item_list:\n
# Get value of the item\n
item_value = item[int(not is_right_display)]\n
# Hash key from item_value\n
item_split = item_value.split(\'/\')\n
item_key = \'/\'.join(item_split[:split_depth])\n
base_category = item_split[0]\n
# Create a new subfield if necessary\n
if not sub_field_dict.has_key(item_key):\n
# Create property dict (key are field parameters)\n
sub_field_property_dict = default_sub_field_property_dict.copy()\n
sub_field_property_dict[\'key\'] = item_key\n
sub_field_property_dict[\'title\'] = context.portal_categories[base_category].getTitle()\n
sub_field_property_dict[\'required\'] = 0\n
sub_field_property_dict[\'field_type\'] = \'MultiListField\'\n
sub_field_property_dict[\'size\'] = 1\n
sub_field_property_dict[\'item_list\'] = []\n
sub_field_property_dict[\'value\'] = []\n
sub_field_dict[item_key] = sub_field_property_dict\n
# Put the value in the correct sub field.\n
sub_field_dict[item_key][\'item_list\'].append(item)\n
sub_field_property_dict[\'size\'] = min(len(sub_field_dict[item_key][\'item_list\']) , maximum_list_size )\n
if item_value in value_list:\n
sub_field_dict[item_key][\'value\'].append(item_value)\n
\n
# Return the list of subfield configuration.\n
\n
return sub_field_dict.values()\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>item_list, value_list, default_sub_field_property_dict={}, is_right_display=0</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>4</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>item_list</string>
<string>value_list</string>
<string>default_sub_field_property_dict</string>
<string>is_right_display</string>
<string>sub_field_dict</string>
<string>split_depth</string>
<string>maximum_list_size</string>
<string>_getiter_</string>
<string>item</string>
<string>_getitem_</string>
<string>int</string>
<string>item_value</string>
<string>_getattr_</string>
<string>item_split</string>
<string>item_key</string>
<string>base_category</string>
<string>sub_field_property_dict</string>
<string>_write_</string>
<string>context</string>
<string>min</string>
<string>len</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<dictionary/>
<int>0</int>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Base_getMultiListFieldPropertyDictList</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
783
\ No newline at end of file
784
\ 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