diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpBuilderList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpBuilderList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f0ac0a02e1fb3b805337bae6173b0bbe9ea080f3
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpBuilderList.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for builder in sorted(context.getPortalObject().portal_deliveries.contentValues(),\n
+                  key=lambda x:x.getTitle()):\n
+  print builder.getId()\n
+  print "  Title: %s" % (builder.getTitle())\n
+  print "  Simulation Select Method: %s" % (builder.getSimulationSelectMethodId())\n
+  print "  Delivery Select Method: %s" % (builder.getDeliverySelectMethodId())\n
+  print "  After Generation Script: %s" % (builder.getDeliveryAfterGenerationScriptId())\n
+  print\n
+\n
+  for mg in sorted(builder.contentValues(), key=lambda x:x.getTitle()):\n
+    print builder.getId()\n
+    print " ", "\\n  ".join([x for x in (\n
+      "Id: %s" % mg.getId(),\n
+      "Title: %s" % mg.getTitle(),\n
+      "Type: %s" % mg.getPortalType(),\n
+      "Collect Order Group: %s" % mg.getCollectOrderGroup(),\n
+      "Tested Properties: %r" % mg.getTestedPropertyList(),\n
+      "Update Always: %r" % mg.isUpdateAlways(),\n
+\n
+      )])\n
+    print\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpBuilderList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpInstalledBusinessTemplateList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpInstalledBusinessTemplateList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..344a193ffc7d3513d6487a98a3bd8ab7851db475
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpInstalledBusinessTemplateList.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for business_template in sorted(context.getPortalObject().portal_templates.contentValues(portal_type=\'Business Template\'),\n
+                  key=lambda x:x.getTitle()):\n
+  if business_template.getInstallationState() == \'installed\':\n
+    print business_template.getTitle()\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpInstalledBusinessTemplateList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpOrderBuilderList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpOrderBuilderList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b83fd8cdb7494e43d259b4eaa5b4f6b9ba6f3651
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpOrderBuilderList.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for builder in sorted(context.getPortalObject().portal_orders.contentValues(),\n
+                  key=lambda x:x.getTitle()):\n
+  print builder.getId()\n
+  print "  Title: %s" % (builder.getTitle())\n
+  print "  Simulation Select Method: %s" % (builder.getSimulationSelectMethodId())\n
+  print "  Delivery Select Method: %s" % (builder.getDeliverySelectMethodId())\n
+  print "  After Generation Script: %s" % (builder.getDeliveryAfterGenerationScriptId())\n
+  print "  Delivery Module Before Building Script: %s" % (builder.getDeliveryModuleBeforeBuildingScriptId())\n
+  print\n
+\n
+  for mg in sorted(builder.contentValues(), key=lambda x:x.getTitle()):\n
+    print builder.getId()\n
+    print " ", "\\n  ".join([x for x in (\n
+      "Id: %s" % mg.getId(),\n
+      "Title: %s" % mg.getTitle(),\n
+      "Type: %s" % mg.getPortalType(),\n
+      "Collect Order Group: %s" % mg.getCollectOrderGroup(),\n
+      "Tested Properties: %r" % mg.getTestedPropertyList(),\n
+      "Update Always: %r" % mg.isUpdateAlways(),\n
+\n
+      )])\n
+    print\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpOrderBuilderList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeActionList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeActionList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ba996b6789acece38d29a3473574e8cf7473e9da
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeActionList.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for ti in sorted(context.getPortalObject().portal_types.contentValues(), key=lambda x:x.getId()):\n
+  for ai in sorted(ti.contentValues(portal_type=\'Action Information\'), key=lambda x:x.getReference()):\n
+    print ti.getId()\n
+    print " ", "\\n  ".join([x for x in (\n
+      "Reference: %s" % ai.getReference(),\n
+      "Title: %s" % ai.getTitle(),\n
+      "Action: %s" % ai.getActionText(),\n
+      "Icon: %s" % ai.getIconText(),\n
+      "Permission: %s" % ai.getActionPermission(),\n
+      "Action Type: %s" % ai.getActionType(),\n
+      "Visible: %s" % ai.getVisible(),\n
+      "Index: %s" % ai.getFloatIndex())])\n
+    print\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpPortalTypeActionList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ad3873fd733ecc1d761a4bccda4e47be9fb3071a
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeList.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for ti in sorted(context.getPortalObject().portal_types.contentValues(), key=lambda x:x.getId()):\n
+  print ti.getId()\n
+  print " ", "\\n  ".join([x for x in (\n
+    "Short Title: %s" % ti.getShortTitle(),\n
+    "Class: %s" % ti.getTypeClass(),\n
+    "Init Script: %s" % ti.getTypeInitScriptId(),\n
+    "Add Permission: %s" % ti.getTypeAddPermission(),\n
+    "Acquire Local Roles: %s" % ti.getTypeAcquireLocalRole(),\n
+    "Property Sheets: %r" % sorted(ti.getTypePropertySheetList()),\n
+    "Base Categories: %r" % sorted(ti.getTypeBaseCategoryList()),\n
+    "Allowed Content Types: %r" % sorted(ti.getTypeAllowedContentTypeList()),\n
+    "Hidden Content Types: %r" % sorted(ti.getTypeHiddenContentTypeList()),\n
+    "Searchable Property: %r" % sorted(ti.getSearchableTextPropertyIdList()),\n
+    "Searchable Method: %r" % sorted(ti.getSearchableTextMethodIdList()),\n
+    )])\n
+  print\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpPortalTypeList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeRoleList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeRoleList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6cfe92f826bb36a952490d474e63aa4e56ce61a1
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalTypeRoleList.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for ti in sorted(context.getPortalObject().portal_types.contentValues(), key=lambda x:x.getId()):\n
+  for ri in sorted(ti.contentValues(portal_type=\'Role Information\'), key=lambda x:(x.getTitle(), x.getLocalRolesGroupId(), x.getRoleBaseCategoryScriptId(), x.getRoleBaseCategoryList())):\n
+    print ti.getId()\n
+    print " ", "\\n  ".join([x for x in (\n
+      "Title: %s" % ri.getTitle(),\n
+      "Roles: %r" % ri.getRoleNameList(),\n
+      "Condition: %s" % ri.getConditionText(),\n
+      "Local Roles Group Id: %s" % ri.getLocalRolesGroupId(),\n
+      "Base Categories: %r" % ri.getRoleBaseCategoryList(),\n
+      "Base Category Script: %s" % ri.getRoleBaseCategoryScriptId(),\n
+      "Categories: %r" % ri.getRoleCategoryList() )])\n
+    print\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpPortalTypeRoleList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPropertySheetList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPropertySheetList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f1db679c98d0150f403a5445eb095fa543c9eb4d
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPropertySheetList.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for ps in sorted(context.getPortalObject().portal_property_sheets.contentValues(), key=lambda x:x.getId()):\n
+  for pd in sorted(ps.contentValues(), key=lambda x:x.getId()):\n
+    print ps.getId()\n
+    info_list = [\'id\', \'portal_type\', \'reference\']\n
+    std_prop_list = [\'elementary_type\', \'property_default\', \'storage_id\', \'multivaluated\', \'range\', \'preference\', \'read_permission\', \'write_permission\', \'translatable\', \'translation_domain\']\n
+    if pd.getPortalType() == \'Standard Property\':\n
+      info_list += std_prop_list\n
+    elif pd.getPortalType() == \'Acquired Property\':\n
+      info_list += std_prop_list + [ \'acquisition_portal_type\', \'content_acquired_property_id_list\', \'acquisition_accessor_id\', \'acquisition_copy_value\', \'alt_accessor_id_list\', \'content_portal_type\', \'content_translation_acquired_property_id_list\', \'acquisition_object_id_list\', \'acquisition_mask_value\', \'acquisition_base_category_list\',]\n
+    elif pd.getPortalType() == \'Category Property\':\n
+      info_list += []\n
+    elif pd.getPortalType() == \'TALES Constraint\':\n
+      info_list += [\'expression\'] + [p for p in pd.propertyIds() if p.startswith(\'message\')]\n
+    elif pd.getPortalType() in (\'Category Existence Constraint\', \'Category Existence Constraint\'):\n
+      info_list += [\'constraint_base_category_list\'] + [p for p in pd.propertyIds() if p.startswith(\'message\')]\n
+    elif pd.getPortalType() in (\'Category Membership State Constraint\', \'Acquired Category Membership State Constraint\'):\n
+      info_list += [\'membership_portal_type_list\', \'constraint_base_category_list\', \'workflow_state_list\', \'workflow_variable\'] + [p for p in pd.propertyIds() if p.startswith(\'message\')]\n
+\n
+    elif pd.getPortalType() in (\'Property Existence Constraint\', ):\n
+      info_list += [\'constraint_property_list\'] + [p for p in pd.propertyIds() if p.startswith(\'message\')]\n
+    elif pd.getPortalType() in (\'Content Existence Constraint\', ):\n
+      info_list += [\'constraint_portal_type\'] + [p for p in pd.propertyIds() if p.startswith(\'message\')]\n
+    elif pd.getPortalType().endswith(\'Constraint\'):\n
+      info_list += [] + [p for p in pd.propertyIds() if p.startswith(\'message\')]\n
+    else:\n
+      print "(not supported)",pd.getRelativeUrl(), pd.getPortalType()\n
+\n
+\n
+    print " ", "\\n  ".join([\'%s: %s\' % (prop, pd.getProperty(prop)) for prop in sorted(info_list)])\n
+    print\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpPropertySheetList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpRuleTesterList.xml b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpRuleTesterList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9447edebb944a09a8893f1b5cb70c89f5ef2dfc7
--- /dev/null
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpRuleTesterList.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>for rule in sorted(context.getPortalObject().portal_rules.contentValues(),\n
+                  key=lambda x:x.getTitle()):\n
+  if rule.getValidationState() != \'validated\':\n
+    continue\n
+  print rule.getId()\n
+  print "  Title: %s" % (rule.getTitle())\n
+  print "  Trade Phases: %r" % (rule.getTradePhaseList())\n
+  print "  Test Method Id: %s" % (rule.getTestMethodId())\n
+  print "  Membership Criteria: %r" % (rule.getMembershipCriterionBaseCategoryList())\n
+  print "  Membership Criterion Category: %r" % (rule.getMembershipCriterionCategoryList())\n
+  print\n
+\n
+  for tester in sorted(rule.contentValues(), key=lambda x:x.getTitle()):\n
+    print rule.getId()\n
+    print " ", "\\n  ".join([x for x in (\n
+      "Id: %s" % tester.getId(),\n
+      "Title: %s" % tester.getTitle(),\n
+      "Type: %s" % tester.getPortalType(),\n
+      "Updating: %s" % tester.isUpdatingProvider(),\n
+      "Divergence: %s" % tester.isDivergenceProvider(),\n
+      "Matching: %s" % tester.isMatchingProvider(),\n
+\n
+      "Test Method Id: %s" % tester.getTestMethodId(),\n
+      "Membership Criteria: %r" %\n
+        (tester.getMembershipCriterionBaseCategoryList()),\n
+      "Membership Criterion Category: %r" %\n
+        (tester.getMembershipCriterionCategoryList()),\n
+      )])\n
+    print\n
+\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_dumpRuleTesterList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>