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 8ad01fd8f07a684e1645b45c73555ce10bcf2e0e..72c0107c86d2740afa170ffbeb00c8f916ca4b99 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
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,83 +51,30 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
-\n
-XXX: uses hardcoded indices values to access fields\n
--->\n
-</tal:block>\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
-      <div class="dialog_box">\n
-        <tal:block tal:condition="preferred_html_style_developper_mode">\n
-          <tal:block metal:use-macro="developper_shortcut_render/macros/form"/>\n
-        </tal:block>\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
-                          listbox python: base_form.Form_getListbox();\n
-                          default_columns python: listbox.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: listbox.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
+  <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
+        <div class="dialog_box">\n
+          <tal:block tal:condition="preferred_html_style_developper_mode">\n
+            <tal:block metal:use-macro="developper_shortcut_render/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
+                 listbox python: base_form.Form_getListbox();\n
+                 default_columns python: listbox.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: listbox.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
@@ -138,15 +82,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
@@ -154,19 +95,54 @@ 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
-                              i18n:translate="" i18n:domain="ui" />\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 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>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
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 378b231e0d5b44bf449a4c67ab0fff0b6b96ef6b..8593858861f3fb99b44e42d994c87a3c85b0e957 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
@@ -51,307 +51,288 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-<tal:block metal:define-macro="master">\n
-  <span id="jump" metal:define-macro="jump">\n
-    <select name="select_jump"\n
-            tal:attributes="onChange string:submitAction(this.form,\'Base_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
-        <option tal:attributes="value jump/url"\n
-                tal:content="jump/name" i18n:translate="" i18n:domain="ui"/>\n
-      </tal:block>\n
-      <tal:block tal:condition="preferred_html_style_developper_mode">\n
-        <tal:block tal:condition="python: here.getPortalTypeName() in here.portal_types.objectIds() and here.portal_types.getTypeInfo(here).Base_getSourceVisibility()">\n
-          <option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Developper Mode --</option>\n
-          <option tal:attributes="value python: \'%s/manage_workspace\' % (here.portal_types.getTypeInfo(here).absolute_url(),)"\n
-                  i18n:translate="" i18n:domain="ui">\n
-            Edit Portal Type \'<tal:block tal:content="python: here.getPortalTypeName()"\n
-                  i18n:name="portal_type" i18n:translate="" i18n:domain="ui"/>\'\n
-          </option>\n
+  <tal:block metal:define-macro="master">\n
+    <span id="jump" metal:define-macro="jump">\n
+      <select name="select_jump"\n
+              tal:attributes="onChange string:submitAction(this.form,\'Base_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
+          <option tal:attributes="value jump/url"\n
+                  tal:content="jump/name" i18n:translate="" i18n:domain="ui" />\n
         </tal:block>\n
-        <tal:block tal:condition="here/portal_workflow/Base_getSourceVisibility">\n
-          <option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Workflows --</option>\n
-          <tal:block tal:repeat="workflow python: here.portal_workflow.getWorkflowsFor(here)">\n
-            <option tal:attributes="value python: \'%s/manage_properties\' % (workflow.absolute_url(), )" tal:content="workflow/title"/>\n
+        <tal:block tal:condition="preferred_html_style_developper_mode">\n
+          <tal:block tal:condition="python: here.getPortalTypeName() in here.portal_types.objectIds() and here.portal_types.getTypeInfo(here).Base_getSourceVisibility()">\n
+            <option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Developper Mode --</option>\n
+            <option tal:attributes="value python: \'%s/manage_workspace\' % (here.portal_types.getTypeInfo(here).absolute_url(),)"\n
+                    i18n:translate="" i18n:domain="ui">\n
+              Edit Portal Type \'<tal:block tal:content="python: here.getPortalTypeName()"\n
+                                           i18n:name="portal_type" i18n:translate="" i18n:domain="ui" />\'\n
+            </option>\n
+          </tal:block>\n
+          <tal:block tal:condition="here/portal_workflow/Base_getSourceVisibility">\n
+            <option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Workflows --</option>\n
+            <tal:block tal:repeat="workflow python: here.portal_workflow.getWorkflowsFor(here)">\n
+              <option tal:attributes="value python: \'%s/manage_properties\' % (workflow.absolute_url(), )" tal:content="workflow/title" />\n
+            </tal:block>\n
           </tal:block>\n
         </tal:block>\n
-      </tal:block>\n
-    </select>\n
-    <button type="submit" name="Base_doJump:method" title="Jump"\n
-            i18n:attributes="title" i18n:domain="ui">\n
-      <span class="image"></span>\n
-      <span class="description"\n
-            i18n:translate="" i18n:domain="ui">Jump</span>\n
-    </button>\n
-  </span>\n
+      </select>\n
+      <button type="submit" name="Base_doJump:method" title="Jump"\n
+              i18n:attributes="title" i18n:domain="ui">\n
+        <span class="image"></span>\n
+        <span class="description"\n
+              i18n:translate="" i18n:domain="ui">Jump</span>\n
+      </button>\n
+    </span>\n
 \n
-  <span class="separator"></span>\n
+    <span class="separator"></span>\n
 \n
-  <span id="action" metal:define-macro="action">\n
-    <select name="select_action"\n
-            onChange="submitAction(this.form,\'Base_doAction\')">\n
-      <option selected="selected" value=""\n
-              i18n:translate="" i18n:domain="ui">Action...</option>\n
-      <tal:block tal:define="allowed_content_type_list here/getVisibleAllowedContentTypeList | python:[]">\n
-        <tal:block tal:repeat="content_id allowed_content_type_list">\n
-          <option tal:attributes="value python: \'add %s\' % (content_id, )"\n
-                  i18n:translate="" i18n:domain="ui">\n
-            Add <tal:block tal:content="content_id"\n
-                  i18n:name="portal_type" i18n:translate="" i18n:domain="ui"/>\n
-          </option>\n
+    <span id="action" metal:define-macro="action">\n
+      <select name="select_action"\n
+              onChange="submitAction(this.form,\'Base_doAction\')">\n
+        <option selected="selected" value=""\n
+                i18n:translate="" i18n:domain="ui">Action...</option>\n
+        <tal:block tal:define="allowed_content_type_list here/getVisibleAllowedContentTypeList | python:[]">\n
+          <tal:block tal:repeat="content_id allowed_content_type_list">\n
+            <option tal:attributes="value python: \'add %s\' % (content_id, )"\n
+                    i18n:translate="" i18n:domain="ui">\n
+              Add <tal:block tal:content="content_id"\n
+                             i18n:name="portal_type" i18n:translate="" i18n:domain="ui" />\n
+            </option>\n
+          </tal:block>\n
         </tal:block>\n
-      </tal:block>\n
-       <tal:block tal:repeat="action actions/object_add | nothing">\n
-         <option tal:attributes="value string:object ${action/url}"\n
-                 i18n:translate="" i18n:domain="ui">\n
-             Add <tal:block tal:content="action/name" i18n:name="portal_type" i18n:translate=""/>\n
-         </option>\n
-      </tal:block>\n
-      <tal:block tal:define="document_template_list here/getDocumentTemplateList | nothing"\n
-                 tal:condition="document_template_list">\n
-        <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Templates</tal:block> --</option>\n
-        <tal:block tal:repeat="document_template document_template_list">\n
-          <option tal:attributes="value python:\'template %s\' % (document_template.getRelativeUrl(), )"\n
+        <tal:block tal:repeat="action actions/object_add | nothing">\n
+          <option tal:attributes="value string:object ${action/url}"\n
                   i18n:translate="" i18n:domain="ui">\n
-            Add <tal:block tal:content="document_template/getTitle"\n
-                           i18n:name="document_template"/>\n
+            Add <tal:block tal:content="action/name" i18n:name="portal_type" i18n:translate="" />\n
           </option>\n
         </tal:block>\n
-      </tal:block>\n
-      <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Workflows</tal:block> --</option>\n
-      <tal:block tal:repeat="action actions/workflow">\n
-        <option tal:content="action/name"\n
-                tal:attributes="value python: \'workflow %s\' % (action[\'url\'], )"\n
-                i18n:translate="" i18n:domain="ui"/>\n
-      </tal:block>\n
-      <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Object</tal:block> --</option>\n
-      <tal:block tal:repeat="action actions/object_action | nothing">\n
-        <option tal:content="action/name"\n
-                tal:attributes="value python: \'object %s\' % (action[\'url\'], )"\n
-                i18n:translate="" i18n:domain="ui"/>\n
-      </tal:block>\n
-      <tal:block tal:define="object_view_list actions/object_view|nothing;\n
-                             module_view_list python:[i for i in object_view_list if i[\'id\']==\'module_view\']"\n
-                 tal:condition="module_view_list">\n
-        <tal:block tal:repeat="action module_view_list">\n
-        <option tal:content="action/name"\n
-                tal:attributes="value python: \'object %s\' % (action[\'url\'],)"\n
-                i18n:translate="" i18n:domain="ui"/>\n
+        <tal:block tal:define="document_template_list here/getDocumentTemplateList | nothing"\n
+                   tal:condition="document_template_list">\n
+          <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Templates</tal:block> --</option>\n
+          <tal:block tal:repeat="document_template document_template_list">\n
+            <option tal:attributes="value python:\'template %s\' % (document_template.getRelativeUrl(), )"\n
+                    i18n:translate="" i18n:domain="ui">\n
+              Add <tal:block tal:content="document_template/getTitle"\n
+                             i18n:name="document_template" />\n
+            </option>\n
+          </tal:block>\n
+        </tal:block>\n
+        <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Workflows</tal:block> --</option>\n
+        <tal:block tal:repeat="action actions/workflow">\n
+          <option tal:content="action/name"\n
+                  tal:attributes="value python: \'workflow %s\' % (action[\'url\'], )"\n
+                  i18n:translate="" i18n:domain="ui" />\n
         </tal:block>\n
-      </tal:block>\n
-      <tal:block tal:replace=\'nothing\'>\n
-        <!-- XXX folder actions is inherited from CMF, but not used in ERP5 (for now) -->\n
-        <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">folder</tal:block> --</option>\n
-        <tal:block tal:repeat="action actions/folder">\n
+        <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Object</tal:block> --</option>\n
+        <tal:block tal:repeat="action actions/object_action | nothing">\n
           <option tal:content="action/name"\n
-                  tal:attributes="value python: \'folder %s\' % (action[\'url\'], )"\n
-                  i18n:translate="" i18n:domain="ui"/>\n
+                  tal:attributes="value python: \'object %s\' % (action[\'url\'], )"\n
+                  i18n:translate="" i18n:domain="ui" />\n
+        </tal:block>\n
+        <tal:block tal:define="object_view_list actions/object_view|nothing;\n
+                   module_view_list python:[i for i in object_view_list if i[\'id\']==\'module_view\']"\n
+                   tal:condition="module_view_list">\n
+          <tal:block tal:repeat="action module_view_list">\n
+            <option tal:content="action/name"\n
+                    tal:attributes="value python: \'object %s\' % (action[\'url\'],)"\n
+                    i18n:translate="" i18n:domain="ui" />\n
+          </tal:block>\n
+        </tal:block>\n
+        <tal:block tal:replace=\'nothing\'>\n
+          <!-- XXX folder actions is inherited from CMF, but not used in ERP5 (for now) -->\n
+          <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">folder</tal:block> --</option>\n
+          <tal:block tal:repeat="action actions/folder">\n
+            <option tal:content="action/name"\n
+                    tal:attributes="value python: \'folder %s\' % (action[\'url\'], )"\n
+                    i18n:translate="" i18n:domain="ui" />\n
+          </tal:block>\n
         </tal:block>\n
-      </tal:block>\n
-    </select>\n
-    <button type="submit" name="Base_doAction:method" title="Action"\n
-            i18n:attributes="title" i18n:domain="ui">\n
-      <span class="image"></span>\n
-      <span class="description">Action</span>\n
-    </button>\n
-  </span>\n
+      </select>\n
+      <button type="submit" name="Base_doAction:method" title="Action"\n
+              i18n:attributes="title" i18n:domain="ui">\n
+        <span class="image"></span>\n
+        <span class="description">Action</span>\n
+      </button>\n
+    </span>\n
 \n
 \n
-  <span class="tool_buttons" metal:define-macro="tool_buttons">\n
+    <span class="tool_buttons" metal:define-macro="tool_buttons">\n
 \n
-    <!-- XXX: exchange_actions seems to be bad condition -->\n
-    <span class="first"\n
-          tal:define="search_actions actions/object_search | nothing;\n
-                      exchange_actions actions/object_exchange | nothing;\n
-                      report_actions actions/object_report | nothing;\n
-                      button_actions actions/object_button | nothing;\n
-                      sort_actions actions/object_sort | nothing;\n
-                      ui_actions actions/object_ui | nothing;\n
-                      print_actions actions/object_print | nothing;\n
-                      list_mode list_mode | nothing">\n
-      <span class="separator"></span>\n
-      <tal:block tal:condition="list_mode | nothing">\n
-        <button class="cut" type="submit" name="Folder_cut:method" title="Cut"\n
+      <!-- XXX: exchange_actions seems to be bad condition -->\n
+      <span class="first"\n
+            tal:define="search_actions actions/object_search | nothing;\n
+            exchange_actions actions/object_exchange | nothing;\n
+            report_actions actions/object_report | nothing;\n
+            button_actions actions/object_button | nothing;\n
+            sort_actions actions/object_sort | nothing;\n
+            ui_actions actions/object_ui | nothing;\n
+            print_actions actions/object_print | nothing;\n
+            list_mode list_mode | nothing">\n
+        <span class="separator"></span>\n
+        <tal:block tal:condition="list_mode | nothing">\n
+          <button class="cut" type="submit" name="Folder_cut:method" title="Cut"\n
+                  i18n:attributes="title" i18n:domain="ui">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Cut</span>\n
+          </button>\n
+          <button class="copy" type="submit" name="Folder_copy:method" title="Copy"\n
+                  i18n:attributes="title" i18n:domain="ui">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Copy</span>\n
+          </button>\n
+          <button class="paste" type="submit" name="Folder_paste:method" title="Paste"\n
+                  i18n:attributes="title" i18n:domain="ui">\n
+            <span class="image"></span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Paste</span>\n
+          </button>\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
-          <span class="description" i18n:translate="" i18n:domain="ui">Cut</span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">Print</span>\n
         </button>\n
-        <button class="copy" type="submit" name="Folder_copy:method" title="Copy"\n
+        <button class="new" type="submit" title="New"\n
+                tal:attributes="name python: list_mode and \'Folder_create:method\' or \'Base_createNewDocument:method\'"\n
                 i18n:attributes="title" i18n:domain="ui">\n
           <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Copy</span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">New</span>\n
         </button>\n
-        <button class="paste" type="submit" name="Folder_paste:method" title="Paste"\n
+        <button tal:condition="list_mode" class="delete" type="submit" name="Folder_deleteObjectList:method" title="Delete"\n
                 i18n:attributes="title" i18n:domain="ui">\n
           <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Paste</span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">Delete</span>\n
         </button>\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
-        <span class="description" i18n:translate="" i18n:domain="ui">Print</span>\n
-      </button>\n
-      <button class="new" type="submit" title="New"\n
-              tal:attributes="name python: list_mode and \'Folder_create:method\' or \'Base_createNewDocument:method\'"\n
-              i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description" i18n:translate="" i18n:domain="ui">New</span>\n
-      </button>\n
-      <button tal:condition="list_mode" class="delete" type="submit" name="Folder_deleteObjectList:method" title="Delete"\n
-              i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description" i18n:translate="" i18n:domain="ui">Delete</span>\n
-      </button>\n
-      <tal:block tal:condition="not: list_mode">\n
-        <tal:block tal:condition="request/selection_index | nothing">\n
+        <tal:block tal:condition="not: list_mode">\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: \'portal_selections/viewFirst?%s\' % (http_parameters, )"\n
+               i18n:attributes="title" i18n:domain="ui">\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: \'portal_selections/viewPrevious?%s\' % (http_parameters, )"\n
+               i18n:attributes="title" i18n:domain="ui">\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
+               i18n:attributes="title" i18n:domain="ui">\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: \'portal_selections/viewNext?%s\' % (http_parameters, )"\n
+               i18n:attributes="title" i18n:domain="ui">\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: \'portal_selections/viewLast?%s\' % (http_parameters, )"\n
+               i18n:attributes="title" i18n:domain="ui">\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">\n
           <span class="separator"></span>\n
-          <a class="jump_first" title="First"\n
-            tal:attributes="href python: \'portal_selections/viewFirst?%s\' % (http_parameters, )"\n
-            i18n:attributes="title" i18n:domain="ui">\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: \'portal_selections/viewPrevious?%s\' % (http_parameters, )"\n
-            i18n:attributes="title" i18n:domain="ui">\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
+          <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
              i18n:attributes="title" i18n:domain="ui">\n
             <span class="image"></span>\n
-            <span class="description" i18n:translate="" i18n:domain="ui">List Mode</span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Find</span>\n
           </a>\n
-          <a class="jump_next" title="Next"\n
-            tal:attributes="href python: \'portal_selections/viewNext?%s\' % (http_parameters, )"\n
-            i18n:attributes="title" i18n:domain="ui">\n
+          <button class="show_all" type="submit" name="Folder_show:method" title="Show All"\n
+                  i18n:attributes="title" i18n:domain="ui">\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: \'portal_selections/viewLast?%s\' % (http_parameters, )"\n
-            i18n:attributes="title" i18n:domain="ui">\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Show All</span>\n
+          </button>\n
+          <button type="submit" name="Folder_filter:method" title="Filter"\n
+                  tal:attributes="class python: here.portal_selections.getSelectionInvertModeFor(request[\'selection_name\']) and \'filter_on\' or \'filter\';"\n
+                  i18n:attributes="title" i18n:domain="ui">\n
+            <span class="image"></span>\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
+             i18n:attributes="title" i18n:domain="ui">\n
             <span class="image"></span>\n
-            <span class="description" i18n:translate="" i18n:domain="ui">Last</span>\n
+            <span class="description" i18n:translate="" i18n:domain="ui">Sort</span>\n
           </a>\n
         </tal:block>\n
-      </tal:block>\n
-      <tal:block tal:condition="list_mode">\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
+        <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
            i18n:attributes="title" i18n:domain="ui">\n
           <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Find</span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">Import / Export</span>\n
         </a>\n
-        <button class="show_all" type="submit" name="Folder_show:method" title="Show All"\n
-                i18n:attributes="title" i18n:domain="ui">\n
-          <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Show All</span>\n
-        </button>\n
-        <button type="submit" name="Folder_filter:method" title="Filter"\n
-                tal:attributes="class python: here.portal_selections.getSelectionInvertModeFor(request[\'selection_name\']) and \'filter_on\' or \'filter\';"\n
-                i18n:attributes="title" i18n:domain="ui">\n
-          <span class="image"></span>\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
+        <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
            i18n:attributes="title" i18n:domain="ui">\n
           <span class="image"></span>\n
-          <span class="description" i18n:translate="" i18n:domain="ui">Sort</span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">Report</span>\n
         </a>\n
-      </tal:block>\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
-         i18n:attributes="title" i18n:domain="ui">\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
-         i18n:attributes="title" i18n:domain="ui">\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: \'%s%s%s\' % (button_action[\'url\'], \'?\' in button_action[\'url\'] and \'&amp;\' or \'?\', 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
-                                 alt python:button_action[\'name\']"/>\n
-          </a>\n
-        </tal:block>\n
-      </tal:block>\n
-      <tal:block tal:condition="list_mode">\n
-        <tal:block tal:condition="ui_actions">\n
+        <tal:block tal:condition="button_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
-            i18n:attributes="title" i18n:domain="ui">\n
-            <span class="image"></span>\n
-            <span class="description" i18n:translate="" i18n:domain="ui">Configure</span>\n
-          </a>\n
+          <tal:block tal:repeat="button_action button_actions">\n
+            <a tal:attributes="href python: \'%s%s%s\' % (button_action[\'url\'], \'?\' in button_action[\'url\'] and \'&amp;\' or \'?\', 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
+                   alt python:button_action[\'name\']" />\n
+            </a>\n
+          </tal:block>\n
         </tal:block>\n
-      </tal:block>\n
-    </span>\n
+        <tal:block tal:condition="list_mode">\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
+               i18n:attributes="title" i18n:domain="ui">\n
+              <span class="image"></span>\n
+              <span class="description" i18n:translate="" i18n:domain="ui">Configure</span>\n
+            </a>\n
+          </tal:block>\n
+        </tal:block>\n
+      </span>\n
 \n
-    <span class="second">\n
-      <a tal:condition="preferred_html_style_contextual_help"\n
-         class="jump_help" title="Help"\n
-         tal:attributes="href python: here.ERP5Site_getHelpUrl(current_action=current_action, current_form_id=current_form_id, workflow_action=request.get(\'workflow_action\'))"\n
-         i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description" i18n:translate="" i18n:domain="ui">Help</span>\n
-      </a>\n
-      <a tal:condition="preferred_html_style_developper_mode"\n
-         class="inspect_object" title="Inspect object" href="Base_viewInspectionReport"\n
-         i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description" i18n:translate="" i18n:domain="ui">Inspect object</span>\n
-      </a>\n
-      <a tal:condition="here/hasActivity | nothing" class="activity_pending"\n
-         title="Activity Pending"\n
-         tal:attributes="href python: here.portal_membership.checkPermission(\'View management screens\', here.portal_activities) and \'%s%s/manageActivities\' % (here.REQUEST[\'SERVER_URL\'],here.portal_activities.getUrl(), ) or \'#\'"\n
-         i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description" i18n:translate="" i18n:domain="ui">Activity Pending</span>\n
-      </a>\n
+      <span class="second">\n
+        <a tal:condition="preferred_html_style_contextual_help"\n
+           class="jump_help" title="Help"\n
+           tal:attributes="href python: here.ERP5Site_getHelpUrl(current_action=current_action, current_form_id=current_form_id, workflow_action=request.get(\'workflow_action\'))"\n
+           i18n:attributes="title" i18n:domain="ui">\n
+          <span class="image"></span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">Help</span>\n
+        </a>\n
+        <a tal:condition="preferred_html_style_developper_mode"\n
+           class="inspect_object" title="Inspect object" href="Base_viewInspectionReport"\n
+           i18n:attributes="title" i18n:domain="ui">\n
+          <span class="image"></span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">Inspect object</span>\n
+        </a>\n
+        <a tal:condition="here/hasActivity | nothing" class="activity_pending"\n
+           title="Activity Pending"\n
+           tal:attributes="href python: here.portal_membership.checkPermission(\'View management screens\', here.portal_activities) and \'%s%s/manageActivities\' % (here.REQUEST[\'SERVER_URL\'],here.portal_activities.getUrl(), ) or \'#\'"\n
+           i18n:attributes="title" i18n:domain="ui">\n
+          <span class="image"></span>\n
+          <span class="description" i18n:translate="" i18n:domain="ui">Activity Pending</span>\n
+        </a>\n
+      </span>\n
     </span>\n
-  </span>\n
-  <p class="clear"></p>\n
-</tal:block>
+    <p class="clear"></p>\n
+  </tal:block>\n
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/developper_shortcut_render.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/developper_shortcut_render.xml
index 931e9e9bcac0eb56acabab3025eb5592ce780e0b..d3a2d59d0615f095509389aab982434fc65e78c1 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/developper_shortcut_render.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/developper_shortcut_render.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,84 +51,57 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-\n
-\n
-<tal:block metal:define-macro="edit_link">\n
-  <a disabled="disabled" tal:condition="python: hasattr(object, \'meta_type\')"\n
-     tal:attributes="href python: \'%s/manage_main\' % (\'/\'.join(object.getPhysicalPath()[len(object.getPortalObject().getPhysicalPath()):])) # XXX: quick hack to get path;\n
-                     title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
-                                                       alt info;"/></a>\n
-</tal:block>\n
-\n
-\n
-<tal:block metal:define-macro="translate_link">\n
-  <a disabled="disabled" tal:define="image image | python: \'translate.png\'"\n
-     tal:attributes="href python: \'%s/manage_messages?regex=^%s%%24&amp;lang=%s\' % (\'/\'.join(here.Localizer.erp5_ui.getPhysicalPath()[len(here.Localizer.erp5_ui.getPortalObject().getPhysicalPath()):]), message.replace(\'(\', \'\\(\').replace(\')\', \'\\)\'), selected_language);\n
-                     title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
-                                                       alt info;"/></a>\n
-</tal:block>\n
-\n
-\n
-<tal:block metal:define-macro="form">\n
-  <tal:block tal:define="image python: \'editform.png\';\n
-                         info python: \'Edit this form\';\n
-                         object nocall: form;">\n
-    <tal:block metal:use-macro="developper_shortcut_render/macros/edit_link"/>\n
+  <tal:block metal:define-macro="edit_link">\n
+    <a disabled="disabled" tal:condition="python: hasattr(object, \'meta_type\')"\n
+       tal:attributes="href python: \'%s/manage_main\' % (\'/\'.join(object.getPhysicalPath()[len(object.getPortalObject().getPhysicalPath()):])) # XXX: quick hack to get path;\n
+       title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
+                         alt info;" /></a>\n
   </tal:block>\n
-  <tal:block tal:define="image python: \'editformaction.png\';\n
-                         info python: \'Edit this form\\\'s action\';\n
-                         object python: getattr(here, form.action, None);">\n
-    <tal:block metal:use-macro="developper_shortcut_render/macros/edit_link"/>\n
+  <tal:block metal:define-macro="translate_link">\n
+    <a disabled="disabled" tal:define="image image | python: \'translate.png\'"\n
+       tal:attributes="href python: \'%s/manage_messages?regex=^%s%%24&amp;lang=%s\' % (\'/\'.join(here.Localizer.erp5_ui.getPhysicalPath()[len(here.Localizer.erp5_ui.getPortalObject().getPhysicalPath()):]), message.replace(\'(\', \'\\(\').replace(\')\', \'\\)\'), selected_language);\n
+       title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
+                         alt info;" /></a>\n
   </tal:block>\n
-</tal:block>\n
-\n
-\n
-<tal:block metal:define-macro="field_developper">\n
-  <tal:block tal:define="image python: \'editfield.png\';\n
-                         info python: \'Edit this field\';\n
-                         object nocall: field;">\n
-    <tal:block metal:use-macro="developper_shortcut_render/macros/edit_link"/>\n
+  <tal:block metal:define-macro="form">\n
+    <tal:block tal:define="image python: \'editform.png\';\n
+               info python: \'Edit this form\';\n
+               object nocall: form;">\n
+      <tal:block metal:use-macro="developper_shortcut_render/macros/edit_link" />\n
+    </tal:block>\n
+    <tal:block tal:define="image python: \'editformaction.png\';\n
+               info python: \'Edit this form\\\'s action\';\n
+               object python: getattr(here, form.action, None);">\n
+      <tal:block metal:use-macro="developper_shortcut_render/macros/edit_link" />\n
+    </tal:block>\n
   </tal:block>\n
-</tal:block>\n
-<tal:block metal:define-macro="field_translator">\n
-  <tal:block tal:define="info python: \'Translate this field title\';\n
-                         message python: field[\'title\'];\n
-                         image python: \'translate.png\'">\n
-    <tal:block metal:use-macro="developper_shortcut_render/macros/translate_link"/>\n
+  <tal:block metal:define-macro="field_developper">\n
+    <tal:block tal:define="image python: \'editfield.png\';\n
+               info python: \'Edit this field\';\n
+               object nocall: field;">\n
+      <tal:block metal:use-macro="developper_shortcut_render/macros/edit_link" />\n
+    </tal:block>\n
   </tal:block>\n
-  <tal:block tal:condition="field_description | nothing">\n
-    <tal:block tal:define="message field_description;\n
-                           info python: \'Translate this field description\';\n
-                           image python: \'translate_tooltip.png\'"\n
-               tal:condition="python: message not in (None, \'\')">\n
-      <tal:block metal:use-macro="developper_shortcut_render/macros/translate_link"/>\n
+  <tal:block metal:define-macro="field_translator">\n
+    <tal:block tal:define="info python: \'Translate this field title\';\n
+               message python: field[\'title\'];\n
+               image python: \'translate.png\'">\n
+      <tal:block metal:use-macro="developper_shortcut_render/macros/translate_link" />\n
+    </tal:block>\n
+    <tal:block tal:condition="field_description | nothing">\n
+      <tal:block tal:define="message field_description;\n
+                 info python: \'Translate this field description\';\n
+                 image python: \'translate_tooltip.png\'"\n
+                 tal:condition="python: message not in (None, \'\')">\n
+        <tal:block metal:use-macro="developper_shortcut_render/macros/translate_link" />\n
+      </tal:block>\n
     </tal:block>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
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 c4cb66eb2a169afb37ac03e6bf7a3d582c282d79..511b15d397f6f797cafe70b4bfcf475e5e18a5dd 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
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,58 +51,38 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block tal:define="form_action string:Base_callDialogMethod;\n
+               dialog_id form/id | template/id;\n
+               form_id request/form_id | string:view;\n
+               dialog_method form/action | dialog_id;\n
+               update_action form/update_action;\n
+               global dialog_category request/dialog_category | nothing;\n
 \n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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
-                         dialog_id form/id | template/id;\n
-                         form_id request/form_id | string:view;\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_method\': update_action, \'dialog_category\': dialog_category, \'cancel_url\': request.get(\'cancel_url\'), \'form_id\': form_id});\n
-                         title python: here.Base_translateString(here.Base_getFormViewDialogActionButtonTitle(form))">\n
-    <tal:block metal:use-macro="here/main_template/macros/master">\n
-      <tal:block metal:fill-slot="main">\n
-        <div class="list_dialog">\n
-          <tal:block metal:define-slot="main" />\n
-          <tal:block metal:define-slot="bottom" />\n
-        </div>\n
-        <input tal:condition="cancel_url|request/cancel_url|nothing"\n
-               i18n:attributes="value" i18n:domain="ui" value="Cancel Action"\n
-               id="dialog_cancel_button" name="Base_cancel:method" type="submit" />\n
-        <input i18n:attributes="value" i18n:domain="ui" value="Update"\n
-               tal:condition="python: form.update_action!=\'\'"\n
-               id="dialog_update_button"\n
-               name="Base_showUpdateDialog:method" type="submit" />\n
-        <input tal:attributes="value python: here.Base_getFormViewDialogActionButtonTitle(form);\n
-                               name string:${form_action}:method"\n
-               i18n:attributes="value" i18n:domain="ui" accesskey="V"\n
-               id="dialog_submit_button" type="submit" />\n
+               local_parameter_list local_parameter_list | python: {};\n
+               dummy python: local_parameter_list.update({\'dialog_id\': dialog_id, \'dialog_method\': dialog_method, \'update_method\': update_action, \'dialog_category\': dialog_category, \'cancel_url\': request.get(\'cancel_url\'), \'form_id\': form_id});\n
+               title python: here.Base_translateString(here.Base_getFormViewDialogActionButtonTitle(form))">\n
+      <tal:block metal:use-macro="here/main_template/macros/master">\n
+        <tal:block metal:fill-slot="main">\n
+          <div class="list_dialog">\n
+            <tal:block metal:define-slot="main" />\n
+            <tal:block metal:define-slot="bottom" />\n
+          </div>\n
+          <input tal:condition="cancel_url|request/cancel_url|nothing"\n
+                 i18n:attributes="value" i18n:domain="ui" value="Cancel Action"\n
+                 id="dialog_cancel_button" name="Base_cancel:method" type="submit" />\n
+          <input i18n:attributes="value" i18n:domain="ui" value="Update"\n
+                 tal:condition="python: form.update_action!=\'\'"\n
+                 id="dialog_update_button"\n
+                 name="Base_showUpdateDialog:method" type="submit" />\n
+          <input tal:attributes="value python: here.Base_getFormViewDialogActionButtonTitle(form);\n
+                 name string:${form_action}:method"\n
+                 i18n:attributes="value" i18n:domain="ui" accesskey="V"\n
+                 id="dialog_submit_button" type="submit" />\n
+        </tal:block>\n
       </tal:block>\n
     </tal:block>\n
   </tal:block>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/documentation_template.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/documentation_template.xml
index 5d21f9e53d46823347c0943d0dad336f3e354e0c..059c1577e281a85c12aac92dfc704c123afee94c 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/documentation_template.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/documentation_template.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -48,84 +45,66 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block tal:replace="nothing">\n
 <!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
-\n
 XXX: for now, curent action is passed as a parameter to the right form, which is gathered from the action.\n
 A good way might be to centralize all action in a single page template that would fill itself (metal:use-macro) according to the action id it was given.\n
 -->\n
-</tal:block>\n
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
-<tal:block metal:define-macro="render_listbox">\n
-  <tal:block tal:define="field_names field_names | python: ();\n
-                         toggleable_field_name toggleable_field_name | python: nothing;\n
-                         zope_structured_text_field_names zope_structured_text_field_names | python: ();\n
-                         structured_text_field_names structured_text_field_names | python: ();\n
-                         structured_text_field_names python: structured_text_field_names+zope_structured_text_field_names;">\n
-    <tal:block tal:repeat="field_name field_names">\n
-      <tal:block tal:condition="python: form.has_field(field_name)">\n
-        <tal:block tal:define="listbox python: form.get_field(field_name);\n
-                               listboxline_list python: listbox.get_value(\'default\', render_format=\'list\', REQUEST=request);">\n
-          <div class="frame">\n
-            <div tal:attributes="class listbox/css_class">\n
-              <div class="frame_title" tal:content="listbox/title"></div>\n
-              <div class="listbox_description" tal:content="python: listbox.get_value(\'description\')"></div>\n
-              <tal:block tal:condition="python: len(listboxline_list) > 1">\n
-                <tal:block tal:repeat="listboxline python: listboxline_list">\n
-                  <tal:block tal:define="lineid python: \'%s_%s\' % (listbox.id,repeat[\'listboxline\'].index)">\n
-                    <div class="listbox_titleline" tal:condition="python: listboxline.isTitleLine()">\n
-                      <tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
-                        <div tal:content="python: column_id[1]"\n
-                             tal:attributes="class python: column_id[0]"/>\n
-                      </tal:block>\n
-                    </div>\n
-                    <div class="listbox_dataline" tal:condition="python: listboxline.isDataLine()"\n
-                         tal:attributes="onclick python: toggleable_field_name and \'toggle(\\\'%s\\\')\' % (lineid) or nothing;\n
-                                         id python: \'toggle_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index);">\n
-                      <tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
-                        <tal:block tal:define="is_structured_text python: column_id[0] in structured_text_field_names;\n
-                                               is_toggleable python: column_id[0] == toggleable_field_name;\n
-                                               content python: (column_id[1] is None) and (\' \') or (column_id[1]);\n
-                                               content python: column_id[0] in zope_structured_text_field_names and modules[\'Products\'].PythonScripts.standard.structured_text(content) or content;">\n
-                          <div tal:attributes="class python: column_id[0]; id python: is_toggleable and lineid or None; name python: is_toggleable and \'toggleable\' or None"><tal:block tal:condition="is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="structure content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="structure content"/></tal:block><tal:block tal:condition="not: is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="content"/></tal:block></div>\n
+  </tal:block>\n
+  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
+  <tal:block metal:define-macro="render_listbox">\n
+    <tal:block tal:define="field_names field_names | python: ();\n
+               toggleable_field_name toggleable_field_name | python: nothing;\n
+               zope_structured_text_field_names zope_structured_text_field_names | python: ();\n
+               structured_text_field_names structured_text_field_names | python: ();\n
+               structured_text_field_names python: structured_text_field_names+zope_structured_text_field_names;">\n
+      <tal:block tal:repeat="field_name field_names">\n
+        <tal:block tal:condition="python: form.has_field(field_name)">\n
+          <tal:block tal:define="listbox python: form.get_field(field_name);\n
+                     listboxline_list python: listbox.get_value(\'default\', render_format=\'list\', REQUEST=request);">\n
+            <div class="frame">\n
+              <div tal:attributes="class listbox/css_class">\n
+                <div class="frame_title" tal:content="listbox/title"></div>\n
+                <div class="listbox_description" tal:content="python: listbox.get_value(\'description\')"></div>\n
+                <tal:block tal:condition="python: len(listboxline_list) &gt; 1">\n
+                  <tal:block tal:repeat="listboxline python: listboxline_list">\n
+                    <tal:block tal:define="lineid python: \'%s_%s\' % (listbox.id,repeat[\'listboxline\'].index)">\n
+                      <div class="listbox_titleline" tal:condition="python: listboxline.isTitleLine()">\n
+                        <tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
+                          <div tal:content="python: column_id[1]"\n
+                               tal:attributes="class python: column_id[0]" />\n
                         </tal:block>\n
-                      </tal:block>\n
-                    </div>\n
+                      </div>\n
+                      <div class="listbox_dataline" tal:condition="python: listboxline.isDataLine()"\n
+                           tal:attributes="onclick python: toggleable_field_name and \'toggle(\\\'%s\\\')\' % (lineid) or nothing;\n
+                           id python: \'toggle_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index);">\n
+                        <tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
+                          <tal:block tal:define="is_structured_text python: column_id[0] in structured_text_field_names;\n
+                                     is_toggleable python: column_id[0] == toggleable_field_name;\n
+                                     content python: (column_id[1] is None) and (\' \') or (column_id[1]);\n
+                                     content python: column_id[0] in zope_structured_text_field_names and modules[\'Products\'].PythonScripts.standard.structured_text(content) or content;">\n
+                            <div tal:attributes="class python: column_id[0]; id python: is_toggleable and lineid or None; name python: is_toggleable and \'toggleable\' or None"><tal:block tal:condition="is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="structure content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="structure content" /></tal:block><tal:block tal:condition="not: is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="content" /></tal:block></div>\n
+                          </tal:block>\n
+                        </tal:block>\n
+                      </div>\n
+                    </tal:block>\n
                   </tal:block>\n
                 </tal:block>\n
-              </tal:block>\n
+              </div>\n
             </div>\n
-          </div>\n
+          </tal:block>\n
         </tal:block>\n
       </tal:block>\n
     </tal:block>\n
   </tal:block>\n
-</tal:block>\n
-<html>\n
-  <tal:block metal:use-macro="here/global_definitions/macros/header_definitions" />\n
-  <head>\n
-    <title></title>\n
-    <style type="text/css">\n
+  <html>\n
+    <tal:block metal:use-macro="here/global_definitions/macros/header_definitions" />\n
+    <head>\n
+      <title></title>\n
+      <style type="text/css">\n
 a img {\n
   border: none;\n
 }\n
@@ -273,94 +252,96 @@ div.listbox_dataline:hover {\n
   border-color: #999;\n
 }\n
     </style>\n
-  </head>\n
-  <body onload="toggle_all()">\n
-    <script type="text/javascript">\n
-      function toggle_all() {\n
-        my_elements = document.getElementsByName("toggleable");\n
-        for(i=0; i<my_elements.length; i++) {\n
-          toggle(my_elements[i].id);\n
+    </head>\n
+    <body onload="toggle_all()">\n
+      <script type="text/javascript"><!--\n
+        function toggle_all() {\n
+          my_elements = document.getElementsByName("toggleable");\n
+          for(i=0; i<my_elements.length; i++) {\n
+            toggle(my_elements[i].id);\n
+          }\n
         }\n
-      }\n
-      function toggle(id) {\n
-        with(document.getElementById(id).style) {\n
-          if (display == "") {\n
-            display = "none";\n
-            with(document.getElementById("toggle_"+id).style) {\n
-              backgroundColor = "";\n
-              borderColor = "";\n
-            }\n
-          } else {\n
-            display = "";\n
-            with(document.getElementById("toggle_"+id).style) {\n
-              backgroundColor = "#EEE";\n
-              borderColor = "#999";\n
+        function toggle(id) {\n
+          with(document.getElementById(id).style) {\n
+            if (display == "") {\n
+              display = "none";\n
+              with(document.getElementById("toggle_"+id).style) {\n
+                backgroundColor = "";\n
+                borderColor = "";\n
+              }\n
+            } else {\n
+              display = "";\n
+              with(document.getElementById("toggle_"+id).style) {\n
+                backgroundColor = "#EEE";\n
+                borderColor = "#999";\n
+              }\n
             }\n
           }\n
         }\n
-      }\n
-    </script>\n
-    <span class="toggle" onclick="toggle_all()">Toggle all</span>\n
-    <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
-                           dummy python: request.set(\'here\',here)">\n
-      <div class="frame">\n
-        <div class="frame_title">General information</div>\n
-        <table>\n
-          <tal:block tal:repeat="field_name python: (\'my_title\', \'argument_list\', \'inheritance_list\', \'my_type\', \'my_source_path\', \'my_description\')">\n
-            <tal:block tal:condition="python: form.has_field(field_name)">\n
-              <tal:block tal:define="field python: form.get_field(field_name)">\n
-                <tal:block metal:use-macro="here/field_render/macros/field_render"/>\n
+     //--></script>\n
+      <span class="toggle" onclick="toggle_all()">Toggle all</span>\n
+      <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
+                             dummy python: request.set(\'here\',here)">\n
+        <div class="frame">\n
+          <div class="frame_title">General information</div>\n
+          <table>\n
+            <tal:block tal:repeat="field_name python: (\'my_title\', \'argument_list\', \'inheritance_list\', \'my_type\', \'my_source_path\', \'my_description\')">\n
+              <tal:block tal:condition="python: form.has_field(field_name)">\n
+                <tal:block tal:define="field python: form.get_field(field_name)">\n
+                  <tal:block metal:use-macro="here/field_render/macros/field_render" />\n
+                </tal:block>\n
               </tal:block>\n
             </tal:block>\n
+          </table>\n
+        </div>\n
+        <div class="frame">\n
+          <div class="frame_title">Quick links</div>\n
+          <tal:block tal:repeat="field_name python: (\'my_static_property_list\', \'my_dynamic_property_list\', \'my_dynamic_category_list\', \'my_static_method_list\', \'my_dynamic_method_list\', \'my_dynamic_accessor_list\')">\n
+            <tal:block tal:condition="python: form.has_field(field_name)">\n
+              <div class="quick_links_group" tal:define="field python: form.get_field(field_name)">\n
+                <div tal:content="field/title"></div>\n
+                <ul>\n
+                  <li tal:repeat="item python: field.get_value(\'list_method\')()">\n
+                    <a tal:attributes="href python: \'#a_%s_%s\' % (field_name,repeat[\'item\'].index+1)"\n
+                      tal:content="item/getTitle"></a>\n
+                  </li>\n
+                </ul>\n
+              </div>\n
+            </tal:block>\n
           </tal:block>\n
-        </table>\n
-      </div>\n
-      <div class="frame">\n
-        <div class="frame_title">Quick links</div>\n
-        <tal:block tal:repeat="field_name python: (\'my_static_property_list\', \'my_dynamic_property_list\', \'my_dynamic_category_list\', \'my_static_method_list\', \'my_dynamic_method_list\', \'my_dynamic_accessor_list\')">\n
-          <tal:block tal:condition="python: form.has_field(field_name)">\n
-            <div class="quick_links_group" tal:define="field python: form.get_field(field_name)">\n
-              <div tal:content="field/title"></div>\n
-              <ul>\n
-                <li tal:repeat="item python: field.get_value(\'list_method\')()">\n
-                  <a tal:attributes="href python: \'#a_%s_%s\' % (field_name,repeat[\'item\'].index+1)"\n
-                    tal:content="item/getTitle"></a>\n
-                </li>\n
-              </ul>\n
-            </div>\n
-          </tal:block>\n
+        </div>\n
+        <tal:block tal:define="field_names python: (\'my_static_property_list\',);\n
+                               structured_text_field_names python: (\'title\',);">\n
+          <tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
+        </tal:block>\n
+        <tal:block tal:define="field_names python: (\'my_dynamic_property_list\',);\n
+                               structured_text_field_names python: (\'title\',);">\n
+          <tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
+        </tal:block>\n
+        <tal:block tal:define="field_names python: (\'my_dynamic_category_list\',)">\n
+          <tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
+        </tal:block>\n
+        <tal:block tal:define="field_names python: (\'my_static_method_list\',);\n
+                               structured_text_field_names python: (\'title\',);\n
+                               zope_structured_text_field_names python: (\'description\',);\n
+                               toggleable_field_name python: \'source_code\';">\n
+          <tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
+        </tal:block>\n
+        <tal:block tal:define="field_names python: (\'my_dynamic_method_list\',);\n
+                               structured_text_field_names python: (\'title\',);\n
+                               zope_structured_text_field_names python: (\'description\',);">\n
+          <tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
+        </tal:block>\n
+        <tal:block tal:define="field_names python: (\'my_dynamic_accessor_list\',);\n
+                               structured_text_field_names python: (\'accessors\',);\n
+                               toggleable_field_name python: \'accessors\';">\n
+          <tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
         </tal:block>\n
-      </div>\n
-      <tal:block tal:define="field_names python: (\'my_static_property_list\',);\n
-                             structured_text_field_names python: (\'title\',);">\n
-        <tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
-      </tal:block>\n
-      <tal:block tal:define="field_names python: (\'my_dynamic_property_list\',);\n
-                             structured_text_field_names python: (\'title\',);">\n
-        <tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
-      </tal:block>\n
-      <tal:block tal:define="field_names python: (\'my_dynamic_category_list\',)">\n
-        <tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
-      </tal:block>\n
-      <tal:block tal:define="field_names python: (\'my_static_method_list\',);\n
-                             structured_text_field_names python: (\'title\',);\n
-                             zope_structured_text_field_names python: (\'description\',);\n
-                             toggleable_field_name python: \'source_code\';">\n
-        <tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
-      </tal:block>\n
-      <tal:block tal:define="field_names python: (\'my_dynamic_method_list\',);\n
-                             structured_text_field_names python: (\'title\',);\n
-                             zope_structured_text_field_names python: (\'description\',);">\n
-        <tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
-      </tal:block>\n
-      <tal:block tal:define="field_names python: (\'my_dynamic_accessor_list\',);\n
-                             structured_text_field_names python: (\'accessors\',);\n
-                             toggleable_field_name python: \'accessors\';">\n
-        <tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
       </tal:block>\n
-    </tal:block>\n
-  </body>\n
-</html>
+    </body>\n
+  </html>\n
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
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 03af6da8d0f727c905f8ba928185e51306601df2..fd594eebe15579e5b18c2c2d233f2c3caca8a503 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
@@ -51,64 +51,45 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
---></tal:block>\n
-\n
-<tal:block metal:define-macro="field_render">\n
-  <tal:block tal:condition="python: field.meta_type != \'HiddenStringField\'"\n
-             tal:define="field_id     field/id;\n
-                         value        python: request.get(field_id, None);\n
-                         field_errors python: request.get(\'field_errors\', {});\n
-                         field_has_error  python: field_errors.has_key(field_id);\n
-                         global form_id form_id | form/id | nothing;\n
-                         field_description field/Field_getDescription;\n
-                         is_web_mode is_web_mode | nothing">\n
-    <div tal:define="html_render  python: field.render_htmlgrid(value, request)"\n
-         tal:attributes="title field_description;\n
-                         class python: \' \'.join([x for x in [\'field\', field.is_required() and \'required\' or None, field_has_error and \'error\' or None, field.get_value(\'css_class\') or None] if x is not None])"\n
-         i18n:attributes="title" i18n:domain="ui">\n
-      <tal:block tal:repeat="html_tuple html_render">\n
-        <label>\n
-          <tal:block tal:content="structure python: html_tuple[0]"\n
-                    i18n:translate="" i18n:domain="ui"/>\n
-          <tal:block tal:condition="preferred_html_style_developper_mode">\n
-            <tal:block metal:use-macro="developper_shortcut_render/macros/field_developper"/>\n
-          </tal:block>\n
-          <tal:block tal:condition="preferred_html_style_translator_mode">\n
-            <tal:block metal:use-macro="developper_shortcut_render/macros/field_translator"/>\n
-          </tal:block>\n
-        </label>\n
-        <div class="input" tal:content="structure python: html_tuple[1]"/>\n
-        <span tal:condition="python: field_has_error"\n
-              class="error"\n
-              tal:content="python: field_errors[field_id].error_text"\n
-              i18n:translate="" i18n:domain="ui"/>\n
-        <p class="clear" tal:condition="not:is_web_mode"></p>\n
-      </tal:block>\n
-    </div>\n
+  <tal:block metal:define-macro="field_render">\n
+    <tal:block tal:condition="python: field.meta_type != \'HiddenStringField\'"\n
+               tal:define="field_id     field/id;\n
+               value        python: request.get(field_id, None);\n
+               field_errors python: request.get(\'field_errors\', {});\n
+               field_has_error  python: field_errors.has_key(field_id);\n
+               global form_id form_id | form/id | nothing;\n
+               field_description field/Field_getDescription;\n
+               is_web_mode is_web_mode | nothing">\n
+      <div tal:define="html_render  python: field.render_htmlgrid(value, request)"\n
+           tal:attributes="title field_description;\n
+           class python: \' \'.join([x for x in [\'field\', field.is_required() and \'required\' or None, field_has_error and \'error\' or None, field.get_value(\'css_class\') or None] if x is not None])"\n
+           i18n:attributes="title" i18n:domain="ui">\n
+        <tal:block tal:repeat="html_tuple html_render">\n
+          <label>\n
+            <tal:block tal:content="structure python: html_tuple[0]"\n
+                       i18n:translate="" i18n:domain="ui" />\n
+            <tal:block tal:condition="preferred_html_style_developper_mode">\n
+              <tal:block metal:use-macro="developper_shortcut_render/macros/field_developper" />\n
+            </tal:block>\n
+            <tal:block tal:condition="preferred_html_style_translator_mode">\n
+              <tal:block metal:use-macro="developper_shortcut_render/macros/field_translator" />\n
+            </tal:block>\n
+          </label>\n
+          <div class="input" tal:content="structure python: html_tuple[1]" />\n
+          <span tal:condition="python: field_has_error"\n
+                class="error"\n
+                tal:content="python: field_errors[field_id].error_text"\n
+                i18n:translate="" i18n:domain="ui" />\n
+          <p class="clear" tal:condition="not:is_web_mode"></p>\n
+        </tal:block>\n
+      </div>\n
+    </tal:block>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
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 ff061a437ddac7d40b7e7e6c2cd8363eca5eb665..9be0ed5c4a71b9c9f48fe11b16d9005d97d7b9ef 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
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,110 +51,90 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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:define="editable_mode python: True;\n
-                       dialog_mode python: True;\n
-                       dummy python: request.set(\'editable_mode\', editable_mode)">\n
-  <tal:block metal:use-macro="here/dialog_main/macros/master">\n
-    <tal:block metal:fill-slot="main">\n
-      <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
-                             dummy python: request.set(\'here\', here);\n
-                             left_group python: form.get_fields_in_group(\'left\');\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
-                             field_render here/field_render/macros/field_render;">\n
-        <tal:block tal:condition="preferred_html_style_developper_mode">\n
-          <tal:block metal:use-macro="developper_shortcut_render/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
+  <tal:block metal:define-macro="master"\n
+             tal:define="editable_mode python: True;\n
+             dialog_mode python: True;\n
+             dummy python: request.set(\'editable_mode\', editable_mode)">\n
+    <tal:block metal:use-macro="here/dialog_main/macros/master">\n
+      <tal:block metal:fill-slot="main">\n
+        <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
+                   dummy python: request.set(\'here\', here);\n
+                   left_group python: form.get_fields_in_group(\'left\');\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
+                   field_render here/field_render/macros/field_render;">\n
+          <tal:block tal:condition="preferred_html_style_developper_mode">\n
+            <tal:block metal:use-macro="developper_shortcut_render/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
               class="dialog_selector">\n
-            <label for="dialog_selector"\n
-                  tal:content="python: { \'object_exchange\': \'Select Exchange\'\n
-                                        , \'object_print\'   : \'Select Print\'\n
-                                        , \'object_search\'  : \'Select Search\'\n
-                                        , \'object_report\'  : \'Select Report\'\n
-                                        }.get(dialog_category, \'Select\')"\n
-                  i18n:translate="" i18n:domain="ui"></label>\n
-            <select name="select_dialog" id="dialog_selector"\n
-                    tal:attributes="onChange string:submitAction(this.form,\'Base_doDialog\')">\n
-              <tal:block tal:repeat="action dialog_actions">\n
-                <option tal:attributes="value action/url;\n
-                                        selected python: action is current_action and \'selected\' or None"\n
-                        tal:content="action/name"\n
-                        i18n:translate="" i18n:domain="ui"></option>\n
+              <label for="dialog_selector"\n
+                     tal:content="python: { \'object_exchange\': \'Select Exchange\'\n
+                     , \'object_print\'   : \'Select Print\'\n
+                     , \'object_search\'  : \'Select Search\'\n
+                     , \'object_report\'  : \'Select Report\'\n
+                     }.get(dialog_category, \'Select\')"\n
+                     i18n:translate="" i18n:domain="ui"></label>\n
+              <select name="select_dialog" id="dialog_selector"\n
+                      tal:attributes="onChange string:submitAction(this.form,\'Base_doDialog\')">\n
+                <tal:block tal:repeat="action dialog_actions">\n
+                  <option tal:attributes="value action/url;\n
+                          selected python: action is current_action and \'selected\' or None"\n
+                          tal:content="action/name"\n
+                          i18n:translate="" i18n:domain="ui"></option>\n
+                </tal:block>\n
+              </select>\n
+              <button type="submit" name="Base_doDialog:method">\n
+                <span class="image"></span>\n
+                <span class="description"\n
+                      i18n:translate="" i18n:domain="ui">Go</span>\n
+              </button>\n
+            </div>\n
+            <div class="content"\n
+                 tal:define="group_list python: form.Form_getGroupTitleAndId();\n
+                 gid_list   python: \' \'.join([x[\'gid\'] for x in group_list if x not in (\'bottom\', \'hidden\')]);">\n
+              <tal:block tal:repeat="group group_list">\n
+                <tal:block tal:define="gid    group/gid">\n
+                  <fieldset tal:condition="python: \'hidden\' not in gid and \'bottom\' not in gid"\n
+                            tal:attributes="class gid;\n
+                            id    python: \'fieldset_\' + gid.replace(\' \', \'_\');">\n
+                    <legend tal:content="group/gtitle" class="group_title" />\n
+                    <tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
+                      <tal:block metal:use-macro="field_render" />\n
+                    </tal:block>\n
+                  </fieldset>\n
+                </tal:block>\n
               </tal:block>\n
-            </select>\n
-            <button type="submit" name="Base_doDialog:method">\n
-              <span class="image"></span>\n
-              <span class="description"\n
-                    i18n:translate="" i18n:domain="ui">Go</span>\n
-            </button>\n
+              <p class="clear"></p>\n
+            </div>\n
           </div>\n
-          <div class="content"\n
-                      tal:define="group_list python: form.Form_getGroupTitleAndId();\n
-                                  gid_list   python: \' \'.join([x[\'gid\'] for x in group_list if x not in (\'bottom\', \'hidden\')]);">\n
-            <tal:block tal:repeat="group group_list">\n
-              <tal:block tal:define="gid    group/gid">\n
-                <fieldset tal:condition="python: \'hidden\' not in gid and \'bottom\' not in gid"\n
-                          tal:attributes="class gid;\n
-                                          id    python: \'fieldset_\' + gid.replace(\' \', \'_\');">\n
-                  <legend tal:content="group/gtitle" class="group_title"/>\n
-                  <tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
-                    <tal:block metal:use-macro="field_render"/>\n
-                  </tal:block>\n
-                </fieldset>\n
+        </tal:block>\n
+      </tal:block>\n
+      <tal:block metal:fill-slot="bottom">\n
+        <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
+                   dummy python: request.set(\'here\', here);\n
+                   bottom_group python: form.get_fields_in_group(\'bottom\')">\n
+          <div tal:condition="python: len(bottom_group) > 0"\n
+            class="bottom">\n
+            <tal:block tal:repeat="field bottom_group">\n
+              <tal:block tal:condition="preferred_html_style_developper_mode">\n
+                <tal:block metal:use-macro="developper_shortcut_render/macros/field_developper" />\n
+              </tal:block>\n
+              <tal:block tal:define="field_description field/Field_getDescription"\n
+                         tal:condition="preferred_html_style_translator_mode">\n
+                <tal:block metal:use-macro="developper_shortcut_render/macros/field_translator" />\n
               </tal:block>\n
+              <tal:block tal:define="value python:request.get(field.id, None)"\n
+                         tal:replace="structure python:field.render(value, request)" />\n
             </tal:block>\n
-            <p class="clear"></p>\n
           </div>\n
-        </div>\n
-      </tal:block>\n
-    </tal:block>\n
-    <tal:block metal:fill-slot="bottom">\n
-      <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
-                              dummy python: request.set(\'here\', here);\n
-                              bottom_group python: form.get_fields_in_group(\'bottom\')">\n
-        <div tal:condition="python: len(bottom_group) > 0"\n
-             class="bottom">\n
-          <tal:block tal:repeat="field bottom_group">\n
-            <tal:block tal:condition="preferred_html_style_developper_mode">\n
-              <tal:block metal:use-macro="developper_shortcut_render/macros/field_developper"/>\n
-            </tal:block>\n
-            <tal:block tal:define="field_description field/Field_getDescription"\n
-                       tal:condition="preferred_html_style_translator_mode">\n
-              <tal:block metal:use-macro="developper_shortcut_render/macros/field_translator"/>\n
-            </tal:block>\n
-            <tal:block tal:define="value python:request.get(field.id, None)"\n
-                       tal:replace="structure python:field.render(value, request)" />\n
-          </tal:block>\n
-        </div>\n
+        </tal:block>\n
       </tal:block>\n
     </tal:block>\n
   </tal:block>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_list.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_list.xml
index fad347746af1e41984ccc938a24724436d351759..91fc8d68cf37fde9b1734096ed1e04e96ae0d580 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_list.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_list.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -48,35 +45,16 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-<tal:block metal:use-macro="here/list_main/macros/master">\n
-  <tal:block metal:fill-slot="main">\n
-    <tal:block metal:use-macro="here/form_render/macros/master" />\n
+  <tal:block metal:use-macro="here/list_main/macros/master">\n
+    <tal:block metal:fill-slot="main">\n
+      <tal:block metal:use-macro="here/form_render/macros/master" />\n
+    </tal:block>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_render.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_render.xml
index d4547b57abf82d6f3b863035b4ad32fb308b2fc6..ea589c3aa3bc91711ab6dfa539db475e620f75c1 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_render.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_render.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,29 +51,11 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block tal:replace="nothing">\n
 <!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez  <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
-\n
 XXX: each case must be handled separatelly in this precise representation :\n
  - both top fields must be in the same div, so they must be identified\n
    strictly by their name.\n
@@ -98,36 +77,36 @@ It is possible to specify a group id and a group title by naming a group followi
   class and as tag id. The group title will be used as a legend for the fieldset. If no group\n
   title is found, we use group id as title.\n
 -->\n
-</tal:block>\n
-\n
-\n
-<tal:block metal:define-macro="master">\n
-  <tal:block\n
-    tal:define="field_errors python: request.get(\'field_errors\', {});\n
-                dummy        python: request.set(\'here\', here);\n
-                group_list   python: form.Form_getGroupTitleAndId();\n
-                gid_list     python: \' \'.join([x[\'gid\'] for x in group_list if x!=\'hidden\']);\n
-                field_render nocall: here/field_render/macros/field_render">\n
+  </tal:block>\n
 \n
-    <tal:block tal:condition="preferred_html_style_developper_mode">\n
-      <tal:block metal:use-macro="developper_shortcut_render/macros/form"/>\n
-    </tal:block>\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block\n
+              tal:define="field_errors python: request.get(\'field_errors\', {});\n
+              dummy        python: request.set(\'here\', here);\n
+              group_list   python: form.Form_getGroupTitleAndId();\n
+              gid_list     python: \' \'.join([x[\'gid\'] for x in group_list if x!=\'hidden\']);\n
+              field_render nocall: here/field_render/macros/field_render">\n
+      <tal:block tal:condition="preferred_html_style_developper_mode">\n
+        <tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
+      </tal:block>\n
 \n
-    <tal:block tal:repeat="group group_list">\n
-      <tal:block tal:define="gid     group/gid;">\n
-        <fieldset tal:condition="python: gid.find(\'hidden\') < 0"\n
-                  tal:attributes="class gid;\n
-                                  id    python: \'fieldset_%s\' % (gid.replace(\' \', \'_\'), );">\n
-          <legend tal:condition="group/gtitle" tal:content="group/gtitle" class="group_title"/>\n
-          <tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
-            <tal:block metal:use-macro="field_render"/>\n
-          </tal:block>\n
-        </fieldset>\n
+      <tal:block tal:repeat="group group_list">\n
+        <tal:block tal:define="gid     group/gid;">\n
+          <fieldset tal:condition="python: gid.find(\'hidden\') &lt; 0"\n
+                                                                tal:attributes="class gid;\n
+                                                                id    python: \'fieldset_%s\' % (gid.replace(\' \', \'_\'), );">\n
+            <legend tal:condition="group/gtitle" tal:content="group/gtitle" class="group_title"></legend>\n
+            <tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
+              <tal:block metal:use-macro="field_render" />\n
+            </tal:block>\n
+          </fieldset>\n
+        </tal:block>\n
       </tal:block>\n
+      <p class="clear"></p>\n
     </tal:block>\n
-    <p class="clear"></p>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_report.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_report.xml
index d4fb230e46651e0c14da0c19986ef4b141e44caf..e3519e74ed575d132a49e9679f0e97f5de3abbcb 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_report.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_report.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,31 +51,13 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2007 Nexedi SARL and Contributors. All Rights Reserved.\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-<tal:block metal:use-macro="here/list_report/macros/master">\n
-  <tal:block metal:fill-slot="main">\n
-    <tal:block metal:use-macro="here/form_render/macros/master" />\n
+  <tal:block metal:use-macro="here/list_report/macros/master">\n
+    <tal:block metal:fill-slot="main">\n
+      <tal:block metal:use-macro="here/form_render/macros/master" />\n
+    </tal:block>\n
   </tal:block>\n
 </tal:block>\n
 
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_view.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_view.xml
index 8fa0ba32664b023eaf48000fb5cee4c68903cbcb..75404b50c51820d9e10c18f1f1a0da2ea17d4d12 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_view.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/form_view.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -48,37 +45,18 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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/view_main/macros/master">\n
-    <tal:block metal:fill-slot="main">\n
-      <tal:block metal:use-macro="here/form_render/macros/master" />\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block metal:use-macro="here/view_main/macros/master">\n
+      <tal:block metal:fill-slot="main">\n
+        <tal:block metal:use-macro="here/form_render/macros/master" />\n
+      </tal:block>\n
     </tal:block>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/global_definitions.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/global_definitions.xml
index f7b8d73e1413b9344d45a26f1cc802ea9f85f3f3..6140248e9be79ca3458ed545ad818b4554d9aab4 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/global_definitions.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/global_definitions.xml
@@ -51,48 +51,46 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block metal:define-macro="header_definitions">\n
-  <tal:block tal:define="\n
-    global portal              here/portal_url/getPortalObject;\n
-    global portal_path         portal/absolute_url;\n
-           local_parameter_list  local_parameter_list | python: {};\n
-\n
-    global actions          python: here.Base_filterDuplicateActions(portal.portal_actions.listFilteredActionsFor(here));\n
-    global url              here/absolute_url;\n
-    global current_form_id  python: local_parameter_list.get(\'dialog_id\', local_parameter_list.get(\'form_id\', \'view\'));\n
+<tal:block tal:replace="nothing"\n
+           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+           xmlns:metal="http://xml.zope.org/namespaces/metal"\n
+           xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block metal:define-macro="header_definitions">\n
+    <tal:block tal:define="\n
+      global portal              here/portal_url/getPortalObject;\n
+      global portal_path         portal/absolute_url;\n
+            local_parameter_list  local_parameter_list | python: {};\n
+      global actions          python: here.Base_filterDuplicateActions(portal.portal_actions.listFilteredActionsFor(here));\n
+      global url              here/absolute_url;\n
+      global current_form_id  python: local_parameter_list.get(\'dialog_id\', local_parameter_list.get(\'form_id\', \'view\'));\n
            dummy            python: request.set(\'current_form_id\', current_form_id);\n
-    global current_url      python: \'%s/%s\' % (url, current_form_id);\n
-    global current_action   python: portal.ERP5Site_getCurrentAction(current_url, actions);\n
+           global current_url      python: \'%s/%s\' % (url, current_form_id);\n
+           global current_action   python: portal.ERP5Site_getCurrentAction(current_url, actions);\n
            cancel_url       request/cancel_url | current_url;\n
            dummy            python: local_parameter_list.update({\'cancel_url\': cancel_url});\n
-\n
            dummy       python: request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\');\n
            dummy  python: request.set(\'here\', here);\n
-\n
-    global css_list  css_list | python: [];\n
+           global css_list  css_list | python: [];\n
            css_list_template css_list_template | python: [\'%s/erp5.css\' % (portal_path, )];\n
            dummy     python: css_list.extend(css_list_template);\n
-    global js_list   js_list | python: [\'%s/erp5_xhtml_appearance.js\' % portal_path,];\n
-    global js_list   python:[\'%s/MochiKit/MochiKit.js\' % portal_path,\n
-                             \'%s/erp5.js\' % portal_path, ] + js_list;\n
-\n
-    global http_parameter_list  python: portal.ERP5Site_filterParameterList(request.form);\n
+           global js_list   js_list | python: [\'%s/erp5_xhtml_appearance.js\' % portal_path,];\n
+           global js_list   python:[\'%s/MochiKit/MochiKit.js\' % portal_path,\n
+           \'%s/erp5.js\' % portal_path, ] + js_list;\n
+           global http_parameter_list  python: portal.ERP5Site_filterParameterList(request.form);\n
            dummy                python: http_parameter_list.update(local_parameter_list);\n
-    global http_parameters      python: portal.ERP5Site_renderHTTPParameterList(http_parameter_list);\n
-    global form                 nocall:form | nothing;\n
+           global http_parameters      python: portal.ERP5Site_renderHTTPParameterList(http_parameter_list);\n
+           global form                 nocall:form | nothing;\n
            portal_preferences   python: portal.portal_preferences;\n
-    global preferred_html_style_developper_mode   portal_preferences/getPreferredHtmlStyleDevelopperMode;\n
-    global preferred_html_style_translator_mode   portal_preferences/getPreferredHtmlStyleTranslatorMode;\n
-    global preferred_html_style_contextual_help   portal_preferences/getPreferredHtmlStyleContextualHelp;\n
-    global developper_shortcut_render             python: (preferred_html_style_developper_mode or preferred_html_style_translator_mode) and portal.developper_shortcut_render;\n
-    global selected_language    portal/Localizer/get_selected_language;\n
-  "/>\n
-</tal:block>\n
-\n
-<!-- ============================================================== -->\n
-\n
-<tal:block metal:define-macro="http_definitions">\n
-  <tal:block tal:replace="structure python: modules[\'ZTUtils\'].make_hidden_input(**http_parameter_list).replace(\'>\', \' />\')"/>\n
+           global preferred_html_style_developper_mode   portal_preferences/getPreferredHtmlStyleDevelopperMode;\n
+           global preferred_html_style_translator_mode   portal_preferences/getPreferredHtmlStyleTranslatorMode;\n
+           global preferred_html_style_contextual_help   portal_preferences/getPreferredHtmlStyleContextualHelp;\n
+           global developper_shortcut_render             python: (preferred_html_style_developper_mode or preferred_html_style_translator_mode) and portal.developper_shortcut_render;\n
+           global selected_language    portal/Localizer/get_selected_language;\n
+           " />\n
+  </tal:block>\n
+  <tal:block metal:define-macro="http_definitions">\n
+    <tal:block tal:replace="structure python: modules[\'ZTUtils\'].make_hidden_input(**http_parameter_list).replace(\'>\', \' />\')" />\n
+  </tal:block>\n
 </tal:block>\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 5b04f12c6f7f0f697f1eab789ae9562880a2e718..8baddfac30f284083eca81c85570defebb7895b3 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
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -48,58 +45,38 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-<tal:block tal:define="title here/Title">\n
-<tal:block metal:use-macro="here/main_template/macros/master">\n
-  <tal:block metal:fill-slot="main">\n
-    <tal:block tal:condition="here/portal_membership/isAnonymousUser">\n
-        <tal:block tal:define="dummy python: request.RESPONSE.redirect(\'%s/login_form\' % url)" />\n
-    </tal:block>\n
-    <div tal:condition="python: not here.portal_membership.isAnonymousUser()"\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
-                        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
-          <td><a href="http://www.erp5.org/"><img src="images/erp5_logo.png" alt="ERP5 Logo" /></a></td>\n
-          <tal:block tal:repeat="col_no python:range(col_len)">\n
-            <td valign="top" class="ModuleShortcut">\n
-              <tal:block tal:repeat="module python:module_list[col_size*col_no:min(col_size*(col_no+1),module_len)] ">\n
-                <div><a tal:content="python: module[0]"\n
-                        tal:attributes="href python: module[1] + \'/view\'"></a></div>\n
+  <tal:block tal:define="title here/Title">\n
+    <tal:block metal:use-macro="here/main_template/macros/master">\n
+      <tal:block metal:fill-slot="main">\n
+        <tal:block tal:condition="here/portal_membership/isAnonymousUser">\n
+          <tal:block tal:define="dummy python: request.RESPONSE.redirect(\'%s/login_form\' % url)" />\n
+        </tal:block>\n
+        <div tal:condition="python: not here.portal_membership.isAnonymousUser()"\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
+                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
+              <td><a href="http://www.erp5.org/"><img src="images/erp5_logo.png" alt="ERP5 Logo" /></a></td>\n
+              <tal:block tal:repeat="col_no python:range(col_len)">\n
+                <td valign="top" class="ModuleShortcut">\n
+                  <tal:block tal:repeat="module python:module_list[col_size*col_no:min(col_size*(col_no+1),module_len)] ">\n
+                    <div><a tal:content="python: module[0]"\n
+                            tal:attributes="href python: module[1] + \'/view\'"></a></div>\n
+                  </tal:block>\n
+                </td>\n
               </tal:block>\n
-            </td>\n
-          </tal:block>\n
-        </tr>\n
-      </table>\n
-    </div>\n
+            </tr>\n
+          </table>\n
+        </div>\n
+      </tal:block>\n
+    </tal:block>\n
   </tal:block>\n
-</tal:block>\n
 </tal:block>
 
 ]]></string> </value>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_dialog.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_dialog.xml
index 52db31b5f3681bb8ab4264ab1852605023c504cc..73f19bbed7944f3873fc563a6d8071d6eca663df 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_dialog.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_dialog.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,19 +51,23 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block metal:define-macro="master">\n
-  <tal:block tal:define="form_id form/id;\n
-                         list_mode python: True;\n
-                         listmode_default_listbox python: form.Form_getListbox();\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
-    <tal:block metal:use-macro="here/form_dialog/macros/master"/>\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+           xmlns:metal="http://xml.zope.org/namespaces/metal"\n
+           xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block tal:define="form_id form/id;\n
+               list_mode python: True;\n
+               listmode_default_listbox python: form.Form_getListbox();\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
+               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
+      <tal:block metal:use-macro="here/form_dialog/macros/master" />\n
+    </tal:block>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
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 ae9dc12f2f68d94b2eae394a48640b1e339cda29..fefdac11bcbabab9ed96d2b8e6cf35c73cbb1e4f 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
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,48 +51,27 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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_doSelect;\n
-                         form_id form/id;\n
-                         list_mode python: True;\n
-                         listmode_default_listbox python:form.listbox;\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
-                         title here/getTranslatedTitle | here/Title">\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 metal:define-macro="master">\n
+    <tal:block tal:define="form_action string:Base_doSelect;\n
+               form_id form/id;\n
+               list_mode python: True;\n
+               listmode_default_listbox python:form.listbox;\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
+               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
+               title here/getTranslatedTitle | here/Title">\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>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_report.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_report.xml
index a944bf094e1093e00993844b0aa82bdba3792b4a..667c29c764abe27674dbc31f6b81a97361c85d6b 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_report.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/list_report.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,62 +51,44 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2007 Nexedi SARL and Contributors. All Rights Reserved.\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block tal:define="form_id form/id;\n
+               local_parameter_list python: {\'form_id\': form_id};\n
+               form_action python: form and form.action not in (\'\', None) and form.action or nothing;\n
+               title here/getTranslatedTitle | here/Title">\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" tal:define="actions python: []">\n
+            <div class="actions"\n
+                 tal:condition="python: (not is_web_mode or editable_mode)">\n
+              <button tal:condition="python: not is_web_mode and form_action"\n
+                      type="submit" class="save" title="Save"\n
+                      tal:attributes="name string:${form_action}:method;\n
+                      onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
+                      i18n:attributes="title" i18n:domain="ui">\n
+                <span class="image"></span>\n
+                <span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
+              </button>\n
+              <ul>\n
+                <li tal:repeat="action actions"\n
+                    tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
+                  <a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
+                     tal:content="action/name"\n
+                     i18n:translate="" i18n:domain="ui" />\n
+                </li>\n
+              </ul>\n
+            </div>\n
 \n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
 \n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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_id form/id;\n
-                         local_parameter_list python: {\'form_id\': form_id};\n
-                         form_action python: form and form.action not in (\'\', None) and form.action or nothing;\n
-                         title here/getTranslatedTitle | here/Title">\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" tal:define="actions python: []">\n
-          <div class="actions"\n
-               tal:condition="python: (not is_web_mode or editable_mode)">\n
-            <button tal:condition="python: not is_web_mode and form_action"\n
-                    type="submit" class="save" title="Save"\n
-                    tal:attributes="name string:${form_action}:method;\n
-                                    onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
-                    i18n:attributes="title" i18n:domain="ui">\n
-              <span class="image"></span>\n
-              <span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
-            </button>\n
-            <ul>\n
-              <li tal:repeat="action actions"\n
-                  tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
-                <a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
-                   tal:content="action/name"\n
-                   i18n:translate="" i18n:domain="ui"/>\n
-              </li>\n
-            </ul>\n
+            <tal:block metal:define-slot="main" />\n
           </div>\n
-\n
-\n
-          <tal:block metal:define-slot="main" />\n
-        </div>\n
+        </tal:block>\n
       </tal:block>\n
     </tal:block>\n
   </tal:block>\n
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_in.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_in.xml
index 3b9d30da134e3552f524748d1bb203e5b5f62cff..a49c496a81e769674273b2093cd4fd1eeeeae4cd 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_in.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_in.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,22 +51,27 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:condition="here/portal_skins/updateSkinCookie | nothing"\n
-           tal:define="dummy here/setupCurrentSkin;" />\n
-<tal:block tal:define="response request/RESPONSE;\n
-                       mtool here/portal_membership;\n
-                       isAnon mtool/isAnonymousUser|nothing;">\n
-  <tal:block tal:condition="isAnon">\n
-    <tal:block tal:define="dummy python: response.expireCookie(\'__ac\', path=\'/\');\n
-                           url python: \'%s/login_form?portal_status_message=%s\' % (here.absolute_url(), here.getPortalObject().Localizer.translate(\'ui\', \'Login+and/or+password+is+incorrect.\'));\n
-                           url python: request.get(\'came_from\') and  \'%s&came_from=%s\' % (url, request[\'came_from\']) or url;\n
-                           dummy python: response.redirect(url);"/>\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+           xmlns:metal="http://xml.zope.org/namespaces/metal"\n
+           xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block tal:condition="here/portal_skins/updateSkinCookie | nothing"\n
+             tal:define="dummy here/setupCurrentSkin;" />\n
+  <tal:block tal:define="response request/RESPONSE;\n
+             mtool here/portal_membership;\n
+             isAnon mtool/isAnonymousUser|nothing;">\n
+    <tal:block tal:condition="isAnon">\n
+      <tal:block tal:define="dummy python: response.expireCookie(\'__ac\', path=\'/\');\n
+                 url python: \'%s/login_form?portal_status_message=%s\' % (here.absolute_url(), here.getPortalObject().Localizer.translate(\'ui\', \'Login+and/or+password+is+incorrect.\'));\n
+                 url python: request.get(\'came_from\') and  \'%s&amp;came_from=%s\' % (url, request[\'came_from\']) or url;\n
+                 dummy python: response.redirect(url);" />\n
+    </tal:block>\n
+    <tal:block tal:condition="not: isAnon">\n
+      <tal:block tal:define="came_from python: request.get(\'came_from\') or here.absolute_url() + \'/view\';\n
+                 dummy python: response.redirect(came_from);" />\n
+    </tal:block>\n
   </tal:block>\n
-  <tal:block tal:condition="not: isAnon">\n
-    <tal:block tal:define="came_from python: request.get(\'came_from\') or here.absolute_url() + \'/view\';\n
-                           dummy python: response.redirect(came_from);" />\n
-  </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_out.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_out.xml
index 47a2b6a1035479ea00e59836c30e7052422226e3..fe0ee5feec5a01bb7e3d1765fa5a9dad39413453 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_out.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/logged_out.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -48,37 +45,21 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block replace="nothing">\n
 <!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
-\n
 XXX: this page is just for backward compatibility. The log_out action sould lead to the login page with the correct transition message.\n
 -->\n
-</tal:block>\n
-<tal:block metal:use-macro="here/main_template/macros/master">\n
-  <tal:block metal:fill-slot="main">\n
-    <tal:block tal:define="dummy python:request.RESPONSE.redirect(\'%s/login_form?portal_status_message=%s\' % (url, here.Base_translateString(\'You have been logged out.\')))" />\n
   </tal:block>\n
-</tal:block>
+  <tal:block metal:use-macro="here/main_template/macros/master">\n
+    <tal:block metal:fill-slot="main">\n
+      <tal:block tal:define="dummy python:request.RESPONSE.redirect(\'%s/login_form?portal_status_message=%s\' % (url, here.Base_translateString(\'You have been logged out.\')))" />\n
+    </tal:block>\n
+  </tal:block>\n
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/login_form.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/login_form.xml
index 3e4b54fa62eb7284575c031b30cb401f4ed35607..8a6584e107aea5e861451b0683c6c724217ac304 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/login_form.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/login_form.xml
@@ -57,92 +57,66 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-<tal:block tal:define="form_action string:logged_in;\n
-                       global form_id string:login_form;\n
-                       js_list python: [\'%s/login_form.js\' % (here.portal_url(), )]">\n
-<tal:block metal:use-macro="here/main_template/macros/master">\n
-  <tal:block metal:fill-slot="main">\n
-    <div class="content login">\n
-\n
-      <tal:block tal:condition="python: request.get(\'came_from\', None) is None">\n
-        <h1 i18n:translate="" i18n:domain="ui">Log in</h1>\n
-      </tal:block>\n
-\n
-      <tal:block tal:condition="python: request.get(\'came_from\', None) is not None">\n
-        <h1 i18n:translate="" i18n:domain="ui">You don\'t have enough permissions to access this page</h1>\n
-        <p i18n:translate="" i18n:domain="ui">You can log in with another user name or\n
-          <a href="javascript:history.back();">go back</a>.\n
-        </p>\n
-      </tal:block>\n
-\n
-      <input tal:condition="exists: request/came_from"\n
-              type="hidden" name="came_from"\n
-              tal:attributes="value request/came_from" />\n
-\n
-      <fieldset id="fieldset_left" class="left">\n
-        <div class="field">\n
-          <label for="name" class="required" i18n:translate="" i18n:domain="ui">Name</label>\n
-          <div class="input"><input type="text" name="__ac_name" id="name" tal:attributes="value python: request.get(\'__ac_name\') or \'\'"/></div>\n
-        </div>\n
-        <div class="field">\n
-          <label for="password" i18n:translate="" i18n:domain="ui">Password</label>\n
-          <div class="input"><input type="password" name="__ac_password" id="password"/></div>\n
-        </div>\n
-        <div class="field">\n
-          <label for="cb_remember" i18n:translate="" i18n:domain="ui">Remember my name</label>\n
-          <div class="input"><input type="checkbox" name="__ac_persistent" value="1" checked="checked" id="cb_remember"/></div>\n
+  <tal:block tal:define="form_action string:logged_in;\n
+             global form_id string:login_form;\n
+             js_list python: [\'%s/login_form.js\' % (here.portal_url(), )]">\n
+    <tal:block metal:use-macro="here/main_template/macros/master">\n
+      <tal:block metal:fill-slot="main">\n
+        <div class="content login">\n
+          <tal:block tal:condition="python: request.get(\'came_from\', None) is None">\n
+            <h1 i18n:translate="" i18n:domain="ui">Log in</h1>\n
+          </tal:block>\n
+          <tal:block tal:condition="python: request.get(\'came_from\', None) is not None">\n
+            <h1 i18n:translate="" i18n:domain="ui">You don\'t have enough permissions to access this page</h1>\n
+            <p i18n:translate="" i18n:domain="ui">You can log in with another user name or\n
+              <a href="javascript:history.back();">go back</a>.\n
+            </p>\n
+          </tal:block>\n
+          <input tal:condition="exists: request/came_from"\n
+                 type="hidden" name="came_from"\n
+                 tal:attributes="value request/came_from" />\n
+          <fieldset id="fieldset_left" class="left">\n
+            <div class="field">\n
+              <label for="name" class="required" i18n:translate="" i18n:domain="ui">Name</label>\n
+              <div class="input"><input type="text" name="__ac_name" id="name" tal:attributes="value python: request.get(\'__ac_name\') or \'\'" /></div>\n
+            </div>\n
+            <div class="field">\n
+              <label for="password" i18n:translate="" i18n:domain="ui">Password</label>\n
+              <div class="input"><input type="password" name="__ac_password" id="password" /></div>\n
+            </div>\n
+            <div class="field">\n
+              <label for="cb_remember" i18n:translate="" i18n:domain="ui">Remember my name</label>\n
+              <div class="input"><input type="checkbox" name="__ac_persistent" value="1" checked="checked" id="cb_remember" /></div>\n
+            </div>\n
+            <div class="field">\n
+              <label>&nbsp;</label>\n
+              <div class="input">\n
+                <input type="submit" value="Login" class="submit"\n
+                       tal:attributes="name python: \'%s:method\' % (form_action, )"\n
+                       i18n:attributes="value" i18n:domain="ui" />\n
+              </div>\n
+            </div>\n
+            <div class="field">\n
+              <label>&nbsp;</label>\n
+              <div class="input">\n
+                <a tal:attributes="href string:${here/portal_url}/mail_password_form"\n
+                   i18n:translate="" i18n:domain="ui">I forgot my password!</a>\n
+              </div>\n
+            </div>\n
+          </fieldset>\n
+          <script type="text/javascript">setFocus()</script>\n
+          <p i18n:translate="" i18n:domain="ui">Having trouble logging in? Make sure to enable cookies in your web browser.</p>\n
+          <p i18n:translate="" i18n:domain="ui">Don\'t forget to logout or exit your browser when you\'re done.</p>\n
+          <p i18n:translate="" i18n:domain="ui">Setting the \'Remember my name\' option will set a cookie with your username, so that when you next log in, your user name will already be filled in for you.</p>\n
         </div>\n
-        <div class="field">\n
-          <label>&nbsp;</label>\n
-          <div class="input">\n
-            <input type="submit" value="Login" class="submit"\n
-                   tal:attributes="name python: \'%s:method\' % (form_action, )"\n
-                   i18n:attributes="value" i18n:domain="ui"/>\n
-          </div>\n
-        </div>\n
-        <div class="field">\n
-          <label>&nbsp;</label>\n
-          <div class="input">\n
-            <a tal:attributes="href string:${here/portal_url}/mail_password_form"\n
-            i18n:translate="" i18n:domain="ui">I forgot my password!</a>\n
-          </div>\n
-        </div>\n
-      </fieldset>\n
-\n
-      <script type="text/javascript">setFocus()</script>\n
-\n
-      <p i18n:translate="" i18n:domain="ui">Having trouble logging in? Make sure to enable cookies in your web browser.</p>\n
-      <p i18n:translate="" i18n:domain="ui">Don\'t forget to logout or exit your browser when you\'re done.</p>\n
-      <p i18n:translate="" i18n:domain="ui">Setting the \'Remember my name\' option will set a cookie with your username, so that when you next log in, your user name will already be filled in for you.</p>\n
-\n
-    </div>\n
+      </tal:block>\n
+    </tal:block>\n
   </tal:block>\n
 </tal:block>\n
-</tal:block>
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/main_template.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/main_template.xml
index 28d081c767de05f96ce8044d0911cc921d5da5db..7743e28fbd4025fb764b5fd69e11c92af9287129 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/main_template.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/main_template.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,56 +51,40 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block tal:replace="nothing">\n
 <!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez  <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
-\n
 IDEAS:\n
  - Add callbacks to ERP5Form object (selection ?) to gather needed fields -> put them in http_parameter_list.\n
 -->\n
-</tal:block>\n
-<tal:block metal:define-macro="master">\n
-  <tal:block\n
-   tal:define="ignore_layout          request/ignore_layout | nothing;\n
-               layout_form_id         request/layout_form_id | here/getApplicableLayout | nothing;\n
-               layout_form    python: layout_form_id and getattr(here, layout_form_id, None) or None;\n
-               is_web_mode    python: (layout_form is not None) and (not ignore_layout);\n
-               editable_mode  python: (not is_web_mode) or request.get(\'editable_mode\', False);\n
-               editable_mode_backup editable_mode;\n
-               dummy          python: request.set(\'editable_mode\', editable_mode);\n
-               dummy          python: request.set(\'is_web_mode\', is_web_mode);\n
-               page_template  python: is_web_mode and ((layout_form.meta_type==\'Page Template\' and layout_form.id) or getattr(layout_form, \'pt\', None)) or \'template_erp5_xhtml_style\';">\n
-    <tal:block metal:use-macro="python: getattr(here, page_template).macros[\'master\']">\n
-      <tal:block metal:fill-slot="context_bar">\n
-        <tal:block metal:define-slot="context_bar"/>\n
-      </tal:block>\n
-      <tal:block metal:fill-slot="main"\n
-                 tal:define="editable_mode  editable_mode_backup;\n
-                             dummy python: request.set(\'editable_mode\', editable_mode);">\n
-        <tal:block metal:define-slot="main"/>\n
+  </tal:block>\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block\n
+              tal:define="ignore_layout          request/ignore_layout | nothing;\n
+              layout_form_id         request/layout_form_id | here/getApplicableLayout | nothing;\n
+              layout_form    python: layout_form_id and getattr(here, layout_form_id, None) or None;\n
+              is_web_mode    python: (layout_form is not None) and (not ignore_layout);\n
+              editable_mode  python: (not is_web_mode) or request.get(\'editable_mode\', False);\n
+              editable_mode_backup editable_mode;\n
+              dummy          python: request.set(\'editable_mode\', editable_mode);\n
+              dummy          python: request.set(\'is_web_mode\', is_web_mode);\n
+              page_template  python: is_web_mode and ((layout_form.meta_type==\'Page Template\' and layout_form.id) or getattr(layout_form, \'pt\', None)) or \'template_erp5_xhtml_style\';">\n
+      <tal:block metal:use-macro="python: getattr(here, page_template).macros[\'master\']">\n
+        <tal:block metal:fill-slot="context_bar">\n
+          <tal:block metal:define-slot="context_bar" />\n
+        </tal:block>\n
+        <tal:block metal:fill-slot="main"\n
+                   tal:define="editable_mode  editable_mode_backup;\n
+                   dummy python: request.set(\'editable_mode\', editable_mode);">\n
+          <tal:block metal:define-slot="main" />\n
+        </tal:block>\n
       </tal:block>\n
     </tal:block>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/navigation_box_render.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/navigation_box_render.xml
index e5f6b8dca392a38620bd2d03a32d4ed806e77650..02c4c8635eec3cb6078f804740780fb98c72412b 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/navigation_box_render.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/navigation_box_render.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,95 +51,100 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:define="actions python: here.getPortalObject().portal_actions.listFilteredActionsFor(here)">\n
-  <span class="first">\n
-    <span id="favourites">\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,\'Base_doFavorite\')">\n
-        <option selected="selected" value=""\n
-                i18n:translate="" i18n:domain="ui">My favourites</option>\n
-        <tal:block tal:repeat="action ordered_global_actions">\n
-          <option tal:condition="action/disabled"\n
-                  disabled="disabled">-- <tal:block tal:content="action/title" i18n:translate="" i18n:domain="ui" /> --</option>\n
-          <tal:block tal:condition="not:action/disabled"\n
-                    tal:define="name python: action.get(\'name\', \'\');\n
-                                index python: name.find(\' (\');">\n
-            <option tal:condition="python: index >= 0"\n
-                    tal:attributes="value action/url"><tal:block tal:content="python: name[:index]" i18n:translate="" i18n:domain="ui"></tal:block><tal:block tal:replace="python: name[index:]" /></option>\n
-            <option tal:condition="python: index < 0"\n
-                    tal:attributes="value action/url"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+           xmlns:metal="http://xml.zope.org/namespaces/metal"\n
+           xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block tal:define="actions python: here.getPortalObject().portal_actions.listFilteredActionsFor(here)">\n
+    <span class="first">\n
+      <span id="favourites">\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,\'Base_doFavorite\')">\n
+          <option selected="selected" value=""\n
+                  i18n:translate="" i18n:domain="ui">My favourites</option>\n
+          <tal:block tal:repeat="action ordered_global_actions">\n
+            <option tal:condition="action/disabled"\n
+                    disabled="disabled">-- <tal:block tal:content="action/title" i18n:translate="" i18n:domain="ui" /> --</option>\n
+            <tal:block tal:condition="not:action/disabled"\n
+                       tal:define="name python: action.get(\'name\', \'\');\n
+                       index python: name.find(\' (\');">\n
+              <option tal:condition="python: index &gt;= 0"\n
+                      tal:attributes="value action/url"><tal:block tal:content="python: name[:index]" i18n:translate="" i18n:domain="ui"></tal:block><tal:block tal:replace="python: name[index:]" /></option>\n
+              <option tal:condition="python: index &lt; 0"\n
+                      tal:attributes="value action/url"\n
+                      tal:content="action/name"\n
+                      i18n:translate="" i18n:domain="ui"></option>\n
+            </tal:block>\n
+          </tal:block>\n
+          <tal:block tal:condition="user_actions">\n
+            <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">User</tal:block> --</option>\n
+            <option tal:repeat="action user_actions"\n
                     tal:content="action/name"\n
+                    tal:attributes="value action/url"\n
                     i18n:translate="" i18n:domain="ui"></option>\n
           </tal:block>\n
-        </tal:block>\n
-        <tal:block tal:condition="user_actions">\n
-          <option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">User</tal:block> --</option>\n
-          <option tal:repeat="action user_actions"\n
-                  tal:content="action/name"\n
-                  tal:attributes="value action/url"\n
-                  i18n:translate="" i18n:domain="ui"></option>\n
-        </tal:block>\n
-      </select>\n
-      <button type="submit" name="Base_doFavorite:method" title="Select Favorite"\n
-              i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description"\n
-              i18n:translate="" i18n:domain="ui">Select Favorite</span>\n
-      </button>\n
+        </select>\n
+        <button type="submit" name="Base_doFavorite:method" title="Select Favorite"\n
+                i18n:attributes="title" i18n:domain="ui">\n
+          <span class="image"></span>\n
+          <span class="description"\n
+                i18n:translate="" i18n:domain="ui">Select Favorite</span>\n
+        </button>\n
+      </span>\n
+      <span class="separator"></span>\n
+      <span id="modules">\n
+        <select name="select_module"\n
+                tal:define="module_list here/ERP5Site_getModuleItemList;"\n
+                tal:attributes="onChange string:submitAction(this.form,\'Base_doModule\')">\n
+          <option selected="selected" value="" i18n:translate="" i18n:domain="ui">ERP5 Modules</option>\n
+          <option tal:repeat="module module_list"\n
+                  tal:attributes="value python: module[1]"\n
+                  tal:content="python: module[0]"\n
+                  tal:omit-tag="nothing" />\n
+        </select>\n
+        <button type="submit" name="Base_doModule:method" title="Select Module"\n
+                i18n:attributes="title" i18n:domain="ui">\n
+          <span class="image"></span>\n
+          <span class="description"\n
+                i18n:translate="" i18n:domain="ui">Select Module</span>\n
+        </button>\n
+      </span>\n
     </span>\n
-    <span class="separator"></span>\n
-    <span id="modules">\n
-      <select name="select_module"\n
-              tal:define="module_list here/ERP5Site_getModuleItemList;"\n
-              tal:attributes="onChange string:submitAction(this.form,\'Base_doModule\')">\n
-        <option selected="selected" value="" i18n:translate="" i18n:domain="ui">ERP5 Modules</option>\n
-        <option tal:repeat="module module_list"\n
-                tal:attributes="value python: module[1]"\n
-                tal:content="python: module[0]"\n
-                tal:omit-tag="nothing"/>\n
-      </select>\n
-      <button type="submit" name="Base_doModule:method" title="Select Module"\n
-              i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description"\n
-              i18n:translate="" i18n:domain="ui">Select Module</span>\n
-      </button>\n
+    <span class="second">\n
+      <span id="language">\n
+        <select name="select_language"\n
+                tal:attributes="onChange string:submitAction(this.form,\'Base_doLanguage\')">\n
+          <option value=""\n
+                  i18n:translate="" i18n:domain="ui">My language</option>\n
+          <option tal:repeat="language python: here.Localizer.get_languages_map()"\n
+                  tal:omit-tag="nothing"\n
+                  tal:attributes="value language/id;\n
+                  selected python: language[\'selected\'] and \'selected\' or nothing;"\n
+                  tal:content="python: here.Localizer.erp5_ui.gettext(language[\'title\'], lang=language[\'id\'])" />\n
+        </select>\n
+        <button type="submit" name="Base_doLanguage:method" title="Select Language"\n
+                i18n:attributes="title" i18n:domain="ui">\n
+          <span class="image"></span>\n
+          <span class="description"\n
+                i18n:translate="" i18n:domain="ui">Select Language</span>\n
+        </button>\n
+      </span>\n
+      <span class="separator"></span>\n
+      <span id="search">\n
+        <input type="text" name="field_your_search_text" />\n
+        <button type="submit" name="Base_searchResultList:method" title="Search"\n
+                i18n:attributes="title" i18n:domain="ui">\n
+          <span class="image"></span>\n
+          <span class="description"\n
+                i18n:translate="" i18n:domain="ui">Search</span>\n
+        </button>\n
+      </span>\n
     </span>\n
-  </span>\n
-  <span class="second">\n
-    <span id="language">\n
-      <select name="select_language"\n
-              tal:attributes="onChange string:submitAction(this.form,\'Base_doLanguage\')">\n
-        <option value=""\n
-                i18n:translate="" i18n:domain="ui">My language</option>\n
-        <option tal:repeat="language python: here.Localizer.get_languages_map()"\n
-                tal:omit-tag="nothing"\n
-                tal:attributes="value language/id;\n
-                                selected python: language[\'selected\'] and \'selected\' or nothing;"\n
-                tal:content="python: here.Localizer.erp5_ui.gettext(language[\'title\'], lang=language[\'id\'])" />\n
-      </select>\n
-      <button type="submit" name="Base_doLanguage:method" title="Select Language"\n
-              i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description"\n
-              i18n:translate="" i18n:domain="ui">Select Language</span>\n
-      </button>\n
-    </span>\n
-    <span class="separator"></span>\n
-    <span id="search">\n
-      <input type="text" name="field_your_search_text"/>\n
-      <button type="submit" name="Base_searchResultList:method" title="Search"\n
-              i18n:attributes="title" i18n:domain="ui">\n
-        <span class="image"></span>\n
-        <span class="description"\n
-              i18n:translate="" i18n:domain="ui">Search</span>\n
-      </button>\n
-    </span>\n
-  </span>\n
-  <p class="clear"></p>\n
-</tal:block>
+    <p class="clear"></p>\n
+  </tal:block>\n
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/planning_content.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/planning_content.xml
index 2cd01e68294e6db5fb0d8a3cf6c368442895851b..9665a53f6b228525769b538a8b4ba6ccffeef6bd 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/planning_content.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/planning_content.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,382 +51,347 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<!--\n
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.\n
-            Thomas Bernard   <thomas@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+           xmlns:metal="http://xml.zope.org/namespaces/metal"\n
+           xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block tal:replace="nothing">\n
 <!--\n
 This Page template is aimed to generate the HTML code necessary to display correctly the\n
 PlaningBox. The process is based on the strucutre passed in parameter (i.e options/struct)\n
 Beware this only generates the HTML code, no CSS generation is done in this script\n
 -->\n
+  </tal:block>\n
+  <tal:block tal:define=" basic options/basic;\n
+             planning options/planning;\n
+             address python:basic.context.getUrl()">\n
+    <!-- hidden fields holding some usefull data-->\n
+    <input type="hidden" name="list_selection_name" value="PlanningView" tal:attributes="value python:basic.field.get_value(\'selection_name\')" />\n
+    <!-- setPage needs \'listbox_uid:list\'-->\n
+    <input type="hidden" name="listbox_uid:list" />\n
+    <!-- block_moved_list -->\n
+    <input type="hidden" name="previous_block_moved" value="None"\n
+           tal:attributes="value python:basic.REQUEST.get(\'previous_block_moved\',\'\')" />\n
+    <input type="hidden" name="block_moved" />\n
+    <!-- Planning\'s header -->\n
+    <div class="planning_box">\n
+      <table>\n
+        <tr>\n
+          <td>\n
+            <h3 i18n:translate="" i18n:domain="ui">\n
+              <tal:block tal:replace="structure python:basic.field.get_value(\'title\')" />      </h3>\n
+          </td>\n
+          <b tal:replace="nothing"><!-- report path selection --></b>\n
+          <td>\n
+            <select name="report_root_url" onChange="submitAction(this.form,\'/setReportRoot\')"\n
+                    tal:attributes="onChange string:submitAction(this.form,\'${address}/setReportRoot\')">\n
+              <tal:block tal:condition="python:basic.selection is None"\n
+                         tal:define="global selection_report_path python:basic.report_root_list[0][0]" />\n
+              <tal:block tal:condition="python:basic.selection is not None"\n
+                         tal:define="global selection_report_path python:basic.selection.report_path" />\n
+              <tal:block tal:repeat="report_root_element python:basic.report_root_list">\n
+                <tal:block tal:condition="python:report_root_element[0]==selection_report_path">\n
+                  <b tal:replace="nothing">actual value is selected</b>\n
+                  <option i18n:translate="" i18n:domain="ui" selected="selected" value="None"\n
+                          tal:attributes="value python:report_root_element[0]"\n
+                          tal:content="structure python:report_root_element[1]">_</option>\n
+                </tal:block>\n
+                <tal:block tal:condition="python:report_root_element[0]!=selection_report_path">\n
+                  <b tal:replace="nothing">actual value is not selected</b>\n
+                  <option i18n:translate="" i18n:domain="ui" value="None"\n
+                          tal:attributes="value python:report_root_element[0]"\n
+                          tal:content="structure python:report_root_element[1]">_</option>\n
+                </tal:block>\n
+              </tal:block>\n
+            </select>\n
+          </td>\n
+          <td>\n
+            <tal:block tal:repeat="nb python:range(8)">\n
+              &nbsp;\n
+            </tal:block>\n
+            <tal:block tal:condition="python:planning.main_axis == planning.Y">\n
+              <tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
+            </tal:block>\n
+            <tal:block tal:condition="python:planning.main_axis != planning.Y">\n
+              <tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
+            </tal:block>\n
+            <tal:block tal:repeat="nb python:range(1)">\n
+              &nbsp;\n
+            </tal:block>\n
+          </td>\n
+          <td>\n
+            <b tal:replace="nothing">\n
+              <!-- page selection need to be implemented here\n
+                   for that will use structure.basic-->\n
+            </b>\n
+            <tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
+              <b tal:replace="nothing"> previous page exists </b>\n
+              <input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
+                     tal:attributes="src string:${address}/images/1leftarrowv.png;\n
+                     name string:${address}/previousPage:method" />\n
+            </tal:block>\n
+            <select name="list_start" title="Change Page" size="1"\n
+                    onChange=""\n
+                    tal:condition="python:basic.main_axis_info[\'bound_page_total\'] &gt; 1"\n
+                    tal:attributes="onChange string:submitAction(this.form,\'${address}/setPage\')">\n
+              <tal:block tal:repeat="current_page_number python:range(basic.main_axis_info[\'bound_page_total\']+1)[1:]">\n
+                <tal:block tal:condition="python:current_page_number==basic.main_axis_info[\'bound_page_current\']">\n
+                  <b tal:replace="nothing"> actual page is selected </b>\n
+                  <option selected="selected" value="None"\n
+                          tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
+                          tal:content="structure python:str(current_page_number) + \' of \' +  str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
+                </tal:block>\n
+                <tal:block tal:condition="python:current_page_number!=basic.main_axis_info[\'bound_page_current\']">\n
+                  <b tal:replace="nothing"> actual page is not selected </b>\n
+                  <option value="None"\n
+                          tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
+                          tal:content="structure python:str(current_page_number) + \' of \' + str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
+                </tal:block>\n
+              </tal:block>\n
+            </select>\n
 \n
-<tal:block tal:define=" basic options/basic;\n
-                       planning options/planning;\n
-                       address python:basic.context.getUrl()">\n
-\n
-<!-- hidden fields holding some usefull data-->\n
-<input type="hidden" name="list_selection_name" value="PlanningView" tal:attributes="value python:basic.field.get_value(\'selection_name\')"/>\n
-<!-- setPage needs \'listbox_uid:list\'-->\n
-<input type="hidden" name="listbox_uid:list"/>\n
-<!-- block_moved_list -->\n
-<input type="hidden" name="previous_block_moved" value="None"\n
-       tal:attributes="value python:basic.REQUEST.get(\'previous_block_moved\',\'\')"/>\n
-<input type="hidden" name="block_moved"/>\n
-\n
-<!-- Planning\'s header -->\n
-<div class="planning_box">\n
-\n
- <table>\n
-  <tr>\n
-     <td>\n
-      <h3 i18n:translate="" i18n:domain="ui">\n
-         <tal:block tal:replace="structure python:basic.field.get_value(\'title\')"/>      </h3>\n
-      </td>\n
-   <b tal:replace="nothing"><!-- report path selection --></b>\n
-  <td>\n
-    <select name="report_root_url" onChange="submitAction(this.form,\'/setReportRoot\')"\n
-            tal:attributes="onChange string:submitAction(this.form,\'${address}/setReportRoot\')">\n
-      <tal:block tal:condition="python:basic.selection is None"\n
-                tal:define="global selection_report_path python:basic.report_root_list[0][0]"/>\n
-      <tal:block tal:condition="python:basic.selection is not None"\n
-                tal:define="global selection_report_path python:basic.selection.report_path"/>\n
-      <tal:block tal:repeat="report_root_element python:basic.report_root_list">\n
-        <tal:block tal:condition="python:report_root_element[0]==selection_report_path">\n
-        <b tal:replace="nothing">actual value is selected</b>\n
-        <option i18n:translate="" i18n:domain="ui" selected="selected" value="None"\n
-                tal:attributes="value python:report_root_element[0]"\n
-                tal:content="structure python:report_root_element[1]">_</option>\n
-        </tal:block>\n
-        <tal:block tal:condition="python:report_root_element[0]!=selection_report_path">\n
-        <b tal:replace="nothing">actual value is not selected</b>\n
-        <option i18n:translate="" i18n:domain="ui" value="None"\n
-                tal:attributes="value python:report_root_element[0]"\n
-                tal:content="structure python:report_root_element[1]">_</option>\n
-        </tal:block>\n
-      </tal:block>\n
-    </select>\n
-  </td>\n
-\n
-  <td>\n
-    <tal:block tal:repeat="nb python:range(8)">\n
-      &nbsp;\n
-    </tal:block>\n
-    <tal:block tal:condition="python:planning.main_axis == planning.Y">\n
-            <tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
-    </tal:block>\n
-    <tal:block tal:condition="python:planning.main_axis != planning.Y">\n
-            <tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
-    </tal:block>\n
-    <tal:block tal:repeat="nb python:range(1)">\n
-      &nbsp;\n
-    </tal:block>\n
-  </td>\n
+            <tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
+              <b tal:replace="nothing"> next page exists </b>\n
+              <input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
+                     tal:attributes="src string:${address}/images/1rightarrowv.png;\n
+                     name string:${address}/nextPage:method" />\n
+            </tal:block>\n
+          </td>\n
 \n
-  <td>\n
-    <b tal:replace="nothing">\n
-    <!-- page selection need to be implemented here\n
-        for that will use structure.basic-->\n
-    </b>\n
-    <tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
-      <b tal:replace="nothing"> previous page exists </b>\n
-      <input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
-        tal:attributes="src string:${address}/images/1leftarrowv.png;\n
-          name string:${address}/previousPage:method"/>\n
-    </tal:block>\n
+          <td>\n
+            <tal:block tal:repeat="nb python:range(8)">\n
+              &nbsp;\n
+            </tal:block>\n
+            <tal:block tal:condition="python:planning.main_axis == planning.Y">\n
+              <tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
+            </tal:block>\n
+            <tal:block tal:condition="python:planning.main_axis != planning.Y">\n
+              <tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
+            </tal:block>\n
+            <tal:block tal:repeat="nb python:range(1)">\n
+              &nbsp;\n
+            </tal:block>\n
+          </td>\n
+          <td>\n
 \n
-    <select name="list_start" title="Change Page" size="1"\n
-            onChange=""\n
-            tal:condition="python:basic.main_axis_info[\'bound_page_total\'] > 1"\n
-            tal:attributes="onChange string:submitAction(this.form,\'${address}/setPage\')">\n
-      <tal:block tal:repeat="current_page_number python:range(basic.main_axis_info[\'bound_page_total\']+1)[1:]">\n
-        <tal:block tal:condition="python:current_page_number==basic.main_axis_info[\'bound_page_current\']">\n
-          <b tal:replace="nothing"> actual page is selected </b>\n
-          <option selected="selected" value="None"\n
-                  tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
-                  tal:content="structure python:str(current_page_number) + \' of \' +  str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
-        </tal:block>\n
-        <tal:block tal:condition="python:current_page_number!=basic.main_axis_info[\'bound_page_current\']">\n
-          <b tal:replace="nothing"> actual page is not selected </b>\n
-          <option value="None"\n
-                  tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
-                  tal:content="structure python:str(current_page_number) + \' of \' + str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
+            <!-- processing zoom level select -->\n
+            <select name="zoom_level" title="Change Zoom Level" size="1"\n
+                    onChange=""\n
+                    tal:attributes="onChange string:submitAction(this.form,\'${address}/setZoomLevel\')">\n
+              <tal:block tal:condition="python:not basic.field.get_value(\'use_date_zoom\')">\n
+                <tal:block tal:repeat="current_zoom_level python:[0.1,0.25,0.5,1,2,3,4,8,12,16,32,64]">\n
+                  <tal:block tal:condition="python:current_zoom_level==basic.secondary_axis_info[\'zoom_level\']">\n
+                    <b tal:replace="nothing"> current zoom level is selected </b>\n
+                    <option selected="selected" value="None"\n
+                            tal:attributes="value python:current_zoom_level"\n
+                            tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
+                  </tal:block>\n
+                  <tal:block tal:condition="python:current_zoom_level!=basic.secondary_axis_info[\'zoom_level\']">\n
+                    <b tal:replace="nothing"> current zoom level is not selected </b>\n
+                    <option value="None"\n
+                            tal:attributes="value python:current_zoom_level"\n
+                            tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
+                  </tal:block>\n
+                </tal:block>\n
+              </tal:block>\n
+              <tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')">\n
+                <!-- Defining Date Zoom Level -->\n
+                <!-- XXX This part has to be improved -->\n
+                <tal:block tal:repeat="current_zoom_level python:[ [i.getTitle() , i.getIntIndex() ] for i in context.portal_categories.zoom.contentValues(sort_on=\'int_index\') ]">\n
+                  <tal:block tal:condition="python:current_zoom_level[1]==basic.secondary_axis_info[\'zoom_level\']">\n
+                    <b tal:replace="nothing"> current zoom level is selected </b>\n
+                    <option selected="selected" value="None"\n
+                            tal:attributes="value python:current_zoom_level[1]"\n
+                            i18n:translate="" i18n:domain="ui"\n
+                            tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
+                  </tal:block>\n
+                  <tal:block tal:condition="python:current_zoom_level[1]!=basic.secondary_axis_info[\'zoom_level\']">\n
+                    <b tal:replace="nothing"> current zoom level is not selected </b>\n
+                    <option value="None"\n
+                            tal:attributes="value python:current_zoom_level[1]"\n
+                            i18n:translate="" i18n:domain="ui"\n
+                            tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
+                  </tal:block>\n
+                </tal:block>\n
+              </tal:block>\n
+            </select>\n
+            <tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')"\n
+                       tal:define="form_id python:\'%s\' % (basic.form.id);\n
+                       selection_name python:basic.field.get_value(\'selection_name\');\n
+                       zoom_level python:basic.secondary_axis_info[\'zoom_level\'];\n
+                       today python:\'%s/%s/%s\' % (str(DateTime().year()), str(DateTime().month()),str(DateTime().day()))">\n
+              <a tal:attributes="href python: \'%s/setZoomLevel?form_id=%s&amp;list_selection_name=%s&amp;zoom_date_start=%s\'\n
+                 % (context.absolute_url(), form_id,selection_name,today)">\n
+                <img src="/images/jump.png" title="Jump to Current Day" name="JumpToCurrentDay"\n
+                     tal:attributes="src string:${address}/images/jump.png;" />\n
+              </a>\n
+            </tal:block>\n
+          </td>\n
+        </tr>\n
+      </table>\n
+      <!-- div class="planning_box" -->\n
+      <!-- planning structure (axis and group representation)-->\n
+      <div tal:repeat="axis python:(planning.main_axis,planning.secondary_axis)"\n
+           tal:attributes="id python:axis.name">\n
+        <!-- groups of the current axis-->\n
+        <tal:block tal:repeat="axis_group python:axis.axis_group">\n
+          <div tal:attributes="id python:axis_group.name;\n
+               title python:axis_group.tooltip">\n
+            <!-- title of the current group-->\n
+            <a tal:attributes="href python:axis_group.info_title.link;\n
+               id python:axis_group.name + \'_info\'">\n
+              <tal:block tal:content="python:axis_group.info_title.title" />\n
+            </a>\n
+          </div>\n
+          <!-- depth of the current group -->\n
+          <div tal:repeat="depth python:range(axis_group.depth)"\n
+               tal:attributes="id python: axis_group.name + \'_depth_\' + str(depth)">\n
+          </div>\n
         </tal:block>\n
-      </tal:block>\n
-    </select>\n
-\n
-    <tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
-      <b tal:replace="nothing"> next page exists </b>\n
-      <input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
-        tal:attributes="src string:${address}/images/1rightarrowv.png;\n
-          name string:${address}/nextPage:method"/>\n
-    </tal:block>\n
-  </td>\n
-\n
-  <td>\n
-    <tal:block tal:repeat="nb python:range(8)">\n
-      &nbsp;\n
-    </tal:block>\n
-    <tal:block tal:condition="python:planning.main_axis == planning.Y">\n
-      <tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
-    </tal:block>\n
-    <tal:block tal:condition="python:planning.main_axis != planning.Y">\n
-      <tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
-    </tal:block>\n
-    <tal:block tal:repeat="nb python:range(1)">\n
-      &nbsp;\n
-    </tal:block>\n
-  </td>\n
-  <td>\n
-\n
-    <!-- processing zoom level select -->\n
-    <select name="zoom_level" title="Change Zoom Level" size="1"\n
-            onChange=""\n
-            tal:attributes="onChange string:submitAction(this.form,\'${address}/setZoomLevel\')">\n
-      <tal:block tal:condition="python:not basic.field.get_value(\'use_date_zoom\')">\n
-        <tal:block tal:repeat="current_zoom_level python:[0.1,0.25,0.5,1,2,3,4,8,12,16,32,64]">\n
-          <tal:block tal:condition="python:current_zoom_level==basic.secondary_axis_info[\'zoom_level\']">\n
-            <b tal:replace="nothing"> current zoom level is selected </b>\n
-            <option selected="selected" value="None"\n
-                  tal:attributes="value python:current_zoom_level"\n
-                  tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
+        <tal:condition tal:condition="python:axis==planning.X">\n
+          <tal:block tal:define="global previous_src string:${address}/images/1leftarrowv.png;\n
+                     global next_src string:${address}/images/1rightarrowv.png">\n
+          </tal:block>\n
+        </tal:condition>\n
+        <tal:condition tal:condition="python:axis==planning.Y">\n
+          <tal:block tal:define="global previous_src string:${address}/images/1toparrow.png;\n
+                     global next_src string:${address}/images/1bottomarrow.png">\n
+          </tal:block>\n
+        </tal:condition>\n
+        <!-- widgets of the current axis -->\n
+        <tal:block tal:condition="python:axis==planning.main_axis">\n
+          <!-- current axis is main axis-->\n
+          <tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
+            <!-- previous page exists -->\n
+            <input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
+                   tal:attributes="src previous_src;\n
+                   name string:${address}/previousPage:method;\n
+                   id python:axis.name + \'_previous\'" />\n
           </tal:block>\n
-          <tal:block tal:condition="python:current_zoom_level!=basic.secondary_axis_info[\'zoom_level\']">\n
-            <b tal:replace="nothing"> current zoom level is not selected </b>\n
-            <option value="None"\n
-                  tal:attributes="value python:current_zoom_level"\n
-                  tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
+          <tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
+            <!-- next page exists -->\n
+            <input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
+                   tal:attributes="src next_src;\n
+                   name string:${address}/nextPage:method;\n
+                   id python:axis.name + \'_next\'" />\n
           </tal:block>\n
+          <!-- inserting depth widget -->\n
+          <div tal:condition= "python:axis==planning.X"\n
+               tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
+               selection_name python:basic.field.get_value(\'selection_name\')"\n
+               tal:attributes="id python:axis.name + \'_depth\'">\n
+            <a tal:repeat="unfold_level python:range(0,4)"\n
+               tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
+               tal:content="structure python:str(unfold_level) + \'&lt;br&gt;\'">\n
+              0\n
+            </a>\n
+          </div>\n
+          <div tal:condition= "python:axis==planning.Y"\n
+               tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
+               selection_name python:basic.field.get_value(\'selection_name\')"\n
+               tal:attributes="id python:axis.name + \'_depth\'">\n
+            <a tal:repeat="unfold_level python:range(0,4)"\n
+               tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
+               tal:content="structure python:str(unfold_level) + \'&nbsp;\'">\n
+              0\n
+            </a>\n
+          </div>\n
         </tal:block>\n
-      </tal:block>\n
-      <tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')">\n
-        <!-- Defining Date Zoom Level -->\n
-          <!-- XXX This part has to be improved -->\n
-          <tal:block tal:repeat="current_zoom_level python:[ [i.getTitle() , i.getIntIndex() ] for i in context.portal_categories.zoom.contentValues(sort_on=\'int_index\') ]">\n
-            <tal:block tal:condition="python:current_zoom_level[1]==basic.secondary_axis_info[\'zoom_level\']">\n
-              <b tal:replace="nothing"> current zoom level is selected </b>\n
-              <option selected="selected" value="None"\n
-                  tal:attributes="value python:current_zoom_level[1]"\n
-                  i18n:translate="" i18n:domain="ui"\n
-                  tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
-            </tal:block>\n
-            <tal:block tal:condition="python:current_zoom_level[1]!=basic.secondary_axis_info[\'zoom_level\']">\n
-              <b tal:replace="nothing"> current zoom level is not selected </b>\n
-              <option value="None"\n
-                    tal:attributes="value python:current_zoom_level[1]"\n
-                    i18n:translate="" i18n:domain="ui"\n
-                    tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
-            </tal:block>\n
+        <tal:block tal:condition="python:axis==planning.secondary_axis">\n
+          <!-- Zoom page-->\n
+          <!-- tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=0" -->\n
+          <!-- previous page exists -->\n
+          <input type="image" src="/images/1leftarrowv.png" title="Previous Zoom Page" name="" border="0"\n
+                 tal:attributes="src previous_src;\n
+                 name string:${address}/previousZoom:method;\n
+                 id python:axis.name + \'_previous\'" />\n
+          <!-- /tal:block -->\n
+          <!--  tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=(basic.secondary_axis_info[\'zoom_level\'] - 1) and basic.secondary_axis_info[\'zoom_level\'] > 1" -->\n
+          <!-- next page exists -->\n
+          <input type="image" src="/images/1rightarrowv.png" title="Next Zoom Page" name="" border="0"\n
+                 tal:attributes="src next_src;\n
+                 name string:${address}/nextZoom:method;\n
+                 id python:axis.name + \'_next\'" />\n
+          <!-- /tal:block -->\n
         </tal:block>\n
-      </tal:block>\n
-    </select>\n
-    <tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')"\n
-           tal:define="form_id python:\'%s\' % (basic.form.id);\n
-                            selection_name python:basic.field.get_value(\'selection_name\');\n
-                            zoom_level python:basic.secondary_axis_info[\'zoom_level\'];\n
-                            today python:\'%s/%s/%s\' % (str(DateTime().year()), str(DateTime().month()),str(DateTime().day()))">\n
-       <a tal:attributes="href python: \'%s/setZoomLevel?form_id=%s&list_selection_name=%s&zoom_date_start=%s\'\n
-                                           % (context.absolute_url(), form_id,selection_name,today)">\n
-        <img src="/images/jump.png" title="Jump to Current Day" name="JumpToCurrentDay" \n
-             tal:attributes="src string:${address}/images/jump.png;" />\n
-      </a>  \n
-     </tal:block> \n
-  </td>\n
-  </tr>\n
-</table>\n
-\n
-<!-- div class="planning_box" -->\n
-<!-- planning structure (axis and group representation)-->\n
-<div tal:repeat="axis python:(planning.main_axis,planning.secondary_axis)"\n
-     tal:attributes="id python:axis.name">\n
- <!-- groups of the current axis-->\n
- <tal:block tal:repeat="axis_group python:axis.axis_group">\n
-   <div tal:attributes="id python:axis_group.name;\n
-                      title python:axis_group.tooltip">\n
-    <!-- title of the current group-->\n
-    <a tal:attributes="href python:axis_group.info_title.link;\n
-                        id python:axis_group.name + \'_info\'">\n
-        <tal:block tal:content="python:axis_group.info_title.title" />\n
-    </a>\n
-   </div>\n
-\n
-   <!-- depth of the current group -->\n
-   <div tal:repeat="depth python:range(axis_group.depth)"\n
-        tal:attributes="id python: axis_group.name + \'_depth_\' + str(depth)">\n
-   </div>\n
- </tal:block>\n
-\n
-  <tal:condition tal:condition="python:axis==planning.X">\n
-    <tal:block tal:define="global previous_src string:${address}/images/1leftarrowv.png;\n
-                           global next_src string:${address}/images/1rightarrowv.png">\n
-    </tal:block>\n
-  </tal:condition>\n
-  <tal:condition tal:condition="python:axis==planning.Y">\n
-    <tal:block tal:define="global previous_src string:${address}/images/1toparrow.png;\n
-                           global next_src string:${address}/images/1bottomarrow.png">\n
-    </tal:block>\n
-  </tal:condition>\n
-\n
-  <!-- widgets of the current axis -->\n
-  <tal:block tal:condition="python:axis==planning.main_axis">\n
-    <!-- current axis is main axis-->\n
-    <tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
-      <!-- previous page exists -->\n
-      <input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
-        tal:attributes="src previous_src;\n
-                        name string:${address}/previousPage:method;\n
-                        id python:axis.name + \'_previous\'"/>\n
-    </tal:block>\n
-    <tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
-      <!-- next page exists -->\n
-      <input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
-         tal:attributes="src next_src;\n
-                         name string:${address}/nextPage:method;\n
-                         id python:axis.name + \'_next\'"/>\n
-    </tal:block>\n
-\n
-    <!-- inserting depth widget -->\n
-    <div tal:condition= "python:axis==planning.X"\n
-         tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
-                     selection_name python:basic.field.get_value(\'selection_name\')"\n
-         tal:attributes="id python:axis.name + \'_depth\'">\n
-      <a tal:repeat="unfold_level python:range(0,4)"\n
-          tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
-          tal:content="structure python:str(unfold_level) + \'&lt;br&gt;\'">\n
-          0\n
-      </a>\n
-    </div>\n
-\n
-    <div tal:condition= "python:axis==planning.Y"\n
-         tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
-                     selection_name python:basic.field.get_value(\'selection_name\')"\n
-         tal:attributes="id python:axis.name + \'_depth\'">\n
-      <a tal:repeat="unfold_level python:range(0,4)"\n
-          tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
-          tal:content="structure python:str(unfold_level) + \'&nbsp;\'">\n
-          0\n
-      </a>\n
-    </div>\n
-\n
-  </tal:block>\n
-  <tal:block tal:condition="python:axis==planning.secondary_axis">\n
-    <!-- Zoom page-->\n
-    <!-- tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=0" -->\n
-      <!-- previous page exists -->\n
-      <input type="image" src="/images/1leftarrowv.png" title="Previous Zoom Page" name="" border="0"\n
-         tal:attributes="src previous_src;\n
-                         name string:${address}/previousZoom:method;\n
-                         id python:axis.name + \'_previous\'"/>\n
-    <!-- /tal:block -->\n
-    <!--  tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=(basic.secondary_axis_info[\'zoom_level\'] - 1) and basic.secondary_axis_info[\'zoom_level\'] > 1" -->\n
-      <!-- next page exists -->\n
-      <input type="image" src="/images/1rightarrowv.png" title="Next Zoom Page" name="" border="0"\n
-         tal:attributes="src next_src;\n
-                         name string:${address}/nextZoom:method;\n
-                         id python:axis.name + \'_next\'"/>\n
-    <!-- /tal:block -->\n
-  </tal:block>\n
-</div>\n
-\n
-<!-- planning content-->\n
-<div class="planning_content">\n
-  <!-- display main axis lines -->\n
-  <tal:block tal:repeat="axis_group python:planning.main_axis.axis_group">\n
-       <div tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
-       <b tal:replace="nothing">\n
-       <!-- display main axis sub_lines if necessary --></b>\n
-       <tal:block tal:condition="python:axis_group.axis_element_number > 1">\n
-         <div tal:repeat="axis_element_number python:range(axis_group.axis_element_number)[1:]"\n
-              tal:attributes="id python:axis_group.name + \'_line_\' + str(axis_element_number)">\n
-         </div>\n
-       </tal:block>\n
-\n
-  </tal:block>\n
-\n
-  <!-- display secondary axis lines -->\n
-  <div tal:repeat="axis_group python:planning.secondary_axis.axis_group"\n
-       tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
-\n
-  <!-- display blocks -->\n
-  <tal:block tal:repeat="block python:planning.content">\n
-    <div tal:condition="python:block.property_dict[\'stat\']== 0"\n
-        tal:attributes="id python:block.name;\n
-                        ondblclick string:showGrips();\n
-                        title python:block.title;\n
-                        style python:\'text-align:center\'">\n
-      <tal:block tal:condition="python:block.zone == 1">\n
-      <tal:block tal:repeat="area python:block.info.keys()">\n
-        <tal:block tal:define="info_area python:area.split(\'_\')[1]">\n
-             <!-- tal:attributes="id python:info_area"> <! python:block.name + \'_\' + area"-->\n
-          <tal:block tal:condition="python:block.info[area].info != \'\'">\n
-            <tal:block tal:condition="python:info_area!=\'center\'">\n
-              <a tal:condition="python:block.info[area].info != \'__\'"\n
-                tal:content="python:block.info[area].info"\n
-                tal:attributes="href python:block.info[area].link;\n
-                                class python:\'planning_box_\' + info_area">\n
-              </a>\n
-              \n
-              <a tal:condition="python:block.info[area].info == \'__\'"\n
-                tal:attributes="href python:block.info[area].link;\n
-                                class python:\'planning_box_\' + info_area">\n
-                <img tal:attributes="src python:basic.context.getUrl() + \'/images/question.png\'"\n
-                    height="15" width="15">\n
-              </a>\n
-            </tal:block>\n
-            <tal:block tal:condition="python:info_area==\'center\'" >\n
-              <div tal:attributes="class python:\'planning_box_\' + info_area">\n
-              <a tal:condition="python:block.info[area].info != \'__\'"\n
-                tal:content="python:block.info[area].info"\n
-                tal:attributes="href python:block.info[area].link">\n
-              </a>\n
-              <a tal:condition="python:block.info[area].info == \'__\'"\n
-                tal:attributes="href python:block.info[area].link"\n
-                tal:content="python:\'.\'">\n
-                <!-- not used any more\n
-                <img tal:attributes="src python:basic.here.getUrl() + \'/images/question.png\'"\n
-                    height="15" width="15">\n
-                -->\n
-              </a>\n
-              </div>\n
-            </tal:block>\n
+      </div>\n
+      <!-- planning content-->\n
+      <div class="planning_content">\n
+        <!-- display main axis lines -->\n
+        <tal:block tal:repeat="axis_group python:planning.main_axis.axis_group">\n
+          <div tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
+          <b tal:replace="nothing">\n
+            <!-- display main axis sub_lines if necessary --></b>\n
+          <tal:block tal:condition="python:axis_group.axis_element_number &gt; 1">\n
+            <div tal:repeat="axis_element_number python:range(axis_group.axis_element_number)[1:]"\n
+                 tal:attributes="id python:axis_group.name + \'_line_\' + str(axis_element_number)">\n
+            </div>\n
           </tal:block>\n
         </tal:block>\n
-      </tal:block>\n
-      </tal:block>\n
-    </div>\n
-    <div tal:condition="python:block.property_dict[\'stat\']== 1"\n
-         tal:attributes="id python:block.name;\n
-                         title python:block.title">\n
+        <!-- display secondary axis lines -->\n
+        <div tal:repeat="axis_group python:planning.secondary_axis.axis_group"\n
+             tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
+        <!-- display blocks -->\n
+        <tal:block tal:repeat="block python:planning.content">\n
+          <div tal:condition="python:block.property_dict[\'stat\']== 0"\n
+               tal:attributes="id python:block.name;\n
+               ondblclick string:showGrips();\n
+               title python:block.title;\n
+               style python:\'text-align:center\'">\n
+            <tal:block tal:condition="python:block.zone == 1">\n
+              <tal:block tal:repeat="area python:block.info.keys()">\n
+                <tal:block tal:define="info_area python:area.split(\'_\')[1]">\n
+                  <!-- tal:attributes="id python:info_area"> <! python:block.name + \'_\' + area"-->\n
+                  <tal:block tal:condition="python:block.info[area].info != \'\'">\n
+                    <tal:block tal:condition="python:info_area!=\'center\'">\n
+                      <a tal:condition="python:block.info[area].info != \'__\'"\n
+                         tal:content="python:block.info[area].info"\n
+                         tal:attributes="href python:block.info[area].link;\n
+                         class python:\'planning_box_\' + info_area">\n
+                      </a>\n
+                      <a tal:condition="python:block.info[area].info == \'__\'"\n
+                         tal:attributes="href python:block.info[area].link;\n
+                         class python:\'planning_box_\' + info_area">\n
+                        <img tal:attributes="src python:basic.context.getUrl() + \'/images/question.png\'"\n
+                             height="15" width="15" />\n
+                      </a>\n
+                    </tal:block>\n
+                    <tal:block tal:condition="python:info_area==\'center\'">\n
+                      <div tal:attributes="class python:\'planning_box_\' + info_area">\n
+                        <a tal:condition="python:block.info[area].info != \'__\'"\n
+                           tal:content="python:block.info[area].info"\n
+                           tal:attributes="href python:block.info[area].link">\n
+                        </a>\n
+                        <a tal:condition="python:block.info[area].info == \'__\'"\n
+                           tal:attributes="href python:block.info[area].link"\n
+                           tal:content="python:\'.\'">\n
+                          <!-- not used any more\n
+                               &lt;img tal:attributes="src python:basic.here.getUrl() + \'/images/question.png\'"\n
+                               height="15" width="15" /&gt;\n
+                               -->\n
+                        </a>\n
+                      </div>\n
+                    </tal:block>\n
+                  </tal:block>\n
+                </tal:block>\n
+              </tal:block>\n
+            </tal:block>\n
+          </div>\n
+          <div tal:condition="python:block.property_dict[\'stat\']== 1"\n
+               tal:attributes="id python:block.name;\n
+               title python:block.title">\n
+          </div>\n
+        </tal:block>\n
+      </div>\n
+      <!-- generic div used for redimensionning-->\n
+      <div id="top" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
+      <div id="right" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
+      <div id="bottom" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
+      <div id="left" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
+      <!-- declaring DTML properties -->\n
+      <tal:block tal:replace="structure python:context.planning_dhtml(planning=planning)" />\n
+      <!--/div-->\n
     </div>\n
   </tal:block>\n
-</div>\n
-\n
-<!-- generic div used for redimensionning-->\n
-<div id="top" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
-<div id="right" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
-<div id="bottom" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
-<div id="left" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
-\n
-<!-- declaring DTML properties -->\n
-<tal:block tal:replace="structure python:context.planning_dhtml(planning=planning)"/>\n
-\n
-<!--/div-->\n
-</div>\n
 </tal:block>\n
 
 
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/quad_form_view.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/quad_form_view.xml
index dc29686ce2082fb0f8e7a7cf49151b84eb917bcd..37c12c2aa30d13b268dfbbfe9a7792967552d086 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/quad_form_view.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/quad_form_view.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,85 +51,66 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-<tal:block metal:use-macro="here/view_main/macros/master">\n
-  <tal:block metal:fill-slot="main">\n
-    <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
-                          dummy python: request.set(\'here\', here);\n
-                          left_group python: form.get_fields_in_group(\'left\');\n
-                          right_group python: form.get_fields_in_group(\'right\');\n
-                          center_left_group python: form.get_fields_in_group(\'center_left\');\n
-                          center_right_group python: form.get_fields_in_group(\'center_right\');\n
-                          bottom_group python: form.get_fields_in_group(\'bottom\');\n
-                          field_render nocall: here/field_render/macros/field_render">\n
-      <tal:block tal:condition="preferred_html_style_developper_mode">\n
-        <tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
-      </tal:block>\n
-      <div tal:condition="python: len(left_group) > 0 or len(right_group) > 0"\n
-           class="top_group">\n
-        <fieldset tal:condition="python: len(left_group) > 0"\n
-                  class="left">\n
-          <tal:block tal:repeat="field left_group">\n
-            <tal:block metal:use-macro="field_render" />\n
-          </tal:block>\n
-        </fieldset>\n
-        <fieldset tal:condition="python: len(right_group) > 0"\n
-                  class="right">\n
-          <tal:block tal:repeat="field right_group">\n
-            <tal:block metal:use-macro="field_render" />\n
-          </tal:block>\n
-        </fieldset>\n
-        <p class="clear"></p>\n
-      </div>\n
-      <div tal:condition="python: len(center_left_group) > 0 or len(center_right_group) > 0"\n
-           class="top_group">\n
-        <fieldset tal:condition="python: len(center_left_group) > 0"\n
-             class="left">\n
-          <tal:block tal:repeat="field center_left_group">\n
-            <tal:block metal:use-macro="field_render" />\n
-          </tal:block>\n
-        </fieldset>\n
-        <fieldset tal:condition="python: len(center_right_group) > 0"\n
-             class="right">\n
-          <tal:block tal:repeat="field center_right_group">\n
+  <tal:block metal:use-macro="here/view_main/macros/master">\n
+    <tal:block metal:fill-slot="main">\n
+      <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
+                 dummy python: request.set(\'here\', here);\n
+                 left_group python: form.get_fields_in_group(\'left\');\n
+                 right_group python: form.get_fields_in_group(\'right\');\n
+                 center_left_group python: form.get_fields_in_group(\'center_left\');\n
+                 center_right_group python: form.get_fields_in_group(\'center_right\');\n
+                 bottom_group python: form.get_fields_in_group(\'bottom\');\n
+                 field_render nocall: here/field_render/macros/field_render">\n
+        <tal:block tal:condition="preferred_html_style_developper_mode">\n
+          <tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
+        </tal:block>\n
+        <div tal:condition="python: len(left_group) > 0 or len(right_group) > 0"\n
+          class="top_group">\n
+          <fieldset tal:condition="python: len(left_group) > 0"\n
+            class="left">\n
+            <tal:block tal:repeat="field left_group">\n
+              <tal:block metal:use-macro="field_render" />\n
+            </tal:block>\n
+          </fieldset>\n
+          <fieldset tal:condition="python: len(right_group) > 0"\n
+            class="right">\n
+            <tal:block tal:repeat="field right_group">\n
+              <tal:block metal:use-macro="field_render" />\n
+            </tal:block>\n
+          </fieldset>\n
+          <p class="clear"></p>\n
+        </div>\n
+        <div tal:condition="python: len(center_left_group) > 0 or len(center_right_group) > 0"\n
+          class="top_group">\n
+          <fieldset tal:condition="python: len(center_left_group) > 0"\n
+            class="left">\n
+            <tal:block tal:repeat="field center_left_group">\n
+              <tal:block metal:use-macro="field_render" />\n
+            </tal:block>\n
+          </fieldset>\n
+          <fieldset tal:condition="python: len(center_right_group) > 0"\n
+            class="right">\n
+            <tal:block tal:repeat="field center_right_group">\n
+              <tal:block metal:use-macro="field_render" />\n
+            </tal:block>\n
+          </fieldset>\n
+          <p class="clear"></p>\n
+        </div>\n
+        <fieldset tal:condition="python: len(bottom_group) > 0"\n
+          class="center">\n
+          <tal:block tal:repeat="field python: form.get_fields_in_group(\'bottom\')">\n
             <tal:block metal:use-macro="field_render" />\n
           </tal:block>\n
+          <p class="clear"></p>\n
         </fieldset>\n
-        <p class="clear"></p>\n
-      </div>\n
-      <fieldset tal:condition="python: len(bottom_group) > 0"\n
-                class="center">\n
-        <tal:block tal:repeat="field python: form.get_fields_in_group(\'bottom\')">\n
-            <tal:block metal:use-macro="field_render" />\n
-        </tal:block>\n
-        <p class="clear"></p>\n
-      </fieldset>\n
+      </tal:block>\n
     </tal:block>\n
   </tal:block>\n
-</tal:block>
+</tal:block>\n
+
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/relation_form.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/relation_form.xml
index e7f20e1a0ce11f0ea34028d219a5f72c53b85732..6b77fa0f8ef0d8af945c9b8dd6d284ff1c9c0fac 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/relation_form.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/relation_form.xml
@@ -51,34 +51,14 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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="local_parameter_list local_parameter_list | python: {};\n
-                         dummy python: local_parameter_list.update({\'field_id\': request[\'field_id\'], \'form_pickle\': request[\'form_pickle\'], \'form_signature\': request[\'form_signature\']});">\n
-    <tal:block metal:use-macro="here/form_dialog/macros/master" />\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block tal:define="local_parameter_list local_parameter_list | python: {};\n
+               dummy python: local_parameter_list.update({\'field_id\': request[\'field_id\'], \'form_pickle\': request[\'form_pickle\'], \'form_signature\': request[\'form_signature\']});">\n
+      <tal:block metal:use-macro="here/form_dialog/macros/master" />\n
+    </tal:block>\n
   </tal:block>\n
 </tal:block>\n
 
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/report_view.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/report_view.xml
index 31e034e7876481ebf481362486e2d7e460d9b5dd..14945c0bf8b7306577fd2c13ab4ec5e703acbe88 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/report_view.xml
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/report_view.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,47 +51,27 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
--->\n
-</tal:block>\n
-<tal:block tal:define="title string:${template/title_or_id} - ${here/Title}">\n
-  <tal:block  metal:use-macro="here/view_main/macros/master">\n
-    <tal:block metal:fill-slot="main">\n
-      <tal:block metal:use-macro="here/form_render/macros/master" />\n
-      <tal:block tal:define="portal_object here/getPortalObject">\n
-        <tal:block tal:repeat="report_item report_method">\n
-          <tal:block tal:define="here python: report_item.getObject(portal_object);\n
-                                 dummy python: report_item.pushReport(portal_object)">\n
-            <span tal:condition="report_item/getTitle"\n
-                  tal:content="report_item/getTitle"\n
-                  tal:attributes="class string:report_title_level_${report_item/getLevel}"/>\n
-            <tal:block tal:condition="report_item/getFormId">\n
-              <tal:block tal:define="form python:getattr(here,report_item.getFormId())" >\n
-                <tal:block metal:use-macro="here/form_render/macros/master" />\n
+  <tal:block tal:define="title string:${template/title_or_id} - ${here/Title}">\n
+    <tal:block  metal:use-macro="here/view_main/macros/master">\n
+      <tal:block metal:fill-slot="main">\n
+        <tal:block metal:use-macro="here/form_render/macros/master" />\n
+        <tal:block tal:define="portal_object here/getPortalObject">\n
+          <tal:block tal:repeat="report_item report_method">\n
+            <tal:block tal:define="here python: report_item.getObject(portal_object);\n
+                       dummy python: report_item.pushReport(portal_object)">\n
+              <span tal:condition="report_item/getTitle"\n
+                    tal:content="report_item/getTitle"\n
+                    tal:attributes="class string:report_title_level_${report_item/getLevel}" />\n
+              <tal:block tal:condition="report_item/getFormId">\n
+                <tal:block tal:define="form python:getattr(here,report_item.getFormId())" >\n
+                  <tal:block metal:use-macro="here/form_render/macros/master" />\n
+                </tal:block>\n
               </tal:block>\n
+              <tal:block tal:define="dummy python:report_item.popReport(portal_object)" />\n
             </tal:block>\n
-            <tal:block tal:define="dummy python:report_item.popReport(portal_object)" />\n
           </tal:block>\n
         </tal:block>\n
       </tal:block>\n
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 287047dce7351d859aab01733b700b55c2bcbcbe..26dbeafa0c0044e17612e7fa005e772d3b8841d8 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
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,90 +51,70 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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/dialog_main/macros/master">\n
-    <tal:block metal:fill-slot="main">\n
-      <div class="dialog_box">\n
-        <tal:block tal:condition="preferred_html_style_developper_mode">\n
-          <tal:block metal:use-macro="developper_shortcut_render/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
-                        listbox python:base_form.Form_getListbox();\n
-                        columns python:listbox.get_value(\'all_columns\');\n
-                        global row_index python:0;\n
-                        global row_keys python:[\'None\'];\n
-                        all_columns python: [(\'None\',\'\')] + columns;">\n
-          <div tal:repeat="item items"\n
-              class="field">\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
-                               tal:define="sort_type python:((len(item) > 2) and item[2]) or \'\'">\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
-              <tal:block tal:replace="structure python:form.sort_type.render(sort_type, request)" />\n
-            </div>\n
-            <p class="clear"></p>\n
-          </div>\n
-          <div tal:repeat="item columns"\n
-              class="field">\n
-            <tal:block tal:condition="python: item[0] not in row_keys">\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
+        <div class="dialog_box">\n
+          <tal:block tal:condition="preferred_html_style_developper_mode">\n
+            <tal:block metal:use-macro="developper_shortcut_render/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
+               listbox python:base_form.Form_getListbox();\n
+               columns python:listbox.get_value(\'all_columns\');\n
+               global row_index python:0;\n
+               global row_keys python:[\'None\'];\n
+               all_columns python: [(\'None\',\'\')] + columns;">\n
+            <div tal:repeat="item items"\n
+                 class="field">\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
+              <div class="input" tal:attributes="id string:sort_${row_index}"\n
+                   tal:define="sort_type python:((len(item) &gt; 2) and item[2]) or \'\'">\n
                 <select name="field_sort_on">\n
-                  <option selected="selected" value="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_type.render(\'\', request)" />\n
+                <tal:block tal:replace="structure python:form.sort_order.render(item[1], request)" />\n
+                <tal:block tal:replace="structure python:form.sort_type.render(sort_type, request)" />\n
               </div>\n
-            </tal:block>\n
-            <p class="clear"></p>\n
+              <p class="clear"></p>\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"></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
+                  <tal:block tal:replace="structure python:form.sort_type.render(\'\', request)" />\n
+                </div>\n
+              </tal:block>\n
+              <p class="clear"></p>\n
+            </div>\n
           </div>\n
         </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/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 e92c1008759e2ce83f441755b8a2985770dd0b71..2f4edd6cfbc845289acbe14160bcb0e4c8668277 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
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PageTemplates.ZopePageTemplate</string>
-          <string>ZopePageTemplate</string>
-        </tuple>
-        <none/>
+        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -54,127 +51,102 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+  <tal:block tal:replace="nothing">\n
 <!--\n
-Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
-\n
 IDEAS:\n
  - Add callbacks to ERP5Form object (selection ?) to gather needed fields -> put them in http_parameter_list.\n
 -->\n
-</tal:block>\n
-<tal:block metal:define-macro="master">\n
-<tal:block tal:define="global_definitions_macros here/global_definitions/macros">\n
-<tal:block metal:use-macro="global_definitions_macros/header_definitions"/>\n
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n
-  <head>\n
-    <base tal:attributes="href python: \'%s/\' % (url, )"/>\n
-    <meta name="generator" content="ERP5"/>\n
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n
-    <meta http-equiv="Content-Script-Type" content="text/javascript" />\n
-    <meta http-equiv="Content-Style-Type" content="text/css" />\n
-    <title tal:define="title title | string:ERP5"\n
-           tal:content="python: \'%s | %s\' % (title, here.getPortalObject().title_or_id())"/>\n
-    <tal:block tal:repeat="css css_list">\n
-      <link tal:attributes="href css" type="text/css" rel="stylesheet"/>\n
-    </tal:block>\n
-\n
-    <tal:block tal:replace="nothing">\n
-      <!-- Render each field\'s css and javascript. -->\n
-    </tal:block>\n
-    <tal:block tal:condition="python: form is not None">\n
-      <tal:block tal:repeat="group python: [x for x in form.get_groups(include_empty=0) if x != \'hidden\']">\n
-        <tal:block tal:repeat="field python: form.get_fields_in_group(group)">\n
-\n
-          <tal:block tal:define="css python: field.render_css(REQUEST=request)">\n
-            <style tal:condition="python: css is not None" \n
-                   tal:content="css"\n
-                   tal:attributes="type python:\'text/css\'">\n
-            </style>\n
+  </tal:block>\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block tal:define="global_definitions_macros here/global_definitions/macros">\n
+      <tal:block metal:use-macro="global_definitions_macros/header_definitions" />\n
+      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
+      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n
+        <head>\n
+          <base tal:attributes="href python: \'%s/\' % (url, )" />\n
+          <meta name="generator" content="ERP5" />\n
+          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
+          <meta http-equiv="Content-Script-Type" content="text/javascript" />\n
+          <meta http-equiv="Content-Style-Type" content="text/css" />\n
+          <title tal:define="title title | string:ERP5"\n
+                 tal:content="python: \'%s | %s\' % (title, here.getPortalObject().title_or_id())"></title>\n
+          <tal:block tal:repeat="css css_list">\n
+            <link tal:attributes="href css" type="text/css" rel="stylesheet" />\n
           </tal:block>\n
-\n
-          <tal:block tal:define="dummy python: js_list.extend(field.get_javascript_list(REQUEST=request))" />\n
-\n
-        </tal:block>\n
-      </tal:block>\n
-    </tal:block>\n
-\n
-\n
-    <!-- May need to remove duplicates -->\n
-    <tal:block tal:repeat="js js_list">\n
-      <script tal:attributes="src js" type="text/javascript"></script>\n
-    </tal:block>\n
-\n
-    <link rel="icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon"/>\n
-    <link rel="shortcut icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon"/>\n
-\n
-  </head>\n
-  <body>\n
-    <form id="main_form"\n
-          tal:attributes="enctype form/Form_getEnctype | enctype | nothing;\n
-                          action url;\n
-                          method python:str(path(\'form/method | string:post\')).lower()">\n
-      <fieldset id="hidden_fieldset">\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 | nothing"\n
-               id="hidden_button" type="submit" value="dummy"\n
-               tal:attributes="name string:${form_action}:method" />\n
-        <tal:block metal:use-macro="global_definitions_macros/http_definitions"/>\n
-      </fieldset>\n
-      <tal:block metal:define-slot="layout">\n
-      <div id="bars">\n
-        <div id="main_bar"\n
-             tal:content="structure here/ERP5Site_renderCachedNavigationBox">\n
-        </div>\n
-        <div id="context_bar">\n
-          <tal:block metal:define-slot="context_bar"/>\n
-        </div>\n
-      </div>\n
-      <div id="status">\n
-        <div id="breadcrumb">\n
-          <tal:block tal:repeat="item here/breadcrumbs">\n
-            <a tal:condition="python: repeat[\'item\'].index < 2" tal:attributes="href item/url" tal:content="item/title" i18n:translate="" i18n:domain="ui"/>\n
-            <a tal:condition="python: repeat[\'item\'].index >= 2" tal:attributes="href item/url" tal:content="item/title"/>\n
-            /\n
+          <tal:block tal:replace="nothing">\n
+            <!-- Render each field\'s css and javascript. -->\n
           </tal:block>\n
-        </div>\n
-        <div id="logged_in_as">\n
-          <tal:block tal:condition="not: here/portal_membership/isAnonymousUser">\n
-            <span class="logged_txt" i18n:translate="" i18n:domain="ui">Logged In as :</span>\n
-            <tal:block tal:replace="python:here.portal_membership.getAuthenticatedMember().getUserName()"/>\n
+          <tal:block tal:condition="python: form is not None">\n
+            <tal:block tal:repeat="group python: [x for x in form.get_groups(include_empty=0) if x != \'hidden\']">\n
+              <tal:block tal:repeat="field python: form.get_fields_in_group(group)">\n
+                <tal:block tal:define="css python: field.render_css(REQUEST=request)">\n
+                  <style tal:condition="python: css is not None"\n
+                         tal:content="css"\n
+                         tal:attributes="type python:\'text/css\'">\n
+                  </style>\n
+                </tal:block>\n
+                <tal:block tal:define="dummy python: js_list.extend(field.get_javascript_list(REQUEST=request))" />\n
+              </tal:block>\n
+            </tal:block>\n
           </tal:block>\n
-        </div>\n
-        <p class="clear"></p>\n
-        <div tal:content="request/portal_status_message | nothing" id="transition_message"/>\n
-      </div>\n
-      <div id="master">\n
-        <tal:block metal:define-slot="main"/>\n
-      </div>\n
-      </tal:block>\n
-    </form>\n
-  </body>\n
-</html>\n
-</tal:block>\n
+          <!-- May need to remove duplicates -->\n
+          <tal:block tal:repeat="js js_list">\n
+            <script tal:attributes="src js" type="text/javascript"></script>\n
+          </tal:block>\n
+          <link rel="icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon" />\n
+          <link rel="shortcut icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon" />\n
+        </head>\n
+        <body>\n
+          <form id="main_form"\n
+                tal:attributes="enctype form/Form_getEnctype | enctype | nothing;\n
+                action url;\n
+                method python:str(path(\'form/method | string:post\')).lower()">\n
+            <fieldset id="hidden_fieldset">\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 | nothing"\n
+                     id="hidden_button" type="submit" value="dummy"\n
+                     tal:attributes="name string:${form_action}:method" />\n
+              <tal:block metal:use-macro="global_definitions_macros/http_definitions" />\n
+            </fieldset>\n
+            <tal:block metal:define-slot="layout">\n
+              <div id="bars">\n
+                <div id="main_bar"\n
+                     tal:content="structure here/ERP5Site_renderCachedNavigationBox">\n
+                </div>\n
+                <div id="context_bar">\n
+                  <tal:block metal:define-slot="context_bar" />\n
+                </div>\n
+              </div>\n
+              <div id="status">\n
+                <div id="breadcrumb">\n
+                  <tal:block tal:repeat="item here/breadcrumbs">\n
+                    <a tal:condition="python: repeat[\'item\'].index &lt; 2" tal:attributes="href item/url" tal:content="item/title" i18n:translate="" i18n:domain="ui" />\n
+                    <a tal:condition="python: repeat[\'item\'].index &gt;= 2" tal:attributes="href item/url" tal:content="item/title" />\n
+                    /\n
+                  </tal:block>\n
+                </div>\n
+                <div id="logged_in_as">\n
+                  <tal:block tal:condition="not: here/portal_membership/isAnonymousUser">\n
+                    <span class="logged_txt" i18n:translate="" i18n:domain="ui">Logged In as :</span>\n
+                    <tal:block tal:replace="python:here.portal_membership.getAuthenticatedMember().getUserName()" />\n
+                  </tal:block>\n
+                </div>\n
+                <p class="clear"></p>\n
+                <div tal:content="request/portal_status_message | nothing" id="transition_message" />\n
+              </div>\n
+              <div id="master">\n
+                <tal:block metal:define-slot="main" />\n
+              </div>\n
+            </tal:block>\n
+          </form>\n
+        </body>\n
+      </html>\n
+    </tal:block>\n
+  </tal:block>\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 fdfdf41a490c7635126ea5329a15e7f7ab553642..3959e39ca912a5eff906bc689d2c43295849cbba 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
@@ -51,91 +51,71 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<tal:block tal:replace="nothing"\n
-           xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n
            xmlns:metal="http://xml.zope.org/namespaces/metal"\n
            xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
-<!--\n
-Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
-                   Vincent Pelletier <vincent@nexedi.com>\n
-                   Christophe Dumez <christophe@nexedi.com>\n
-\n
-This program is Free Software; you can redistribute it and/or\n
-modify it under the terms of the GNU General Public License\n
-as published by the Free Software Foundation; either version 2\n
-of the License, or (at your option) any later version.\n
-\n
-This program is distributed in the hope that it will be useful,\n
-but WITHOUT ANY WARRANTY; without even the implied warranty of\n
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n
-GNU General Public License for more details.\n
-\n
-You should have received a copy of the GNU General Public License\n
-along with this program; if not, write to the Free Software\n
-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\n
-   tal:define="object_uid           here/getUid | nothing;\n
-               object_path          here/getPath | nothing;\n
-               form                 nocall: form | nothing;\n
-               form_id              form/id | template/title_or_id | nothing;\n
-               form_action          python: form and form.action not in (\'\', None) and here.portal_membership.checkPermission(\'Modify portal content\', here) and form.action or nothing;\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
-               title                python: \'%s - %s\' % (here.Base_translateString(template.title_or_id()), here.title_or_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:condition="python: (not is_web_mode or editable_mode) and len(actions)">\n
-            <button tal:condition="python: not is_web_mode and form_action"\n
-                    type="submit" class="save" title="Save"\n
-                    tal:attributes="name string:${form_action}:method;\n
-                                    onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
-                    i18n:attributes="title" i18n:domain="ui">\n
-              <span class="image"></span>\n
-              <span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
-            </button>\n
-            <ul>\n
-              <li tal:repeat="action actions"\n
-                  tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
-                <a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
-                   i18n:translate="" i18n:domain="ui"><span tal:content="action/name">action_name</span></a>\n
-              </li>\n
-            </ul>\n
-          </div>\n
-          <div tal:attributes="class python: editable_mode and \'content editable\' or \'content\'">\n
-            <tal:block metal:define-slot="main"/>\n
-          </div>\n
-          <div class="bottom_actions"\n
-               tal:condition="python: is_web_mode and editable_mode and len(actions) and form_action">\n
-            <input type="hidden" name="form_action" value=""\n
-                   tal:attributes="value form_action"/>\n
-            <input type="hidden" name="edit_document_url" value=""\n
-                   tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), form_id)"/>\n
-            <input type="hidden" name="view_document_url" value=""\n
-                   tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), \'view\')"/>\n
-            <button type="submit" class="saveView" title="Save &amp; View"\n
-                    name="Base_editAndViewAsWeb:method"\n
-                    i18n:attributes="title" i18n:domain="ui">\n
-              <span class="image"></span>\n
-              <span class="description" i18n:translate="" i18n:domain="ui">Save &amp; View</span>\n
-            </button>\n
-            <button type="submit" class="saveEdit" title="Save &amp; Edit"\n
-                    name="Base_editAndEditAsWeb:method"\n
-                    i18n:attributes="title" i18n:domain="ui">\n
-              <span class="image"></span>\n
-              <span class="description" i18n:translate="" i18n:domain="ui">Save &amp; Edit</span>\n
-            </button>\n
+  <tal:block metal:define-macro="master">\n
+    <tal:block\n
+              tal:define="object_uid           here/getUid | nothing;\n
+              object_path          here/getPath | nothing;\n
+              form                 nocall: form | nothing;\n
+              form_id              form/id | template/title_or_id | nothing;\n
+              form_action          python: form and form.action not in (\'\', None) and here.portal_membership.checkPermission(\'Modify portal content\', here) and form.action or nothing;\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
+              title                python: \'%s - %s\' % (here.Base_translateString(template.title_or_id()), here.title_or_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:condition="python: (not is_web_mode or editable_mode) and len(actions)">\n
+              <button tal:condition="python: not is_web_mode and form_action"\n
+                      type="submit" class="save" title="Save"\n
+                      tal:attributes="name string:${form_action}:method;\n
+                      onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
+                      i18n:attributes="title" i18n:domain="ui">\n
+                <span class="image"></span>\n
+                <span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
+              </button>\n
+              <ul>\n
+                <li tal:repeat="action actions"\n
+                    tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
+                  <a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
+                     i18n:translate="" i18n:domain="ui"><span tal:content="action/name">action_name</span></a>\n
+                </li>\n
+              </ul>\n
+            </div>\n
+            <div tal:attributes="class python: editable_mode and \'content editable\' or \'content\'">\n
+              <tal:block metal:define-slot="main" />\n
+            </div>\n
+            <div class="bottom_actions"\n
+                 tal:condition="python: is_web_mode and editable_mode and len(actions) and form_action">\n
+              <input type="hidden" name="form_action" value=""\n
+                     tal:attributes="value form_action" />\n
+              <input type="hidden" name="edit_document_url" value=""\n
+                     tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), form_id)" />\n
+              <input type="hidden" name="view_document_url" value=""\n
+                     tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), \'view\')" />\n
+              <button type="submit" class="saveView" title="Save &amp; View"\n
+                      name="Base_editAndViewAsWeb:method"\n
+                      i18n:attributes="title" i18n:domain="ui">\n
+                <span class="image"></span>\n
+                <span class="description" i18n:translate="" i18n:domain="ui">Save &amp; View</span>\n
+              </button>\n
+              <button type="submit" class="saveEdit" title="Save &amp; Edit"\n
+                      name="Base_editAndEditAsWeb:method"\n
+                      i18n:attributes="title" i18n:domain="ui">\n
+                <span class="image"></span>\n
+                <span class="description" i18n:translate="" i18n:domain="ui">Save &amp; Edit</span>\n
+              </button>\n
+            </div>\n
           </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 f6939121e941668f712ffc336db9eafd08e21041..fd2c50df5b81b91051e5d53668d429475d5cacef 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/bt/change_log
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/bt/change_log
@@ -1,3 +1,6 @@
+2007-11-21 kazuhiko
+* Make Page Templates themselves valid XML (except DOCTYPE definition).
+
 2007-11-14 yusei
 * Fix tab style on konqueror
 
diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision b/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision
index 66e214a2e83a511dd6fc04f540b10077a1faaca4..1fde7522a771ec6f5d8c6237abe49bac75f547c8 100644
--- a/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision
+++ b/product/ERP5/bootstrap/erp5_xhtml_style/bt/revision
@@ -1 +1 @@
-432
\ No newline at end of file
+434
\ No newline at end of file