diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_DoWorkflowAction.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_DoWorkflowAction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9c7fb201ee0cdd2e2a2855321ee1875d19799ba5
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_DoWorkflowAction.xml
@@ -0,0 +1,196 @@
+<?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>from Products.DCWorkflow.DCWorkflow import ValidationFailed\n
+request = context.REQUEST\n
+\n
+# reinject parameters in kw\n
+kw[\'action_name\'] = action_name\n
+kw[\'wf_id\'] = wf_id\n
+\n
+try :\n
+  # Immediatly invoke a workflow action. Usefull do put as in action box\n
+  context.portal_workflow.doActionFor(\n
+    context,\n
+    action_name,\n
+    wf_id = wf_id)\n
+except ValidationFailed, message:\n
+  kw[\'portal_status_message\'] = message\n
+\n
+return context.ERP5XhtmlStyle_redirect("%s/view" % (context.absolute_url(), ), **kw)\n
+# vim: syntax=python\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_dav_writelocks</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>action_name, wf_id, **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>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>action_name</string>
+                            <string>wf_id</string>
+                            <string>kw</string>
+                            <string>Products.DCWorkflow.DCWorkflow</string>
+                            <string>ValidationFailed</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>request</string>
+                            <string>_write_</string>
+                            <string>message</string>
+                            <string>_apply_</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>Base_DoWorkflowAction</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Persistence</string>
+          <string>PersistentMapping</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_container</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_callDialogMethod.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_callDialogMethod.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e9dfde5551e685559e78bedf025fd24d23bcb7f3
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_callDialogMethod.xml
@@ -0,0 +1,416 @@
+<?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 encoding="cdata"><![CDATA[
+
+"""\n
+Generic method called when submitting a form in dialog mode.\n
+Responsible for validating form data and redirecting to the form action.\n
+"""\n
+\n
+from Products.Formulator.Errors import FormValidationError\n
+from ZTUtils import make_query\n
+\n
+request_form = context.REQUEST.form\n
+error_message = \'\'\n
+\n
+# Make this script work alike wether called from another script or by a request\n
+# Reinject parameters in the request\n
+request_form[\'dialog_method\'] = dialog_method\n
+request_form[\'dialog_id\'] = dialog_id\n
+request_form[\'dialog_category\'] = dialog_category\n
+request_form[\'enable_pickle\'] = enable_pickle\n
+# If we get unused parameters, put them in the request\n
+for k, v in kw:\n
+  request_form[k]=v\n
+\n
+# Exceptions for UI\n
+if dialog_method == \'Base_configureUI\':\n
+  return context.Base_configureUI(form_id=request_form[\'form_id\'],\n
+                                  selection_name=request_form[\'selection_name\'],\n
+                                  field_columns=request_form[\'field_columns\'],\n
+                                  stat_columns=request_form[\'stat_columns\'])\n
+# Exceptions for Sort\n
+if dialog_method == \'Base_configureSortOn\':\n
+  return context.Base_configureSortOn(form_id=request_form[\'form_id\'],\n
+                                      selection_name=request_form[\'selection_name\'],\n
+                                      field_sort_on=request_form[\'field_sort_on\'],\n
+                                      field_sort_order=request_form[\'field_sort_order\'])\n
+# Exceptions for Base_edit\n
+# if dialog_method == \'Base_edit\':\n
+#   return context.Base_edit(form_id=request_form[\'form_id\'],\n
+#                            dialog_id=dialog_id,\n
+#                            selection_name=request_form[\'selection_name\'])\n
+# Exceptions for Workflow\n
+if dialog_method == \'Workflow_statusModify\':\n
+  value = context.Workflow_statusModify(form_id=request_form[\'form_id\'],\n
+                                        dialog_id=dialog_id)\n
+  # XXX: This test is related to erp5_web and should not be present in configuration where it is not installed.\n
+  if not(getattr(context.REQUEST, \'ignore_layout\', 0)) and context.getApplicableLayout() :\n
+    context.REQUEST.RESPONSE.redirect(context.WebSite_getDocumentPhysicalPath())\n
+  return value\n
+# Exception for edit relation\n
+if dialog_method == \'Base_editRelation\':\n
+  return context.Base_editRelation(form_id=request_form[\'form_id\'],\n
+                                   field_id=request_form[\'field_id\'],\n
+                                   selection_name=request_form[\'selection_name\'],\n
+                                   selection_index=request_form[\'selection_index\'],\n
+                                   object_uid=request_form[\'object_uid\'],\n
+                                   uids=request_form[\'uids\'],\n
+                                   listbox_uid=request_form[\'listbox_uid\'],\n
+                                   form_pickle=request_form[\'form_pickle\'],\n
+                                   form_signature=request_form[\'form_signature\'])\n
+# Exception for create relation\n
+if dialog_method == \'Base_createRelation\':\n
+  return context.Base_createRelation(form_id=request_form[\'form_id\'],\n
+                                     selection_name=request_form[\'selection_name\'],\n
+                                     selection_index=request_form[\'selection_index\'],\n
+                                     base_category=request_form[\'base_category\'],\n
+                                     object_uid=request_form[\'object_uid\'],\n
+                                     catalog_index=request_form[\'catalog_index\'],\n
+                                     default_module=request_form[\'default_module\'],\n
+                                     dialog_id=dialog_id,\n
+                                     portal_type=request_form[\'portal_type\'],\n
+                                     return_url=request_form[\'cancel_url\'])\n
+# Exception for folder delete\n
+if dialog_method == \'Folder_delete\':\n
+  return context.Folder_delete(form_id=request_form[\'form_id\'],\n
+                               selection_name=request_form[\'selection_name\'],\n
+                               uids=request_form[\'listbox_uid\'],\n
+                               md5_object_uid_list=request_form[\'md5_object_uid_list\'])\n
+\n
+# If the request came with a pickled form, use it as context for form object search.\n
+if request_form.has_key(\'pickle_string\'):\n
+  form_context = context.asContext(context=None,\n
+                                   portal_type=context.getPortalType(),\n
+                                   **(context.portal_selections.getObjectFromPickle(request_form[\'pickle_string\']))\n
+                                  )\n
+else:\n
+  form_context = context\n
+form = getattr(form_context, dialog_id)\n
+# Validate the form\n
+try:\n
+  form.validate_all_to_request(context.REQUEST)\n
+except FormValidationError, validation_errors:\n
+  # Pack errors into the request\n
+  field_errors = form.ErrorFields(validation_errors)\n
+  context.REQUEST.set(\'field_errors\', field_errors)\n
+  return form(context.REQUEST)\n
+\n
+# Use REQUEST.redirect if possible. It will not be possible if at least one of these is true :\n
+#  * we got an import_file,\n
+#  * we got a listbox\n
+#  * a value is None or [] or (), because this is not supported by make_query\n
+can_redirect = 1\n
+MARKER = [] # A recognisable default value. Use with \'is\', not \'==\'.\n
+listbox_id_list = [] # There should not be more than one listbox - but this give us a way to check.\n
+file_id_list = [] # For uploaded files.\n
+for field in form.get_fields():\n
+  k = field.id\n
+  v = context.REQUEST.get(k, MARKER)\n
+  if v is not MARKER:\n
+    if field.meta_type == \'ListBox\':\n
+      listbox_id_list.append(k)\n
+    elif can_redirect and (v in (None, [], ()) or hasattr(v, \'read\')) : # If we cannot redirect, useless to test it again\n
+      can_redirect = 0\n
+    # Cleanup my_ and your_ prefixes\n
+    splitted = k.split(\'_\', 1)\n
+    if len(splitted) == 2 and splitted[0] in (\'my\', \'your\'):\n
+      request_form[splitted[1]] = v\n
+    else:\n
+      request_form[k] = v\n
+\n
+if len(listbox_id_list):\n
+  can_redirect = 0\n
+  # Warn if there are more than one listbox in form ...\n
+  if len(listbox_id_list) > 1:\n
+    log(\'Base_callDialogMethod\', \'There are %s listboxes in form %s.\' % (len(listbox_id_list), form.id))\n
+  # ... but handle them anyway.\n
+  for listbox_id in listbox_id_list:\n
+    listbox_line_list = []\n
+    listbox = request_form[listbox_id]\n
+    listbox_keys = listbox.keys()\n
+    listbox_keys.sort()\n
+    for key in listbox_keys:\n
+      listbox_line = listbox[key]\n
+      listbox_line[\'listbox_key\'] = key\n
+      listbox_line_list.append(listbox_line)\n
+    listbox_line_list = tuple(listbox_line_list)\n
+    request_form[listbox_id] = listbox_line_list\n
+\n
+if enable_pickle or (form.update_action != \'\'):\n
+  request_form[\'pickle_string\'] = context.portal_selections.getPickle(**request_form)\n
+\n
+# Check if the selection changed\n
+if hasattr(request_form, \'previous_md5_object_uid_list\'):\n
+  selection_list = context.portal_selections.callSelectionFor(request_form[\'selection_name\'], context=context)\n
+  if selection_list is not None:\n
+    object_uid_list = map(lambda x:x.getObject().getUid(), selection_list)\n
+    error = context.portal_selections.selectionHasChanged(request_form[\'previous_md5_object_uid_list\'], object_uid_list)\n
+    if error:\n
+      error_message = N_("Sorry+your+selection+has+changed")\n
+\n
+# if dialog_category is object_search, then edit the selection\n
+if dialog_category == "object_search" :\n
+  context.portal_selections.setSelectionParamsFor(request_form[\'selection_name\'], request_form)\n
+\n
+# Remove values which doesn\'t work with make_query.\n
+clean_kw = {}\n
+for k, v in request_form.items() :\n
+  if v not in (None, [], ()) :\n
+    clean_kw[k] = request_form[k]\n
+\n
+url_params_string = make_query(clean_kw)\n
+\n
+# XXX: We always redirect in report mode to make sure portal_skin\n
+# parameter is taken into account by SkinTool.\n
+# If url is too long, we do not redirect to avoid crash.\n
+if (not(can_redirect) or len(url_params_string) > 2000) and dialog_category != "object_report": # XXX: 2000 is an arbitrary value resulted from trial and error.\n
+  # If we cannot redirect, then call the form directly.\n
+  dialog_form = getattr(context, dialog_method)\n
+  # XXX: this is a hack that should not be needed anymore with the new listbox.\n
+  # set the URL in request, so that we can immediatly call method\n
+  # that depend on it (eg. Show All). This is really related to\n
+  # current ListBox implementation which edit Selection\'s last_url\n
+  # with the content of REQUEST.URL\n
+  context.REQUEST.set(\'URL\', \'%s/%s\' % (context.absolute_url(), dialog_method))\n
+  return dialog_form(**request_form)\n
+\n
+if error_message != \'\':\n
+  redirect_url = \'%s/%s?%s\' % ( context.absolute_url()\n
+                              , dialog_method\n
+                              , \'portal_status_message=%s\' % error_message\n
+                              )\n
+elif url_params_string != \'\':\n
+  redirect_url = \'%s/%s?%s\' % ( context.absolute_url()\n
+                              , dialog_method\n
+                              , url_params_string\n
+                              )\n
+else:\n
+  redirect_url = \'%s/%s\' % ( context.absolute_url()\n
+                            , dialog_method\n
+                            )\n
+\n
+return context.REQUEST.RESPONSE.redirect(redirect_url)\n
+\n
+# vim: syntax=python\n
+
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_dav_writelocks</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>dialog_method, dialog_id, dialog_category=\'\', enable_pickle=0, **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>4</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>dialog_method</string>
+                            <string>dialog_id</string>
+                            <string>dialog_category</string>
+                            <string>enable_pickle</string>
+                            <string>kw</string>
+                            <string>Products.Formulator.Errors</string>
+                            <string>FormValidationError</string>
+                            <string>ZTUtils</string>
+                            <string>make_query</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>request_form</string>
+                            <string>error_message</string>
+                            <string>_write_</string>
+                            <string>_getiter_</string>
+                            <string>k</string>
+                            <string>v</string>
+                            <string>_getitem_</string>
+                            <string>value</string>
+                            <string>getattr</string>
+                            <string>_apply_</string>
+                            <string>None</string>
+                            <string>form_context</string>
+                            <string>form</string>
+                            <string>validation_errors</string>
+                            <string>field_errors</string>
+                            <string>can_redirect</string>
+                            <string>MARKER</string>
+                            <string>listbox_id_list</string>
+                            <string>file_id_list</string>
+                            <string>field</string>
+                            <string>hasattr</string>
+                            <string>splitted</string>
+                            <string>len</string>
+                            <string>log</string>
+                            <string>listbox_id</string>
+                            <string>listbox_line_list</string>
+                            <string>listbox</string>
+                            <string>listbox_keys</string>
+                            <string>key</string>
+                            <string>listbox_line</string>
+                            <string>tuple</string>
+                            <string>selection_list</string>
+                            <string>map</string>
+                            <string>object_uid_list</string>
+                            <string>error</string>
+                            <string>N_</string>
+                            <string>clean_kw</string>
+                            <string>url_params_string</string>
+                            <string>dialog_form</string>
+                            <string>redirect_url</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <string></string>
+                <int>0</int>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Base_callDialogMethod</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Persistence</string>
+          <string>PersistentMapping</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_container</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_cancel.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_cancel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e923e70f86af5fb7da12f07c1d71b4d400ab6380
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_cancel.xml
@@ -0,0 +1,146 @@
+<?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>return context.ERP5XhtmlStyle_redirect(cancel_url, **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>_params</string> </key>
+            <value> <string>cancel_url, **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>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>cancel_url</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</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>Base_cancel</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doAction.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doAction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f91dafdbda402a4c05d9dff3da970f202caf3b1b
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doAction.xml
@@ -0,0 +1,231 @@
+<?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>portal = context.getPortalObject()\n
+N_ = portal.Base_translateString\n
+\n
+Base_doAction = select_action.split()\n
+doAction0 = Base_doAction[0]\n
+request = context.REQUEST\n
+\n
+# Reinject parameters in kw\n
+kw[\'selection_name\']=selection_name\n
+kw[\'uids\']=uids\n
+kw[\'listbox_uid\']=listbox_uid\n
+kw[\'ignore_layout\']=ignore_layout\n
+\n
+# Update checked uids\n
+if None not in (selection_name, uids, listbox_uid):\n
+  context.portal_selections.updateSelectionCheckedUidList(selection_name, uids=uids, listbox_uid=listbox_uid, REQUEST=request)\n
+\n
+# If this is an object, a workflow or a folder, then jump to that view\n
+if doAction0 in (\'object\', \'workflow\', \'folder\'):\n
+  redirect_url = \' \'.join(Base_doAction[1:])\n
+  if doAction0 == \'object\':\n
+    kw[\'dialog_category\'] = \'object_action\'\n
+# Otherwise, check if this is an automatic menu (add)\n
+elif doAction0 == \'add\':\n
+  new_id = context.generateNewId()\n
+  type_name = \' \'.join(Base_doAction[1:])\n
+  new_content = context.newContent(portal_type=type_name,\n
+                                   container=context,\n
+                                   id=str(new_id))\n
+  kw[\'portal_status_message\'] = N_("Object+Created.")\n
+  if not(ignore_layout) and context.getApplicableLayout():\n
+    kw[\'editable_mode\'] = 1\n
+    redirect_url = \'%s/view\' % (new_content.WebSite_getDocumentPhysicalPath(), )\n
+  else:\n
+    redirect_url = \'%s/view\' % (new_content.absolute_url(), )\n
+  # The created object is not a part of the selection, so prevent from displaying the selection navigation controls\n
+  kw[\'selection_index\']=None\n
+  kw[\'selection_name\']=None\n
+# Otherwise, check if this is an automatic menu (template)\n
+elif doAction0 == \'template\':\n
+  template_relative_url = \' \'.join(Base_doAction[1:])\n
+  template = context.getPortalObject().restrictedTraverse(template_relative_url)\n
+  if template is not None:\n
+    preference = template.getParentValue()\n
+    preference.manage_copyObjects(ids=[template.getId()], REQUEST=request, RESPONSE=None)\n
+    new_content_list = context.manage_pasteObjects(request[\'__cp\'])\n
+    new_content_id = new_content_list[0][\'new_id\']\n
+    new_content = context[new_content_id]\n
+    new_content.makeTemplateInstance()\n
+    kw[\'portal_status_message\'] = N_("Template+Created.")\n
+    redirect_url = \'%s/view\' % ( new_content.absolute_url(), )\n
+  else:\n
+    kw[\'portal_status_message\'] = N_("Template+Does+not+Exist.")\n
+    redirect_url = \'%s/view\' % (context.absolute_url(), )\n
+else:\n
+  redirect_url = request[\'ACTUAL_URL\']\n
+  kw[\'portal_status_message\'] = N_(\'Error: the action "%s" is not recognised.\' % (doAction0, ))\n
+\n
+return context.ERP5XhtmlStyle_redirect(redirect_url, **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>_params</string> </key>
+            <value> <string>select_action, selection_name=None, uids=None, listbox_uid=None, ignore_layout=None, **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>5</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>select_action</string>
+                            <string>selection_name</string>
+                            <string>uids</string>
+                            <string>listbox_uid</string>
+                            <string>ignore_layout</string>
+                            <string>kw</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>portal</string>
+                            <string>N_</string>
+                            <string>Base_doAction</string>
+                            <string>_getitem_</string>
+                            <string>doAction0</string>
+                            <string>request</string>
+                            <string>_write_</string>
+                            <string>None</string>
+                            <string>redirect_url</string>
+                            <string>new_id</string>
+                            <string>type_name</string>
+                            <string>str</string>
+                            <string>new_content</string>
+                            <string>template_relative_url</string>
+                            <string>template</string>
+                            <string>preference</string>
+                            <string>new_content_list</string>
+                            <string>new_content_id</string>
+                            <string>_apply_</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <none/>
+                <none/>
+                <none/>
+                <none/>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5XhtmlStyle_doAction</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doFavorite.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doFavorite.xml
new file mode 100644
index 0000000000000000000000000000000000000000..543601508874a32b5f83a56db41cd98d00fb5664
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doFavorite.xml
@@ -0,0 +1,148 @@
+<?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>if select_favorite == \'\':\n
+  return\n
+return context.ERP5XhtmlStyle_redirect(select_favorite, **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>_params</string> </key>
+            <value> <string>select_favorite, **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>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>select_favorite</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</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>ERP5XhtmlStyle_doFavorite</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doJump.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doJump.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6f88356693f3fdfa4a05899df4d302a5d89c561b
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doJump.xml
@@ -0,0 +1,148 @@
+<?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>if select_jump == \'\':\n
+  return\n
+return context.ERP5XhtmlStyle_redirect(select_jump, **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>_params</string> </key>
+            <value> <string>select_jump, **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>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>select_jump</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+<string>context</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>ERP5XhtmlStyle_doJump</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doLanguage.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doLanguage.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bcd58017989b748449034a35e946289d5b82c32b
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doLanguage.xml
@@ -0,0 +1,153 @@
+<?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># XXX Localizer-dependent\n
+portal = context.getPortalObject()\n
+portal.Localizer.changeLanguage(select_language)\n
+\n
+# XXX should invalidate cached data specific to current user\n
+from Products.ERP5Type.Cache import clearCache\n
+clearCache()\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>_params</string> </key>
+            <value> <string>select_language</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>select_language</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>portal</string>
+                            <string>Products.ERP5Type.Cache</string>
+                            <string>clearCache</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>ERP5XhtmlStyle_doLanguage</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doModule.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doModule.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2321bdf0a36b6b27454f9a32bd6052a1620ee8a7
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_doModule.xml
@@ -0,0 +1,148 @@
+<?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>if select_module == \'\':\n
+  return\n
+return context.ERP5XhtmlStyle_redirect(\'%s/view\' % select_module, **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>_params</string> </key>
+            <value> <string>select_module, **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>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>select_module</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+<string>context</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>ERP5XhtmlStyle_doModule</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_filterParameterList.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_filterParameterList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3ec66eb7a0fe417bedfb1aece966e70f9ea7a6e5
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_filterParameterList.xml
@@ -0,0 +1,171 @@
+<?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>def isValid(value_name):\n
+  """\n
+    Return true when the given field name can be propagated, false otherwise.\n
+\n
+    FIXME: _select should be a prefix, not a sufix, to avoid potential collisions with property names.\n
+  """\n
+  if not value_name.startswith(\'field_\') \\\n
+     and not value_name.startswith(\'subfield_\') \\\n
+     and not value_name.startswith(\'default_field\') \\\n
+     and not value_name.startswith(\'select_\') \\\n
+     or value_name == \'field_id\':\n
+    return True\n
+  return False\n
+\n
+# Remove some special values\n
+# FIXME: This list should be mostly empty, every variable not to propagate must have a distinct prefix and thus be handled by isValid.\n
+for k in (\'-C\', \'SearchableText\', \'uids\', \'listbox_uid\', \'list_selection_name\', \'list_start\', \'portal_status_message\', \'update_action\', \'dialog_method\', \'cancel_method\', \'title\', \'description\', \'reset\', \'md5_object_uid_list\', \'id\'):\n
+  if parameter_list.has_key(k):\n
+    del parameter_list[k]\n
+\n
+for k in parameter_list.keys():\n
+  if not isValid(k):\n
+    del parameter_list[k]\n
+\n
+return parameter_list\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>_params</string> </key>
+            <value> <string>parameter_list</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>parameter_list</string>
+                            <string>isValid</string>
+                            <string>_getiter_</string>
+                            <string>k</string>
+                            <string>_getattr_</string>
+                            <string>_write_</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>ERP5XhtmlStyle_filterParameterList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getCurrentAction.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getCurrentAction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5b34e0150f44bfc98f8f8c9449c94c72dca93526
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getCurrentAction.xml
@@ -0,0 +1,166 @@
+<?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 encoding="cdata"><![CDATA[
+
+# Return the current action to know which tab we should select\n
+# Christophe Dumez <christophe@nexedi.com>\n
+\n
+for action_list in actions.values():\n
+  for action in action_list:\n
+   if current_url == action[\'url\'].split(\'?\')[0]:\n
+     return action\n
+return None\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>current_url, actions</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>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>current_url</string>
+                            <string>actions</string>
+                            <string>_getiter_</string>
+                            <string>_getattr_</string>
+                            <string>action_list</string>
+                            <string>action</string>
+                            <string>_getitem_</string>
+                            <string>None</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>ERP5XhtmlStyle_getCurrentAction</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getHTTPParameterList.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getHTTPParameterList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9281625c16e8cd36ad78aca551002777ea2d397c
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getHTTPParameterList.xml
@@ -0,0 +1,154 @@
+<?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># Disabled until a correct API for html forms is defined.\n
+#for k, v in request_form.items():\n
+#  kw[k]=v\n
+#if kw.has_key(\'-C\'):\n
+#  del kw[\'-C\'] # Why is something like that in the request ? What does it mean ?\n
+return 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>request_form, **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>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>request_form</string>
+                            <string>kw</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>ERP5XhtmlStyle_getHTTPParameterList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_getHelpUrl.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getHelpUrl.xml
similarity index 90%
rename from product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_getHelpUrl.xml
rename to product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getHelpUrl.xml
index 315852e888e6a01c938a8d52d5e62e70b0e42944..464d9f652205b065526cea9ca6b6a60f23285872 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_getHelpUrl.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getHelpUrl.xml
@@ -73,9 +73,8 @@ if workflow_action is not None: # First, the workflow transition case.\n
   help = \'%s_%s\' % (help, workflow_action)\n
 elif current_action is not None: # Then, we are able to get the action.\n
   help = \'%s_%s\' % (help, current_action[\'id\'])\n
-elif dialog_id is not None: # Otherwise, get the form we are in.\n
-  help = \'%s_%s\' % (help, dialog_id)\n
-# Otherwise again, just use the portal type as page name.\n
+elif current_form_id is not None: # Otherwise, get the form we are in.\n
+  help = \'%s_%s\' % (help, current_form_id)\n
 return \'%s/%s\' % (context.portal_preferences.getPreferredHtmlStyleDocumentationBaseUrl(), help)\n
 </string> </value>
         </item>
@@ -99,7 +98,7 @@ return \'%s/%s\' % (context.portal_preferences.getPreferredHtmlStyleDocumentatio
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>form_id=\'\', current_action=\'\', dialog_id=\'\', workflow_action=\'\'</string> </value>
+            <value> <string>current_action=\'\', current_form_id=None, workflow_action=\'\'</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -119,15 +118,14 @@ return \'%s/%s\' % (context.portal_preferences.getPreferredHtmlStyleDocumentatio
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>4</int> </value>
+                        <value> <int>3</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
                         <value>
                           <tuple>
-                            <string>form_id</string>
                             <string>current_action</string>
-                            <string>dialog_id</string>
+                            <string>current_form_id</string>
                             <string>workflow_action</string>
                             <string>_getattr_</string>
                             <string>context</string>
@@ -147,15 +145,14 @@ return \'%s/%s\' % (context.portal_preferences.getPreferredHtmlStyleDocumentatio
             <value>
               <tuple>
                 <string></string>
-                <string></string>
-                <string></string>
+                <none/>
                 <string></string>
               </tuple>
             </value>
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>Base_getHelpUrl</string> </value>
+            <value> <string>ERP5XhtmlStyle_getHelpUrl</string> </value>
         </item>
         <item>
             <key> <string>warnings</string> </key>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getListbox.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getListbox.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bc63b1f4e68db9879e583b357e7b328f93bd3731
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getListbox.xml
@@ -0,0 +1,176 @@
+<?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 encoding="cdata"><![CDATA[
+
+# Return first listbox in a form that is enabled and not hidden\n
+# Christophe Dumez <christophe@nexedi.com>\n
+# This script should be used to detect a listbox without having to name it "listbox"\n
+\n
+if form is None:\n
+  form=context\n
+\n
+if form.meta_type != \'ERP5 Form\':\n
+  return None\n
+\n
+# we start with \'bottom\' because most of the time\n
+# the listbox is there.\n
+for group in (\'bottom\', \'center\', \'left\', \'right\'):\n
+  for field in form.get_fields_in_group(group):\n
+     if field.meta_type == \'ListBox\' and not(field[\'hidden\']) and field[\'enabled\']:\n
+       return field\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>form=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>form</string>
+                            <string>None</string>
+                            <string>context</string>
+                            <string>_getattr_</string>
+                            <string>_getiter_</string>
+                            <string>group</string>
+                            <string>field</string>
+                            <string>_getitem_</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>ERP5XhtmlStyle_getListbox</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getModuleItemList.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getModuleItemList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..339a2104788e7b963a15b930712697cb640fad22
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getModuleItemList.xml
@@ -0,0 +1,182 @@
+<?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>from Products.ERP5Type.Cache import CachingMethod, clearCache\n
+from ZODB.POSException import ConflictError\n
+\n
+user = context.portal_membership.getAuthenticatedMember().getUserName()\n
+\n
+portal = context.getPortalObject()\n
+\n
+def getModuleItemList(user=None, portal_path=None):\n
+  gettext = context.Localizer.erp5_ui.gettext\n
+  item_list = []\n
+  try :\n
+    for module_id in portal.objectIds(\'ERP5 Folder\'):\n
+      try:\n
+        module = portal[module_id]\n
+        url = module.getPath()\n
+        label = module.getTitleOrId()\n
+        label = gettext(label)\n
+        item_list.append((label, url))\n
+      except ConflictError : raise\n
+      except: pass\n
+  except ConflictError : raise\n
+  except: pass\n
+\n
+  def compareModules(a, b): return cmp(a[0], b[0])\n
+  item_list.sort(compareModules)\n
+  return item_list\n
+\n
+getModuleItemList = CachingMethod(getModuleItemList, id=\'ERP5Site_getModuleItemList\')\n
+portal_path = context.getPortalObject().getPhysicalPath()\n
+return getModuleItemList(user=user, portal_path=portal_path)\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>_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>Products.ERP5Type.Cache</string>
+                            <string>CachingMethod</string>
+                            <string>clearCache</string>
+                            <string>ZODB.POSException</string>
+                            <string>ConflictError</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>user</string>
+                            <string>portal</string>
+                            <string>None</string>
+                            <string>getModuleItemList</string>
+                            <string>portal_path</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>ERP5XhtmlStyle_getModuleItemList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getPlanningBox.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getPlanningBox.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d21afce0a04cd9e97b59020d36fe2e6757dd674e
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_getPlanningBox.xml
@@ -0,0 +1,176 @@
+<?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 encoding="cdata"><![CDATA[
+
+# Return first listbox in a form that is enabled and not hidden\n
+# Christophe Dumez <christophe@nexedi.com>\n
+# This script should be used to detect a listbox without having to name it "listbox"\n
+\n
+if form is None:\n
+  form=context\n
+\n
+if form.meta_type != \'ERP5 Form\':\n
+  return None\n
+\n
+# we start with \'bottom\' because most of the time\n
+# the listbox is there.\n
+for group in (\'bottom\', \'center\', \'left\', \'right\'):\n
+  for field in form.get_fields_in_group(group):\n
+     if field.meta_type == \'PlanningBox\' and not(field[\'hidden\']) and field[\'enabled\']:\n
+       return field\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>form=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>form</string>
+                            <string>None</string>
+                            <string>context</string>
+                            <string>_getattr_</string>
+                            <string>_getiter_</string>
+                            <string>group</string>
+                            <string>field</string>
+                            <string>_getitem_</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>ERP5XhtmlStyle_getPlanningBox</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_redirect.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_redirect.xml
new file mode 100644
index 0000000000000000000000000000000000000000..76bd6580399d0e66cf7201ad324313384fd3d7ec
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_redirect.xml
@@ -0,0 +1,183 @@
+<?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 encoding="cdata"><![CDATA[
+
+from ZTUtils import make_query\n
+request_form = context.REQUEST.form\n
+request_form.update(kw)\n
+request_form = context.ERP5XhtmlStyle_filterParameterList(request_form)\n
+request_form.update(keep_items)\n
+\n
+if redirect_url is None:\n
+  redirect_url = \'%s/view\' % (context.getPortalObject().absolute_url())\n
+\n
+parameters = make_query(dict([(k, v) for k, v in request_form.items() if k and v is not None]))\n
+if len(parameters):\n
+  if \'?\' in redirect_url:\n
+    separator = \'&\'\n
+  else:\n
+    separator = \'?\'\n
+  redirect_url = \'%s%s%s\' % (redirect_url, separator, parameters)\n
+\n
+return context.REQUEST.RESPONSE.redirect( redirect_url )\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>_params</string> </key>
+            <value> <string>redirect_url=None, keep_items={}, **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>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>redirect_url</string>
+                            <string>keep_items</string>
+                            <string>kw</string>
+                            <string>ZTUtils</string>
+                            <string>make_query</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>request_form</string>
+                            <string>None</string>
+                            <string>dict</string>
+                            <string>append</string>
+                            <string>$append0</string>
+                            <string>_getiter_</string>
+                            <string>k</string>
+                            <string>v</string>
+                            <string>parameters</string>
+                            <string>len</string>
+                            <string>separator</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <none/>
+                <dictionary/>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5XhtmlStyle_redirect</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderCustomLink.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderCustomLink.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1c54348a9e39daafe19451fad860c4be436e1ac2
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderCustomLink.xml
@@ -0,0 +1,153 @@
+<?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>http_parameter_list.update(kw)\n
+return context.ERP5XhtmlStyle_renderLink(link, context.ERP5XhtmlStyle_renderHTTPParameterList(http_parameter_list))\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>link, http_parameter_list, **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>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>link</string>
+                            <string>http_parameter_list</string>
+                            <string>kw</string>
+                            <string>_getattr_</string>
+                            <string>context</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>ERP5XhtmlStyle_renderCustomLink</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderHTTPParameterList.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderHTTPParameterList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f6b82bde4e0756637337365272c523429e0c63d0
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderHTTPParameterList.xml
@@ -0,0 +1,159 @@
+<?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>from ZTUtils import make_query\n
+return make_query(dict([(k, v) for k, v in http_parameter_list.items() if v is not None]))\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>http_parameter_list</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>http_parameter_list</string>
+                            <string>ZTUtils</string>
+                            <string>make_query</string>
+                            <string>dict</string>
+                            <string>append</string>
+                            <string>$append0</string>
+                            <string>_getiter_</string>
+                            <string>_getattr_</string>
+                            <string>k</string>
+                            <string>v</string>
+                            <string>None</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>ERP5XhtmlStyle_renderHTTPParameterList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderLink.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderLink.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5acd459c36fbdcb44a58e77557a7a82b434d824b
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/ERP5XhtmlStyle_renderLink.xml
@@ -0,0 +1,161 @@
+<?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 encoding="cdata"><![CDATA[
+
+if len(http_parameters) == 0:\n
+  return link\n
+if \'?\' in link:\n
+  sep=\'&\'\n
+else:\n
+  sep=\'?\'\n
+return \'%s%s%s\' % (link, sep, http_parameters)\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>link, http_parameters</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>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>link</string>
+                            <string>http_parameters</string>
+                            <string>len</string>
+                            <string>sep</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>ERP5XhtmlStyle_renderLink</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/TemplateTool_callViewInstallRepositoryBusinessTemplateListDialog.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/TemplateTool_callViewInstallRepositoryBusinessTemplateListDialog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d7099876713169aec05d6fd09b1cf260e3b3ce1c
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/TemplateTool_callViewInstallRepositoryBusinessTemplateListDialog.xml
@@ -0,0 +1,153 @@
+<?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># Clear selection\n
+context.portal_selections.setSelectionCheckedUidsFor(\'template_tool_install_selection\', [])\n
+# Then call the listbox\n
+return context.ERP5XhtmlStyle_redirect("%s/%s" % (context.absolute_url(), \'TemplateTool_viewInstallRepositoryBusinessTemplateListDialog\'))\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>**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>
+                          </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>TemplateTool_callViewInstallRepositoryBusinessTemplateListDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Workflow_statusModify.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Workflow_statusModify.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5feb28462e832ee0ceaa370017c60104029fba96
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Workflow_statusModify.xml
@@ -0,0 +1,224 @@
+<?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>from Products.Formulator.Errors import FormValidationError\n
+from Products.DCWorkflow.DCWorkflow import ValidationFailed\n
+portal = context.getPortalObject()\n
+N_ = portal.Base_translateString\n
+request=context.REQUEST\n
+\n
+form = getattr(context, dialog_id)\n
+\n
+# Validate the form\n
+try:\n
+  form.validate_all_to_request(request)\n
+except FormValidationError, validation_errors:\n
+  # Pack errors into the request\n
+  field_errors = form.ErrorFields(validation_errors)\n
+  request.set(\'field_errors\', field_errors)\n
+  return form(request)\n
+except ValidationFailed, error_message:\n
+  if hasattr(error_message, \'msg\'):\n
+    # use of Message class to store message+mapping+domain\n
+    kw[\'portal_status_message\'] = error_message.msg\n
+  return context.ERP5XhtmlStyle_redirect(\'%s/%s\' % (context.absolute_url(), form_id), **kw)\n
+\n
+# XXX: this is a duplication from form validation code in Base_callDialogMethod\n
+# Correct fix is to factorise this script with Base_callDialogMethod, not to fix XXXs here.\n
+doaction_param_list = {}\n
+MARKER = []\n
+for f in form.get_fields():\n
+  k = f.id\n
+  v = getattr(request, k, MARKER)\n
+  if v is not MARKER:\n
+    doaction_param_list[k[3:]] = v # XXX: k[:3] removing "my_" prefix ? What about checking if it\'s present before stripping ?\n
+\n
+listbox = request.get(\'listbox\') # XXX: hardcoded field name\n
+if listbox is not None:\n
+  listbox_line_list = []\n
+  listbox = getattr(request,\'listbox\',None) # XXX: hardcoded field name\n
+  listbox_keys = listbox.keys()\n
+  listbox_keys.sort()\n
+  for key in listbox_keys:\n
+    listbox_line = listbox[key]\n
+    listbox_line[\'listbox_key\'] = key\n
+    listbox_line_list.append(listbox[key])\n
+  listbox_line_list = tuple(listbox_line_list)\n
+  doaction_param_list[\'listbox\'] = listbox_line_list # XXX: hardcoded field name\n
+\n
+context.portal_workflow.doActionFor(\n
+    context,\n
+    doaction_param_list[\'workflow_action\'],\n
+    **doaction_param_list)\n
+return context.ERP5XhtmlStyle_redirect(\'%s/%s\' % (context.absolute_url(), form_id),keep_items={\'portal_status_message\': N_(\'Status+changed.\')})\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>_params</string> </key>
+            <value> <string>form_id, dialog_id, **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>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>form_id</string>
+                            <string>dialog_id</string>
+                            <string>kw</string>
+                            <string>Products.Formulator.Errors</string>
+                            <string>FormValidationError</string>
+                            <string>Products.DCWorkflow.DCWorkflow</string>
+                            <string>ValidationFailed</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>portal</string>
+                            <string>N_</string>
+                            <string>request</string>
+                            <string>getattr</string>
+                            <string>form</string>
+                            <string>validation_errors</string>
+                            <string>field_errors</string>
+                            <string>error_message</string>
+                            <string>hasattr</string>
+                            <string>_write_</string>
+                            <string>_apply_</string>
+                            <string>doaction_param_list</string>
+                            <string>MARKER</string>
+                            <string>_getiter_</string>
+                            <string>f</string>
+                            <string>k</string>
+                            <string>v</string>
+                            <string>_getitem_</string>
+                            <string>listbox</string>
+                            <string>None</string>
+                            <string>listbox_line_list</string>
+                            <string>listbox_keys</string>
+                            <string>key</string>
+                            <string>listbox_line</string>
+                            <string>tuple</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>Workflow_statusModify</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/configure_list_dialog.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/configure_list_dialog.xml
index bdf733f38ae07281be5d664c95e208152d18c1dd..b88b87e2f7b9298878ab8107e2af9c250cff49c9 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/configure_list_dialog.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/configure_list_dialog.xml
@@ -77,51 +77,23 @@ XXX: uses hardcoded indices values to access fields\n
 <tal:block metal:define-macro="master">\n
   <tal:block metal:use-macro="here/dialog_main/macros/master">\n
     <tal:block metal:fill-slot="main">\n
-      <tal:block tal:define="template python: here.developper_shortcut_render">\n
-        <tal:block metal:use-macro="template/macros/form" />\n
-      </tal:block>\n
-      <table tal:define="base_form python: getattr(here,form_id);\n
-                         groups base_form/get_groups;\n
-                         default_columns python: base_form.get_fields_in_group(groups[0])[0].get_value(\'columns\');\n
-                         columns python: here.portal_selections.getSelectionColumns(selection_name, REQUEST=request, columns=default_columns);\n
-                         selected_stats  python: here.portal_selections.getSelectionStats(selection_name, REQUEST=request);\n
-                         global row_index python: 0;\n
-                         global row_keys python: [\'None\'];\n
-                         global stats python: [\' \',\'count\',\'sum\',\'max\',\'min\',\'avg\'];\n
-                         all_columns python: base_form.get_fields_in_group(groups[0])[0].get_value(\'all_columns\')">\n
-        <tal:block tal:repeat="item columns">\n
-          <tr tal:define="global row_index python:row_index+1;\n
-                          dummy python:row_keys.append(item[0])"\n
-              tal:attributes="id string:column_${row_index}">\n
-            <td>\n
-              <tal:block i18n:translate="" i18n:domain="ui">Column</tal:block>\n
-              <tal:block tal:replace="row_index" />\n
-            </td>\n
-            <td>\n
-              <select name="field_columns">\n
-                <tal:block tal:repeat="option python: [(\'None\',\'None\')] + all_columns">\n
-                  <option tal:content="python: option[1]"\n
-                          tal:attributes="value python:option[0];\n
-                                          selected python: option[0]==item[0] and \'selected\' or nothing"\n
-                          i18n:translate="" i18n:domain="ui" />\n
-                </tal:block>\n
-              </select>\n
-            </td>\n
-            <td>\n
-              <select name="stat_columns">\n
-                <tal:block tal:repeat="stat stats">\n
-                  <option tal:content="stat"\n
-                          tal:attributes="value stat;\n
-                                          selected python: (len(selected_stats) >= row_index and stat == selected_stats[row_index - 1]) and \'selected\' or nothing"\n
-                          i18n:translate="" i18n:domain="ui" />\n
-                </tal:block>\n
-              </select>\n
-            </td>\n
-          </tr>\n
+      <div class="dialog_box">\n
+        <tal:block tal:define="template python: here.developper_shortcut_render">\n
+          <tal:block metal:use-macro="template/macros/form" />\n
         </tal:block>\n
-        <tal:block tal:repeat="item all_columns">\n
-          <tal:block tal:condition="python: item[0] not in row_keys">\n
-            <tr tal:define="global row_index python:row_index+1"\n
+        <table tal:define="selection_name request/selection_name;\n
+                          base_form python: getattr(here, request[\'form_id\']);\n
+                          groups base_form/get_groups;\n
+                          default_columns python: base_form.get_fields_in_group(groups[0])[0].get_value(\'columns\');\n
+                          columns python: here.portal_selections.getSelectionColumns(selection_name, REQUEST=request, columns=default_columns);\n
+                          selected_stats  python: here.portal_selections.getSelectionStats(selection_name, REQUEST=request);\n
+                          global row_index python: 0;\n
+                          global row_keys python: [\'None\'];\n
+                          global stats python: [\' \',\'count\',\'sum\',\'max\',\'min\',\'avg\'];\n
+                          all_columns python: base_form.get_fields_in_group(groups[0])[0].get_value(\'all_columns\')">\n
+          <tal:block tal:repeat="item columns">\n
+            <tr tal:define="global row_index python:row_index+1;\n
+                            dummy python:row_keys.append(item[0])"\n
                 tal:attributes="id string:column_${row_index}">\n
               <td>\n
                 <tal:block i18n:translate="" i18n:domain="ui">Column</tal:block>\n
@@ -129,15 +101,12 @@ XXX: uses hardcoded indices values to access fields\n
               </td>\n
               <td>\n
                 <select name="field_columns">\n
-                  <option selected="selected"\n
-                          value="None"\n
-                          i18n:translate="" i18n:domain="ui">\n
-                    None\n
-                  </option>\n
-                  <option tal:repeat="option all_columns"\n
-                          tal:content="python:option[1]"\n
-                          tal:attributes="value python:option[0]"\n
-                          i18n:translate="" i18n:domain="ui" />\n
+                  <tal:block tal:repeat="option python: [(\'None\',\'None\')] + all_columns">\n
+                    <option tal:content="python: option[1]"\n
+                            tal:attributes="value python:option[0];\n
+                                            selected python: option[0]==item[0] and \'selected\' or nothing"\n
+                            i18n:translate="" i18n:domain="ui" />\n
+                  </tal:block>\n
                 </select>\n
               </td>\n
               <td>\n
@@ -145,15 +114,49 @@ XXX: uses hardcoded indices values to access fields\n
                   <tal:block tal:repeat="stat stats">\n
                     <option tal:content="stat"\n
                             tal:attributes="value stat;\n
-                            selected python: len(selected_stats) >= row_index and stat == selected_stats[row_index - 1] and \'selected or nothing\'"\n
+                                            selected python: (len(selected_stats) >= row_index and stat == selected_stats[row_index - 1]) and \'selected\' or nothing"\n
                             i18n:translate="" i18n:domain="ui" />\n
                   </tal:block>\n
                 </select>\n
               </td>\n
             </tr>\n
           </tal:block>\n
-        </tal:block>\n
-      </table>\n
+          <tal:block tal:repeat="item all_columns">\n
+            <tal:block tal:condition="python: item[0] not in row_keys">\n
+              <tr tal:define="global row_index python:row_index+1"\n
+                  tal:attributes="id string:column_${row_index}">\n
+                <td>\n
+                  <tal:block i18n:translate="" i18n:domain="ui">Column</tal:block>\n
+                  <tal:block tal:replace="row_index" />\n
+                </td>\n
+                <td>\n
+                  <select name="field_columns">\n
+                    <option selected="selected"\n
+                            value="None"\n
+                            i18n:translate="" i18n:domain="ui">\n
+                      None\n
+                    </option>\n
+                    <option tal:repeat="option all_columns"\n
+                            tal:content="python:option[1]"\n
+                            tal:attributes="value python:option[0]"\n
+                            i18n:translate="" i18n:domain="ui" />\n
+                  </select>\n
+                </td>\n
+                <td>\n
+                  <select name="stat_columns">\n
+                    <tal:block tal:repeat="stat stats">\n
+                      <option tal:content="stat"\n
+                              tal:attributes="value stat;\n
+                              selected python: len(selected_stats) >= row_index and stat == selected_stats[row_index - 1] and \'selected or nothing\'"\n
+                              i18n:translate="" i18n:domain="ui" />\n
+                    </tal:block>\n
+                  </select>\n
+                </td>\n
+              </tr>\n
+            </tal:block>\n
+          </tal:block>\n
+        </table>\n
+      </div>\n
     </tal:block>\n
   </tal:block>\n
 </tal:block>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/context_box_render.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/context_box_render.xml
index adeaef6b8bf5f1e99154fd8ff6d1e303a77bedfc..d42b587e7b55246d1a1699b9ef53c4ea6e9ff67c 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/context_box_render.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/context_box_render.xml
@@ -82,8 +82,8 @@ XXX: Folder_filter accesses selection directly\n
 </tal:block>\n
 <tal:block metal:define-macro="master">\n
   <span id="jump">\n
-    <select name="jump_select"\n
-            tal:attributes="onChange string:submitAction(this.form,\'${url}/Base_doJump\')">\n
+    <select name="select_jump"\n
+            tal:attributes="onChange string:submitAction(this.form,\'${url}/ERP5XhtmlStyle_doJump\')">\n
       <option selected="selected" value=""\n
               i18n:translate="" i18n:domain="ui">Jump...</option>\n
       <tal:block tal:repeat="jump actions/object_jump | nothing">\n
@@ -102,7 +102,7 @@ XXX: Folder_filter accesses selection directly\n
         </tal:block>\n
       </tal:block>\n
     </select>\n
-    <button type="submit" name="Base_doJump:method" title="Jump"\n
+    <button type="submit" name="ERP5XhtmlStyle_doJump:method" title="Jump"\n
             i18n:attributes="title" i18n:domain="ui">\n
       <span class="image"></span>\n
       <span class="description"\n
@@ -111,8 +111,8 @@ XXX: Folder_filter accesses selection directly\n
   </span>\n
   <span class="separator"></span>\n
   <span id="action">\n
-    <select name="action_select"\n
-            tal:attributes="onChange string:submitAction(this.form,\'${url}/Base_doAction\')"\n
+    <select name="select_action"\n
+            tal:attributes="onChange string:submitAction(this.form,\'${url}/ERP5XhtmlStyle_doAction\')"\n
             tal:define="document_template_list here/getDocumentTemplateList | nothing">\n
       <option selected="selected" value=""\n
               i18n:translate="" i18n:domain="ui">Action...</option>\n
@@ -157,7 +157,7 @@ XXX: Folder_filter accesses selection directly\n
         </tal:block>\n
       </tal:block>\n
     </select>\n
-    <button type="submit" name="Base_doAction:method" title="Action"\n
+    <button type="submit" name="ERP5XhtmlStyle_doAction:method" title="Action"\n
             i18n:attributes="title" i18n:domain="ui">\n
       <span class="image"></span>\n
       <span class="description">Action</span>\n
@@ -192,13 +192,6 @@ XXX: Folder_filter accesses selection directly\n
         </button>\n
         <span class="separator"></span>\n
       </tal:block>\n
-      <tal:block tal:condition="selection_index | nothing">\n
-        <a class="list_mode" title="List Mode" tal:attributes="href selection_url">\n
-          <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">List Mode</span>\n
-        </a>\n
-      <span class="separator"></span>\n
-      </tal:block>\n
       <button tal:condition="print_actions" class="print" type="submit" name="Folder_print:method" title="Print"\n
               i18n:attributes="title" i18n:domain="ui">\n
         <span class="image"></span>\n
@@ -215,33 +208,39 @@ XXX: Folder_filter accesses selection directly\n
         <span class="image"></span>\n
         <span class="description" i18n:translate="" i18n:domain="ui">Delete</span>\n
       </button>\n
-      <tal:block tal:condition="selection_index | nothing">\n
-        <span class="separator"></span>\n
-        <a class="jump_first" title="First"\n
-           tal:attributes="href python: here.ERP5Site_renderLink(\'portal_selections/viewFirst\', http_parameters)">\n
-          <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">First</span>\n
-        </a>\n
-        <a class="jump_previous" title="Previous"\n
-           tal:attributes="href python: here.ERP5Site_renderLink(\'portal_selections/viewPrevious\', http_parameters)">\n
-          <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Previous</span>\n
-        </a>\n
-        <a class="jump_next" title="Next"\n
-           tal:attributes="href python: here.ERP5Site_renderLink(\'portal_selections/viewNext\', http_parameters)">\n
-          <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Next</span>\n
-        </a>\n
-        <a class="jump_last" title="Last"\n
-           tal:attributes="href python: here.ERP5Site_renderLink(\'portal_selections/viewLast\', http_parameters)">\n
-          <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Last</span>\n
-        </a>\n
+      <tal:block tal:condition="not: list_mode | nothing">\n
+        <tal:block tal:condition="request/selection_index | nothing">\n
+          <span class="separator"></span>\n
+          <a class="jump_first" title="First"\n
+            tal:attributes="href python: here.ERP5XhtmlStyle_renderLink(\'portal_selections/viewFirst\', http_parameters)">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">First</span>\n
+          </a>\n
+          <a class="jump_previous" title="Previous"\n
+            tal:attributes="href python: here.ERP5XhtmlStyle_renderLink(\'portal_selections/viewPrevious\', http_parameters)">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Previous</span>\n
+          </a>\n
+          <a class="list_mode" title="List Mode" tal:attributes="href python: here.portal_selections.getSelectionListUrlFor(request[\'selection_name\'])">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">List Mode</span>\n
+          </a>\n
+          <a class="jump_next" title="Next"\n
+            tal:attributes="href python: here.ERP5XhtmlStyle_renderLink(\'portal_selections/viewNext\', http_parameters)">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Next</span>\n
+          </a>\n
+          <a class="jump_last" title="Last"\n
+            tal:attributes="href python: here.ERP5XhtmlStyle_renderLink(\'portal_selections/viewLast\', http_parameters)">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Last</span>\n
+          </a>\n
+        </tal:block>\n
       </tal:block>\n
       <tal:block tal:condition="list_mode | nothing">\n
         <span class="separator"></span>\n
         <a tal:condition="search_actions" class="find" title="Find"\n
-           tal:attributes="href python: here.ERP5Site_renderCustomLink(search_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_search\')">\n
+           tal:attributes="href python: here.ERP5XhtmlStyle_renderCustomLink(search_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_search\')">\n
           <span class="image"></span>\n
           <span class="description" i18n:translate="" i18n:domain="ui">Find</span>\n
         </a>\n
@@ -257,7 +256,7 @@ XXX: Folder_filter accesses selection directly\n
           <span class="description" i18n:translate="" i18n:domain="ui">Filter</span>\n
         </button>\n
         <a tal:condition="sort_actions" class="sort" title="Sort"\n
-           tal:attributes="href python: here.ERP5Site_renderCustomLink(sort_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_sort\')">\n
+           tal:attributes="href python: here.ERP5XhtmlStyle_renderCustomLink(sort_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_sort\')">\n
           <span class="image"></span>\n
           <span class="description" i18n:translate="" i18n:domain="ui">Sort</span>\n
         </a>\n
@@ -265,19 +264,19 @@ XXX: Folder_filter accesses selection directly\n
       <span tal:condition="exchange_actions | report_actions"\n
             class="separator"></span>\n
       <a tal:condition="exchange_actions" class="import_export" title="Import / Export"\n
-         tal:attributes="href python: here.ERP5Site_renderCustomLink(exchange_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_exchange\')">\n
+         tal:attributes="href python: here.ERP5XhtmlStyle_renderCustomLink(exchange_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_exchange\')">\n
         <span class="image"></span>\n
         <span class="description" i18n:translate="" i18n:domain="ui">Import / Export</span>\n
       </a>\n
       <a tal:condition="report_actions" class="report" title="Report"\n
-         tal:attributes="href python: here.ERP5Site_renderCustomLink(report_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_report\')">\n
+         tal:attributes="href python: here.ERP5XhtmlStyle_renderCustomLink(report_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_report\')">\n
         <span class="image"></span>\n
         <span class="description" i18n:translate="" i18n:domain="ui">Report</span>\n
       </a>\n
       <tal:block tal:condition="button_actions">\n
         <span class="separator"></span>\n
         <tal:block tal:repeat="button_action button_actions">\n
-          <a tal:attributes="href python: here.ERP5Site_renderLink(button_action[\'url\'], http_parameters)">\n
+          <a tal:attributes="href python: here.ERP5XhtmlStyle_renderLink(button_action[\'url\'], http_parameters)">\n
             <img i18n:attributes="title" i18n:domain="ui"\n
                  tal:attributes="src python:button_action[\'icon\'];\n
                                  title python:button_action[\'name\'];\n
@@ -288,15 +287,16 @@ XXX: Folder_filter accesses selection directly\n
       <tal:block tal:condition="ui_actions">\n
         <span class="separator"></span>\n
         <a class="configure" title="Configure"\n
-          tal:attributes="href python: here.ERP5Site_renderCustomLink(ui_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_ui\')">\n
+          tal:attributes="href python: here.ERP5XhtmlStyle_renderCustomLink(ui_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_ui\')">\n
           <span class="image"></span>\n
           <span class="description" i18n:translate="" i18n:domain="ui">Configure</span>\n
         </a>\n
       </tal:block>\n
     </span>\n
     <span class="second">\n
-      <a class="jump_help" title="Help"\n
-         tal:attributes="href python: here.Base_getHelpUrl(current_action=current_action, dialog_id=dialog_id, workflow_action=request.get(\'workflow_action\'))">\n
+      <a tal:condition="here/portal_preferences/getPreferredHtmlStyleContextualHelp"\n
+         class="jump_help" title="Help"\n
+         tal:attributes="href python: here.ERP5XhtmlStyle_getHelpUrl(current_action=current_action, current_form_id=current_form_id, workflow_action=request.get(\'workflow_action\'))">\n
         <span class="image"></span>\n
         <span class="description" i18n:translate="" i18n:domain="ui">Help</span>\n
       </a>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/dialog_main.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/dialog_main.xml
index 28c04d8f23a1958f9bb2d663a3b195c5a1b52ca5..29ab9880ae083b32ba10b4a7c6473cbb000350bb 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/dialog_main.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/dialog_main.xml
@@ -73,7 +73,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </tal:block>\n
 <tal:block metal:define-macro="master">\n
-  <tal:block tal:define="form_action string:Base_callDialogMethod">\n
+  <tal:block tal:define="form_action string:Base_callDialogMethod;\n
+                         dialog_id form/id | template/id;\n
+                         dialog_method form/action | dialog_id;\n
+                         update_action form/update_action;\n
+                         global dialog_category request/dialog_category | nothing;\n
+\n
+                         local_parameter_list local_parameter_list | python: {};\n
+                         dummy python: local_parameter_list.update({\'dialog_id\': dialog_id, \'dialog_method\': dialog_method, \'update_action\': update_action, \'dialog_category\': dialog_category});\n
+                         ">\n
     <tal:block metal:use-macro="here/main_template/macros/master">\n
       <tal:block metal:fill-slot="main">\n
         <div class="list_dialog">\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/field_render.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/field_render.xml
index 111690a7a44b549a0096b98305fa4e21b6965b8a..22d2e1230ede7eefbf9c2990329b4b53f092078f 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/field_render.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/field_render.xml
@@ -73,7 +73,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </tal:block>\n
 <tal:block metal:define-macro="field_render">\n
-  <tal:block tal:define="value python:request.get(field.id, None)">\n
+  <tal:block tal:define="value python:request.get(field.id, None);\n
+                         field_errors python: request.get(\'field_errors\',{})">\n
     <tal:block tal:define="html_render python: field.render_htmlgrid(value, request)">\n
       <tal:block tal:condition="python:field.meta_type != \'HiddenStringField\'">\n
         <div tal:repeat="html_tuple html_render" class="field"\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_dialog.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_dialog.xml
index 3f7d1dde93d1380d35fa3e13c733f3f1e1b8c8fc..ee758735393b8520bec17dc5ac0333ca42a6f24b 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_dialog.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_dialog.xml
@@ -81,6 +81,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
                              right_group python: form.get_fields_in_group(\'right\');\n
                              center_group python: form.get_fields_in_group(\'center\');\n
                              dialog_actions python: actions.get(dialog_category, [])">\n
+        <tal:block tal:define="template python: here.developper_shortcut_render">\n
+          <tal:block metal:use-macro="template/macros/form" />\n
+        </tal:block>\n
         <div tal:condition="python: len(left_group) or len(right_group) or len(center_group) or len(dialog_actions)>1"\n
              class="dialog_box">\n
           <div tal:condition="python: len(dialog_actions) > 1"\n
@@ -108,9 +111,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
             </button>\n
           </div>\n
           <div class="content">\n
-            <tal:block tal:define="template python: here.developper_shortcut_render">\n
-              <tal:block metal:use-macro="template/macros/form" />\n
-            </tal:block>\n
             <div tal:condition="python: len(left_group) > 0 or len(right_group) > 0"\n
                 class="top_group">\n
               <div tal:condition="python: len(left_group) > 0"\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/index_html.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/index_html.xml
index e0122930f9a922273a75e20ceb1d7dce2eb93347..d3cf148bd424ab7afb425abc6563595c810e01bc 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/index_html.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/index_html.xml
@@ -81,7 +81,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
          class="index_html">\n
       <h2 i18n:translate="" i18n:domain="ui">Welcome to ERP5</h2>\n
       <table border="1">\n
-        <tr tal:define="module_list here/ERP5Site_getModuleItemList;\n
+        <tr tal:define="module_list here/ERP5XhtmlStyle_getModuleItemList;\n
                         module_len python: len(module_list);\n
                         col_size python: 12;\n
                         col_len python: module_len % col_size and (module_len + col_size) / col_size or (module_len) / col_size">\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_main.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_main.xml
index 0ad171cfa65faef174b8275c391d3f2dfedc3021..7ff941b0044d99f464f2782d9516883ac2fa9ae1 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_main.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_main.xml
@@ -73,12 +73,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </tal:block>\n
 <tal:block metal:define-macro="master">\n
-  <tal:block metal:use-macro="here/main_template/macros/master">\n
-    <tal:block metal:fill-slot="context_bar">\n
-      <tal:block metal:use-macro="here/context_box_render/macros/master" />\n
-    </tal:block>\n
-    <tal:block metal:fill-slot="main">\n
-      <tal:block metal:define-slot="main" />\n
+  <tal:block tal:define="form_action string:Base_doSelect:method;\n
+                         form_id form/id;\n
+                         list_mode python: True;\n
+                         listmode_default_listbox python: here.ERP5XhtmlStyle_getListbox(form=form);\n
+                         selection_name listmode_default_listbox/selection_name;\n
+                         selection_index request/selection_index | python:0;\n
+                         dummy python: selection_name and request.set(\'selection_name\', selection_name);\n
+\n
+                         local_parameter_list local_parameter_list | python: {};\n
+                         dummy python: local_parameter_list.update({\'selection_name\': selection_name, \'selection_index\': selection_index, \'form_id\': form_id});\n
+                         ">\n
+    <tal:block metal:use-macro="here/main_template/macros/master">\n
+      <tal:block metal:fill-slot="context_bar">\n
+        <tal:block metal:use-macro="here/context_box_render/macros/master" />\n
+      </tal:block>\n
+      <tal:block metal:fill-slot="main">\n
+        <tal:block metal:define-slot="main" />\n
+      </tal:block>\n
     </tal:block>\n
   </tal:block>\n
 </tal:block>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/sort_list_dialog.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/sort_list_dialog.xml
index 6afdae2977ab79e05a871516978200ec6362f1c5..dc2222ad3f8176216c6989841120d2be6bf08434 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/sort_list_dialog.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/sort_list_dialog.xml
@@ -75,55 +75,57 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 <tal:block metal:define-macro="master">\n
   <tal:block metal:use-macro="here/dialog_main/macros/master">\n
     <tal:block metal:fill-slot="main">\n
-      <tal:block tal:define="template python: here.developper_shortcut_render">\n
-        <tal:block metal:use-macro="template/macros/form" />\n
-      </tal:block>\n
-      <div class="content"\n
-           tal:define="items python:here.portal_selections.getSelectionSortOrder(selection_name, REQUEST=request);\n
-                       base_form python:getattr(here,form_id);\n
-                       groups base_form/get_groups;\n
-                       columns python:base_form.get_fields_in_group(groups[0])[0].get_value(\'all_columns\');\n
-                       global row_index python:0;\n
-                       global row_keys python:[\'None\'];\n
-                       all_columns python: [(\'None\',\'None\')] + columns;">\n
-        <div tal:repeat="item items"\n
-             class="field">\n
-          <label>\n
-            <tal:block i18n:translate="" i18n:domain="ui">Sort</tal:block>\n
-            <tal:block tal:replace="row_index" />\n
-          </label>\n
-          <div class="input" tal:attributes="id string:sort_${row_index}">\n
-            <select name="field_sort_on">\n
-              <tal:block tal:repeat="option all_columns">\n
-                <option tal:content="python:option[1]"\n
-                        tal:attributes="value python:option[0];\n
-                                        selected python:option[0]==item[0] and \'selected\' or nothing"\n
-                        i18n:translate="" i18n:domain="ui"></option>\n
-              </tal:block>\n
-            </select>\n
-            <tal:block tal:replace="structure python:form.sort_order.render(item[1], request)" />\n
-          </div>\n
-          <hr class="clear" />\n
-        </div>\n
-        <div tal:repeat="item columns"\n
-             class="field">\n
-          <tal:block tal:condition="python: item[0] not in row_keys">\n
-            <label tal:define="global row_index python:row_index+1">\n
+      <div class="dialog_box">\n
+        <tal:block tal:define="template python: here.developper_shortcut_render">\n
+          <tal:block metal:use-macro="template/macros/form" />\n
+        </tal:block>\n
+        <div class="content"\n
+            tal:define="items python:here.portal_selections.getSelectionSortOrder(request[\'selection_name\'], REQUEST=request);\n
+                        base_form python:getattr(here,request[\'form_id\']);\n
+                        groups base_form/get_groups;\n
+                        columns python:base_form.get_fields_in_group(groups[0])[0].get_value(\'all_columns\');\n
+                        global row_index python:0;\n
+                        global row_keys python:[\'None\'];\n
+                        all_columns python: [(\'None\',\'None\')] + columns;">\n
+          <div tal:repeat="item items"\n
+              class="field">\n
+            <label>\n
               <tal:block i18n:translate="" i18n:domain="ui">Sort</tal:block>\n
               <tal:block tal:replace="row_index" />\n
             </label>\n
             <div class="input" tal:attributes="id string:sort_${row_index}">\n
               <select name="field_sort_on">\n
-                <option selected="selected" value="None">None</option>\n
-                <option tal:repeat="option columns"\n
-                        tal:content="python:option[1]"\n
-                        tal:attributes="value python:option[0]"\n
-                        i18n:translate="" i18n:domain="ui"></option>\n
+                <tal:block tal:repeat="option all_columns">\n
+                  <option tal:content="python:option[1]"\n
+                          tal:attributes="value python:option[0];\n
+                                          selected python:option[0]==item[0] and \'selected\' or nothing"\n
+                          i18n:translate="" i18n:domain="ui"></option>\n
+                </tal:block>\n
               </select>\n
-              <span tal:replace="structure python:form.sort_order.render(\'\', request)" />\n
+              <tal:block tal:replace="structure python:form.sort_order.render(item[1], request)" />\n
             </div>\n
-          </tal:block>\n
-          <hr class="clear" />\n
+            <h6 class="clear" />\n
+          </div>\n
+          <div tal:repeat="item columns"\n
+              class="field">\n
+            <tal:block tal:condition="python: item[0] not in row_keys">\n
+              <label tal:define="global row_index python:row_index+1">\n
+                <tal:block i18n:translate="" i18n:domain="ui">Sort</tal:block>\n
+                <tal:block tal:replace="row_index" />\n
+              </label>\n
+              <div class="input" tal:attributes="id string:sort_${row_index}">\n
+                <select name="field_sort_on">\n
+                  <option selected="selected" value="None">None</option>\n
+                  <option tal:repeat="option columns"\n
+                          tal:content="python:option[1]"\n
+                          tal:attributes="value python:option[0]"\n
+                          i18n:translate="" i18n:domain="ui"></option>\n
+                </select>\n
+                <span tal:replace="structure python:form.sort_order.render(\'\', request)" />\n
+              </div>\n
+            </tal:block>\n
+            <h6 class="clear" />\n
+          </div>\n
         </div>\n
       </div>\n
     </tal:block>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/template_erp5_xhtml_style.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/template_erp5_xhtml_style.xml
index e952ce25b64d1d6b1005ae2c424c00caebe82958..ac874ddf20551671d96f94948dc0eb04dfb6563a 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/template_erp5_xhtml_style.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/template_erp5_xhtml_style.xml
@@ -76,42 +76,27 @@ IDEAS:\n
 -->\n
 </tal:block>\n
 <tal:block metal:define-macro="master">\n
-<tal:block tal:condition="form/pt | nothing">\n
-  <tal:block tal:define="global list_mode python: form[\'pt\'] == \'form_list\';\n
-                         global listmode_default_listbox python: here.ERP5Site_getListbox(form=form)" />\n
-</tal:block>\n
-<tal:block tal:define="global actions python:here.getPortalObject().portal_actions.listFilteredActionsFor(here);\n
-                       global dialog_id form/id | template/id;\n
-                       global form_id request/form_id | dialog_id;\n
-                       global field_errors python: request.get(\'field_errors\',{});\n
-                       global cancel_url request/cancel_url | request/ACTUAL_URL;\n
-                       global dialog_method form/action | form_id;\n
-                       global form_action form_action | dialog_method;\n
-                       global dialog_category request/dialog_category | nothing;\n
-                       global url python: \'%s%s\' % (request[\'SERVER_URL\'], here.getPath(), );\n
-                       global ignore_layout request/ignore_layout | python: 0;\n
-\n
-                       global selection_name request/selection_name | listmode_default_listbox/selection_name | nothing;\n
-                       dummy python: selection_name and request.set(\'selection_name\', selection_name);\n
-                       global selection_index request/selection_index | nothing;\n
-                       global selection_url python: selection_name and here.portal_selections.getSelectionListUrlFor(selection_name,REQUEST=request) or None;\n
-\n
-                       global current_url python: \'%s/%s\' % (url, dialog_id);\n
-                       global current_action python: here.ERP5Site_getCurrentAction(current_url, actions);\n
-                       form_pickle request/form_pickle | nothing;\n
-                       form_signature request/form_signature | nothing;\n
-                       field_id request/field_id | nothing;\n
-                       object_uid here/getUid | nothing;\n
-                       object_path here/getPath | nothing;\n
-                       dummy python: request.set(\'here\',here);\n
-\n
-                       global http_parameter_list python: here.ERP5Site_getHTTPParameterList(request_form=request.form, form_id=form_id, dialog_id=dialog_id, selection_name=selection_name, selection_index=selection_index, selection_url=selection_url, cancel_url=cancel_url, form_action=form_action, dialog_method=dialog_method, dialog_category=dialog_category, form_pickle=form_pickle, form_signature=form_signature, field_id=field_id, object_uid=object_uid, object_path=object_path);\n
-                       global http_parameters python: here.ERP5Site_renderHTTPParameterList(http_parameter_list);\n
+<tal:block tal:define="\n
+                       cancel_url request/cancel_url | request/ACTUAL_URL;\n
+                       local_parameter_list local_parameter_list | python: {};\n
+                       dummy python: local_parameter_list.update({\'cancel_url\': cancel_url});\n
 \n
+                       global actions python: here.getPortalObject().portal_actions.listFilteredActionsFor(here);\n
+                       global url python: \'%s%s\' % (request[\'SERVER_URL\'], here.getPath(), );\n
+                       global current_form_id python: local_parameter_list.get(\'dialog_id\', local_parameter_list.get(\'form_id\', \'view\'));\n
+                       global current_url python: \'%s/%s\' % (url, current_form_id);\n
+                       global current_action python: here.ERP5XhtmlStyle_getCurrentAction(current_url, actions);\n
+                       dummy python: request.set(\'here\', here);\n
                        global css_list css_list | python: [];\n
                        dummy python: css_list.append(\'%s/erp5.css\' % (here.portal_url.getPortalPath(), ));\n
                        global js_list js_list | python: [];\n
                        dummy python: js_list.append(\'%s/erp5.js\' % (here.portal_url.getPortalPath(), ));\n
+\n
+\n
+                       global http_parameter_list request/form/copy;\n
+                       http_parameter_list python: here.ERP5XhtmlStyle_filterParameterList(http_parameter_list);\n
+                       dummy python: http_parameter_list.update(local_parameter_list);\n
+                       global http_parameters python: here.ERP5XhtmlStyle_renderHTTPParameterList(http_parameter_list);\n
                        " />\n
 <?xml version="1.0" encoding="UTF-8"?>\n
 <!DOCTYPE html\n
@@ -133,7 +118,7 @@ IDEAS:\n
     </tal:block>\n
 \n
     <tal:block tal:condition="form/pt | nothing">\n
-      <tal:block tal:define="planning_box python: here.ERP5Site_getPlanningBox(form)">\n
+      <tal:block tal:define="planning_box python: here.ERP5XhtmlStyle_getPlanningBox(form)">\n
         <tal:block tal:condition="python: planning_box">\n
 \n
           <style tal:content="structure python: planning_box.render_css(None,REQUEST=request)"\n
@@ -153,6 +138,7 @@ IDEAS:\n
     </tal:block>\n
   </head>\n
   <body>\n
+<!--     <tal:block tal:replace="structure request"/> -->\n
     <form id="main_form"\n
           tal:attributes="enctype form/enctype | nothing;\n
                           action url;\n
@@ -160,7 +146,7 @@ IDEAS:\n
       <div id="bars">\n
         <!-- Hidden button as explained in http://ppewww.ph.gla.ac.uk/~flavell/www/formquestion.html -->\n
         <!-- We should probably call the default method instead -->\n
-        <input tal:condition="form_action"\n
+        <input tal:condition="form_action | nothing"\n
                id="hidden_button" type="submit" value="dummy"\n
                tal:attributes="name python: \'%s:method\' % (form_action, )" />\n
         <!-- Generic way of specifying http parameters -->\n
@@ -172,10 +158,10 @@ IDEAS:\n
         <div id="main_bar">\n
           <span class="first">\n
             <span id="favourites">\n
-              <select name="favorite_select"\n
+              <select name="select_favorite"\n
                       tal:define="ordered_global_actions python:here.getOrderedGlobalActionList(actions[\'global\']);\n
                                   user_actions actions/user;"\n
-                      tal:attributes="onChange string:submitAction(this.form,\'${url}/Base_doFavorite\')">\n
+                      tal:attributes="onChange string:submitAction(this.form,\'${url}/ERP5XhtmlStyle_doFavorite\')">\n
                 <option selected="selected" value=""\n
                         i18n:translate="" i18n:domain="ui">My favourites</option>\n
                 <tal:block tal:condition="ordered_global_actions">\n
@@ -202,7 +188,7 @@ IDEAS:\n
                           i18n:translate="" i18n:domain="ui"></option>\n
                 </tal:block>\n
               </select>\n
-              <button type="submit" name="Base_doFavorite:method" title="Select Favorite"\n
+              <button type="submit" name="ERP5XhtmlStyle_doFavorite:method" title="Select Favorite"\n
                       i18n:attributes="title" i18n:domain="ui">\n
                 <span class="image"></span>\n
                 <span class="description"\n
@@ -211,9 +197,9 @@ IDEAS:\n
             </span>\n
             <span class="separator"></span>\n
             <span id="modules">\n
-              <select name="module_select"\n
-                      tal:define="module_list here/ERP5Site_getModuleItemList;"\n
-                      tal:attributes="onChange string:submitAction(this.form,\'${url}/Base_doModule\')">\n
+              <select name="select_module"\n
+                      tal:define="module_list here/ERP5XhtmlStyle_getModuleItemList;"\n
+                      tal:attributes="onChange string:submitAction(this.form,\'${url}/ERP5XhtmlStyle_doModule\')">\n
                 <option selected="selected" value=""\n
                         i18n:translate="" i18n:domain="ui">ERP5 Modules</option>\n
                 <tal:block tal:repeat="module module_list">\n
@@ -222,7 +208,7 @@ IDEAS:\n
                           tal:content="python: module[0]" />\n
                 </tal:block>\n
               </select>\n
-              <button type="submit" name="Base_doModule:method" title="Select Module"\n
+              <button type="submit" name="ERP5XhtmlStyle_doModule:method" title="Select Module"\n
                       i18n:attributes="title" i18n:domain="ui">\n
                 <span class="image"></span>\n
                 <span class="description"\n
@@ -232,8 +218,8 @@ IDEAS:\n
           </span>\n
           <span class="second">\n
             <span id="language">\n
-              <select name="language_select"\n
-                      tal:attributes="onChange string:submitAction(this.form,\'${url}/Base_doLanguage\')">\n
+              <select name="select_language"\n
+                      tal:attributes="onChange string:submitAction(this.form,\'${url}/ERP5XhtmlStyle_doLanguage\')">\n
                 <option value=""\n
                         i18n:translate="" i18n:domain="ui">My language</option>\n
                 <tal:block tal:repeat="language python: here.Localizer.get_languages_map()">\n
@@ -242,7 +228,7 @@ IDEAS:\n
                           tal:content="python: here.Localizer.erp5_ui.gettext(language[\'title\'], lang=language[\'id\'])"></option>\n
                 </tal:block>\n
               </select>\n
-              <button type="submit" name="Base_doLanguage:method" title="Select Language"\n
+              <button type="submit" name="ERP5XhtmlStyle_doLanguage:method" title="Select Language"\n
                       i18n:attributes="title" i18n:domain="ui">\n
                 <span class="image"></span>\n
                 <span class="description"\n
@@ -271,12 +257,12 @@ IDEAS:\n
           <tal:block tal:repeat="item here/breadcrumbs">\n
             <tal:block tal:condition="python: repeat[\'item\'].index < 2">\n
               <a tal:attributes="href item/url"\n
-                 tal:content="item/title"\n
-                 i18n:translate="" i18n:domain="ui"></a>\n
+                tal:content="item/title"\n
+                i18n:translate="" i18n:domain="ui"></a>\n
             </tal:block>\n
             <tal:block tal:condition="python: repeat[\'item\'].index >= 2">\n
               <a tal:attributes="href item/url"\n
-                 tal:content="item/title"></a>\n
+                tal:content="item/title"></a>\n
             </tal:block>\n
             /\n
           </tal:block>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/view_main.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/view_main.xml
index 982eb3805580c122edbc5ccce15214be0d78c6ae..7458297274019620f79b9dc7e1160bf6af66b8f4 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/view_main.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/view_main.xml
@@ -73,34 +73,43 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </tal:block>\n
 <tal:block metal:define-macro="master">\n
-  <tal:block metal:use-macro="here/main_template/macros/master">\n
-    <tal:block metal:fill-slot="context_bar">\n
-      <tal:block metal:use-macro="here/context_box_render/macros/master" />\n
-    </tal:block>\n
-    <tal:block metal:fill-slot="main">\n
-      <div class="document"\n
-            tal:define="actions actions/object_view | python: []">\n
-        <div class="actions">\n
-          <tal:block tal:condition="editable_mode | python: 1">\n
-            <button tal:condition="python: here.portal_membership.checkPermission(\'Modify portal content\', here)"\n
-                    type="submit" name="Base_edit:method" class="save" title="Save"\n
-                    i18n:attributes="title" i18n:domain="ui">\n
-              <span class="image"></span>\n
-              <span class="description"\n
-                    i18n:translate="" i18n:domain="ui">Save</span>\n
-            </button>\n
-          </tal:block>\n
-          <ul tal:condition="python: len(actions)">\n
-            <tal:block tal:repeat="action actions">\n
-              <li tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
-                <a tal:attributes="href python: here.ERP5Site_renderLink(action[\'url\'], http_parameters)"\n
-                    tal:content="action/name"></a>\n
-              </li>\n
+  <tal:block tal:define="object_uid here/getUid | nothing;\n
+                         object_path here/getPath | nothing;\n
+                         form_id form/id | nothing;\n
+                         form_action python: here.portal_membership.checkPermission(\'Modify portal content\', here) and \'Base_edit:method\' or nothing;\n
+\n
+                         local_parameter_list local_parameter_list | python: {};\n
+                         dummy python: local_parameter_list.update({\'object_uid\': object_uid, \'object_path\': object_path, \'form_id\': form_id});\n
+                         ">\n
+    <tal:block metal:use-macro="here/main_template/macros/master">\n
+      <tal:block metal:fill-slot="context_bar">\n
+        <tal:block metal:use-macro="here/context_box_render/macros/master" />\n
+      </tal:block>\n
+      <tal:block metal:fill-slot="main">\n
+        <div class="document"\n
+              tal:define="actions actions/object_view | python: []">\n
+          <div class="actions">\n
+            <tal:block tal:condition="editable_mode | python: 1">\n
+              <button tal:condition="python: here.portal_membership.checkPermission(\'Modify portal content\', here)"\n
+                      type="submit" name="Base_edit:method" class="save" title="Save"\n
+                      i18n:attributes="title" i18n:domain="ui">\n
+                <span class="image"></span>\n
+                <span class="description"\n
+                      i18n:translate="" i18n:domain="ui">Save</span>\n
+              </button>\n
             </tal:block>\n
-          </ul>\n
+            <ul tal:condition="python: len(actions)">\n
+              <tal:block tal:repeat="action actions">\n
+                <li tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
+                  <a tal:attributes="href python: here.ERP5XhtmlStyle_renderLink(action[\'url\'], http_parameters)"\n
+                      tal:content="action/name"></a>\n
+                </li>\n
+              </tal:block>\n
+            </ul>\n
+          </div>\n
+          <div class="content"><tal:block metal:define-slot="main" /></div>\n
         </div>\n
-        <div class="content"><tal:block metal:define-slot="main" /></div>\n
-      </div>\n
+      </tal:block>\n
     </tal:block>\n
   </tal:block>\n
 </tal:block>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/bt/change_log b/product/ERP5/bootstrap/erp5_xhtml_style/bt/change_log
index 9aa8146c4c5de5645f7b31898c454e9b1811bb45..c00579c4387b78d4705ec0595faefd67d175063f 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/bt/change_log
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/bt/change_log
@@ -1,3 +1,13 @@
+2006-07-24 vincent
+* Re-implement parameters propagation. Allows to remove most of the previously hardcoded value names from the style.
+* Keep parameters when going through a workflow transition (ex : "follow bug" in bug module)
+* Fixes bugs about form_id & dialog_id not generated the way they are supposed to.
+* Move "list mode" button between "previous" and "next" buttons.
+* Use "contextual help" preference to display or not the help button on top right - it's the only purpose of this preference.
+* Follow the field naming convention for menus.
+* Rename all scripts designed for xhtml style to "ERP5XhtmlStyle_" to make it clear. Some are rewrite of "Base_" scripts.
+* !BUG!: listbox search fields require quite a lot of work to be cleanly filtered out. This will be hopefully corrected in next version.
+
 2006-07-17 jerome
 * fix object_jump actions that were not displayed.
 
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/bt/description b/product/ERP5/bootstrap/erp5_xhtml_style/bt/description
index d0b8beb756d0f825a25cf4e91c4f6d821f17f056..b94ca205cc9d2e691f3f11576902a9f12e67410d 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/bt/description
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/bt/description
@@ -1 +1,2 @@
-This style is a rewrite of erp5_html_style more CSS and semantic html oriented.
\ No newline at end of file
+This style is a rewrite of erp5_html_style more CSS and semantic html oriented.
+Handles page parameters dynamically.
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision b/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision
index 410b14d2ce6f958c13adcb30807e8673074c49d9..dc7b54ad014355b948b93c4c6c5891da053d5fdd 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision
@@ -1 +1 @@
-25
\ No newline at end of file
+33
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/bt/version b/product/ERP5/bootstrap/erp5_xhtml_style/bt/version
index 2f4536184bcac31936bd15a5f9cf931dd526c022..b123147e2a162f34cf377f8b63d99b0e6f8887c2 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/bt/version
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/bt/version
@@ -1 +1 @@
-0.2
\ No newline at end of file
+1.1
\ No newline at end of file