From e8052923fb4024c506f07f09efacc810369b8259 Mon Sep 17 00:00:00 2001
From: Sven Franck <sven.franck@nexedi.com>
Date: Mon, 14 Dec 2015 09:30:37 +0000
Subject: [PATCH] erp5_km_ui_test: extend forum/discussion thread tests for
 predecessor handling (independent of km)

---
 .../testPredecessorCreateDiscussionThread.xml | 580 ++++++++++++++++++
 ...PredecessorCreateDiscussionThreadReset.xml |  85 +++
 .../erp5_km_ui_test/Base_isDialogMode.xml     |  70 +++
 .../erp5_km_ui_test/Base_isListMode.xml       |  70 +++
 .../erp5_km_ui_test/Base_isWebSectionMode.xml |  70 +++
 .../WebSection_getDiscussionApplicablity.xml  |  83 +++
 ...bSection_getLatestDiscussionThreadList.xml |  77 +++
 .../WebSection_viewDiscussionThreadForm.xml   | 139 +++++
 .../listbox.xml                               | 237 +++++++
 .../listbox_author.xml                        | 129 ++++
 .../listbox_last_post.xml                     | 133 ++++
 .../listbox_modification_date.xml             | 144 +++++
 .../listbox_response_count.xml                | 133 ++++
 .../listbox_title.xml                         | 133 ++++
 .../your_add_new_thread_link.xml              | 137 +++++
 ...WebSite_getDefaultForumWebSectionValue.xml |  76 +++
 .../erp5_km_ui_test/discussions_renderer.xml  |  66 ++
 .../predecessor_test_container_layout.xml     | 203 ++++++
 .../discussions.xml                           | 322 ++++++++++
 .../subsection_list.xml                       | 162 +++++
 .../predecessor_test_content_layout.xml       | 196 ++++++
 .../discussions.xml                           | 322 ++++++++++
 .../subsection_list.xml                       |  90 +++
 .../predecessor_test_macros_library.xml       | 102 +++
 .../erp5_km_ui_test/test_template_web.xml     | 172 ++++++
 bt5/erp5_km_ui_test/bt/change_log             |   3 +
 26 files changed, 3934 insertions(+)
 create mode 100644 bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThread.xml
 create mode 100644 bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThreadReset.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isDialogMode.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isListMode.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isWebSectionMode.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getDiscussionApplicablity.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getLatestDiscussionThreadList.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_author.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_last_post.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_modification_date.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_response_count.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_title.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/your_add_new_thread_link.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSite_getDefaultForumWebSectionValue.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/discussions_renderer.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/discussions.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/subsection_list.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/discussions.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/subsection_list.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_macros_library.xml
 create mode 100644 bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/test_template_web.xml

diff --git a/bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThread.xml b/bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThread.xml
new file mode 100644
index 0000000000..3c5b385bb7
--- /dev/null
+++ b/bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThread.xml
@@ -0,0 +1,580 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <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_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+      xmlns:metal="http://xml.zope.org/namespaces/metal">\n
+<head>\n
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
+<title tal:content="template/getId"/>\n
+</head>\n
+<body>\n
+<table cellpadding="1" cellspacing="1" border="1">\n
+<thead>\n
+<tr><td rowspan="1" colspan="3" tal:content="template/getId"/></tr>\n
+</thead><tbody>\n
+\n
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />\n
+\n
+<!-- Clean Up -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThreadReset</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Reset Successfully.</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/Zuite_waitForActivities</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertTextPresent</td>\n
+  <td>Done.</td>\n
+  <td></td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Initialize -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/predecessor_test_web_site</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Sections</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyText</td>\n
+  <td>//legend[@class="group_title"]</td>\n
+  <td>Sections</td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Discussion</td>\n
+  <td></td>\n
+</tr>\n
+<!-- create a new discussion thread, without explicit predecessor -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Discussion Threads</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Post Message</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Body</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>field_your_title</td>\n
+  <td>Thread 1</td>\n
+</tr>\n
+<!--\n
+<tr>\n
+  <td>type</td>\n
+  <td>//textarea[@class="ace_text-input"]</td>\n
+  <td>Post 1</td>\n
+</tr>\n
+-->\n
+<!-- verify predecessor hidden input is not set DONT WORK \n
+<tr>\n
+  <td>assertValue</td>\n
+  <td>field_your_predecessor</td>\n
+  <td></td>\n
+</tr>\n
+-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//button[@id=\'dialog_submit_button\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>New discussion thread created</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>New discussion thread created</td>\n
+  <td></td>\n
+</tr>\n
+<!-- make sure we are still on the form_list view -->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Discussion Threads</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/Zuite_waitForActivities</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertTextPresent</td>\n
+  <td>Done.</td>\n
+  <td></td>\n
+</tr>\n
+\n
+\n
+<!-- add discussion thread to section with default page -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/predecessor_test_web_site</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Sections</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Section with default</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Test Section Default Content</td>\n
+  <td></td>\n
+</tr>\n
+<!-- make sure related discussions are shown -->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>New</td>\n
+  <td></td>\n
+</tr>\n
+<!-- add thread 2 to this page, it should be visible here and in discussions, nowhere else -->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=New</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Body</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>field_your_title</td>\n
+  <td>Thread 2</td>\n
+</tr>\n
+<!--\n
+<tr>\n
+  <td>type</td>\n
+  <td>//textarea[@class="ace_text-input"]</td>\n
+  <td>Post 2</td>\n
+</tr>\n
+-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//button[@id=\'dialog_submit_button\']</td>\n
+  <td></td>\n
+</tr>\n
+<!-- test we go back to where we came from -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Test Section Default Content</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Test Section Default Content</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/Zuite_waitForActivities</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertTextPresent</td>\n
+  <td>Done.</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- add discsussion thread to web page  -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/predecessor_test_web_site</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Sections</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Section with content page</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Description</td>\n
+  <td></td>\n
+</tr>\n
+<!-- make sure document is shown -->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>predecessor_test_documentation_page</td>\n
+  <td></td>\n
+</tr>\n
+<!-- go to this page and create a new discussion thread -->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Predecessor Test Documentation</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Some documentation</td>\n
+  <td></td>\n
+</tr>\n
+<!-- check discussions are shown -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>New</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>New</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=New</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Body</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>field_your_title</td>\n
+  <td>Thread 3</td>\n
+</tr>\n
+<!--\n
+<tr>\n
+  <td>type</td>\n
+  <td>//textarea[@class="ace_text-input"]</td>\n
+  <td>Post 3</td>\n
+</tr>\n
+-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//button[@id=\'dialog_submit_button\']</td>\n
+  <td></td>\n
+</tr>\n
+<!-- test we go back to where we came from -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Some documentation</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Some documentation</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/Zuite_waitForActivities</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertTextPresent</td>\n
+  <td>Done.</td>\n
+  <td></td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- threads created and redirects verified. now check the correct threads show -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/predecessor_test_web_site</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Sections</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyText</td>\n
+  <td>//legend[@class="group_title"]</td>\n
+  <td>Sections</td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Discussion</td>\n
+  <td></td>\n
+</tr>\n
+<!-- discussions should include all 3 discussions -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Discussion Threads</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Thread 1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Thread 2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Thread 3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/predecessor_test_web_site</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Sections</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyText</td>\n
+  <td>//legend[@class="group_title"]</td>\n
+  <td>Sections</td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Section No Default</td>\n
+  <td></td>\n
+</tr>\n
+<!-- no default page, no discussions -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>should not display discussions</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>should not display discussions</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextNotPresent</td>\n
+  <td>New</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- section with default should only display thread 2 -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/predecessor_test_web_site</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Sections</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyText</td>\n
+  <td>//legend[@class="group_title"]</td>\n
+  <td>Sections</td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Section with default</td>\n
+  <td></td>\n
+</tr>\n
+<!-- check thread 2 and not 1 and 3 -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Thread 2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Thread 2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextNotPresent</td>\n
+  <td>Thread 1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextNotPresent</td>\n
+  <td>Thread 3</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- section with default should only display thread 2 -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/predecessor_test_web_site</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Sections</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyText</td>\n
+  <td>//legend[@class="group_title"]</td>\n
+  <td>Sections</td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Section with content page</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Description</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>predecessor_test_documentation_page</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>link=Predecessor Test Documentation</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Some documentation</td>\n
+  <td></td>\n
+</tr>\n
+<!-- check thread 3 and not 1 and 2 are shown -->\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Thread 3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Thread 3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextNotPresent</td>\n
+  <td>Thread 1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextNotPresent</td>\n
+  <td>Thread 2</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Clean Up -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThreadReset</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Reset Successfully.</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/Zuite_waitForActivities</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertTextPresent</td>\n
+  <td>Done.</td>\n
+  <td></td>\n
+  <td></td>\n
+</tr>\n
+\n
+<tal:block metal:use-macro="here/KMZuite_CommonTemplate/macros/deleteKMWebSite" />\n
+\n
+</tbody></table>\n
+</body>\n
+</html>
+
+]]></unicode> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testPredecessorCreateDiscussionThread</string> </value>
+        </item>
+        <item>
+            <key> <string>output_encoding</string> </key>
+            <value> <string>utf-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <unicode></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThreadReset.xml b/bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThreadReset.xml
new file mode 100644
index 0000000000..1da47e1671
--- /dev/null
+++ b/bt5/erp5_km_ui_test/PathTemplateItem/portal_tests/erp5_km_zuite/forum/testPredecessorCreateDiscussionThreadReset.xml
@@ -0,0 +1,85 @@
+<?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>""" \n
+  Make sure the objects about to be created do not exist already\n
+"""\n
+\n
+portal = context.getPortalObject()\n
+\n
+for x in portal.discussion_thread_module.objectValues():\n
+  if x.getTitle() == "Thread 1":\n
+    portal.discussion_thread_module.deleteContent(x.getId())\n
+  if x.getTitle() == "Thread 2":\n
+    portal.discussion_thread_module.deleteContent(x.getId())\n
+  if x.getTitle() == "Thread 3":\n
+    portal.discussion_thread_module.deleteContent(x.getId())\n
+\n
+return \'Reset Successfully.\'\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testPredecessorCreateDiscussionThreadReset</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Reset before running</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isDialogMode.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isDialogMode.xml
new file mode 100644
index 0000000000..6f95784873
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isDialogMode.xml
@@ -0,0 +1,70 @@
+<?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>"""\n
+  Is dialog mode?\n
+"""\n
+return context.REQUEST.get(\'dialog_mode\', False)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Base_isDialogMode</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isListMode.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isListMode.xml
new file mode 100644
index 0000000000..e3daec6089
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isListMode.xml
@@ -0,0 +1,70 @@
+<?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>"""\n
+  Is list mode?\n
+"""\n
+return context.REQUEST.get(\'list_mode\', False)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Base_isListMode</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isWebSectionMode.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isWebSectionMode.xml
new file mode 100644
index 0000000000..5b0ed0459e
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/Base_isWebSectionMode.xml
@@ -0,0 +1,70 @@
+<?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>"""\n
+  Is a web section rendered. (it\'s not a list_mode or dialog_mode\')\n
+"""\n
+return context.REQUEST.get(\'current_web_section\') is not None\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Base_isWebSectionMode</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getDiscussionApplicablity.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getDiscussionApplicablity.xml
new file mode 100644
index 0000000000..01c9273746
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getDiscussionApplicablity.xml
@@ -0,0 +1,83 @@
+<?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>"""\n
+    Determine whether the document being viewed is a web page or the default\n
+    page of a web section. If it is, related discussions can be displayed\n
+"""\n
+document = context\n
+portal_type = document.getPortalType()\n
+\n
+if portal_type == \'Web Page\':\n
+  return context.getReference()\n
+  \n
+if portal_type == \'Web Section\':\n
+  default_page = document.getAggregate()\n
+  if default_page is not None:\n
+    default_page_document = context.restrictedTraverse(default_page)\n
+    return default_page_document.getReference()\n
+\n
+return None\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>WebSection_getDiscussionApplicablity</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getLatestDiscussionThreadList.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getLatestDiscussionThreadList.xml
new file mode 100644
index 0000000000..96d9f29518
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_getLatestDiscussionThreadList.xml
@@ -0,0 +1,77 @@
+<?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>"""\n
+  Return latest discussion threads on a web site public forum.\n
+"""\n
+\n
+reference = context.WebSection_getDiscussionApplicablity()\n
+\n
+if reference is not None:\n
+  document = context.restrictedTraverse(reference)\n
+  return document.getPredecessorRelatedValueList()\n
+\n
+return []\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>WebSection_getLatestDiscussionThreadList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm.xml
new file mode 100644
index 0000000000..835ef90db7
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ERP5 Form" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string>Base_doSelect</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>edit_order</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left</string>
+                <string>right</string>
+                <string>center</string>
+                <string>bottom</string>
+                <string>hidden</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>bottom</string> </key>
+                    <value>
+                      <list>
+                        <string>listbox</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>center</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value>
+                      <list>
+                        <string>listbox_author</string>
+                        <string>listbox_last_post</string>
+                        <string>listbox_modification_date</string>
+                        <string>listbox_response_count</string>
+                        <string>listbox_title</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left</string> </key>
+                    <value>
+                      <list>
+                        <string>your_add_new_thread_link</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>WebSection_viewDiscussionThreadForm</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>ERP5Site_viewDiscussionThreadForm</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>form_list</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Discussion Thread Form</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>update_action_title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox.xml
new file mode 100644
index 0000000000..5034ef63d3
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>columns</string>
+                <string>editable_columns</string>
+                <string>list_method</string>
+                <string>search</string>
+                <string>search_columns</string>
+                <string>sort</string>
+                <string>sort_columns</string>
+                <string>title</string>
+                <string>url_columns</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Title</string>
+                        </tuple>
+                        <tuple>
+                          <string>author</string>
+                          <string>Author</string>
+                        </tuple>
+                        <tuple>
+                          <string>response_count</string>
+                          <string>Responses</string>
+                        </tuple>
+                        <tuple>
+                          <string>last_post</string>
+                          <string>Latest Post</string>
+                        </tuple>
+                        <tuple>
+                          <string>modification_date</string>
+                          <string>Modification Date</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>modification_date</string>
+                          <string>modification_date</string>
+                        </tuple>
+                        <tuple>
+                          <string>author</string>
+                          <string>Author</string>
+                        </tuple>
+                        <tuple>
+                          <string>last_post</string>
+                          <string>Latest Post</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_view_mode_listbox</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>list_method</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>search</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>search_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Title</string>
+                        </tuple>
+                        <tuple>
+                          <string>modification_date</string>
+                          <string>Modification Date</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>sort</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>modification_date</string>
+                          <string>descending</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>sort_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>modification_date</string>
+                          <string>Modification Date</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Discussion Threads</string> </value>
+                </item>
+                <item>
+                    <key> <string>url_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Listbox_getDiscussionThreadPermanentUrl</string>
+                        </tuple>
+                        <tuple>
+                          <string>modification_date</string>
+                          <string></string>
+                        </tuple>
+                        <tuple>
+                          <string>response_count</string>
+                          <string></string>
+                        </tuple>
+                        <tuple>
+                          <string>author</string>
+                          <string></string>
+                        </tuple>
+                        <tuple>
+                          <string>last_post</string>
+                          <string></string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="Method" module="Products.Formulator.MethodField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>method_name</string> </key>
+            <value> <string>WebSection_getDiscussionThreadList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_author.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_author.xml
new file mode 100644
index 0000000000..3a492ca58e
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_author.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>editable</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_author</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_label_field</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Post Author</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: cell.DiscussionThread_viewAuthorWidget()</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_last_post.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_last_post.xml
new file mode 100644
index 0000000000..a8cc4b254e
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_last_post.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>editable</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_last_post</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_label_field</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Latest Author Post</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: cell.DiscussionThread_viewLastPostWidget()</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_modification_date.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_modification_date.xml
new file mode 100644
index 0000000000..dfa6996344
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_modification_date.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>editable</string>
+                <string>enabled</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_modification_date</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <none/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_date</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Modification Date</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>cell/getModificationDate</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_response_count.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_response_count.xml
new file mode 100644
index 0000000000..e93abe2285
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_response_count.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>editable</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_response_count</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_label_field</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Responses</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: \'%s\' %len(cell.objectIds())</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_title.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_title.xml
new file mode 100644
index 0000000000..6af4133979
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/listbox_title.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>editable</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_title</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_label_field</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Title</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: cell.getTitle()</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/your_add_new_thread_link.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/your_add_new_thread_link.xml
new file mode 100644
index 0000000000..648e141173
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSection_viewDiscussionThreadForm/your_add_new_thread_link.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>css_class</string>
+                <string>default</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_add_new_thread_link</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_editor_field</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Editor Field</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+python:\'\'\'<div class="discussion-thread-button"><a class="share-button post-message" href="WebSection_viewCreateNewDiscussionThreadDialog?cancel_url=%s"><div><span>Post Message</span></div></a><a class="share-button rss-feed" href="WebSection_viewLatestDiscussionPostListAsRSS"><div><span>RSS Feed</span></div></a>   </div>\'\'\' %(here.absolute_url())
+
+]]></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSite_getDefaultForumWebSectionValue.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSite_getDefaultForumWebSectionValue.xml
new file mode 100644
index 0000000000..c5120c49f3
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/WebSite_getDefaultForumWebSectionValue.xml
@@ -0,0 +1,76 @@
+<?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>"""\n
+  Every site should have one forum as theme uses it to get latest discussion posts.\n
+  Forum relative url is taken from web site configuration itself.\n
+  \n
+  This is all arbitrary...\n
+"""\n
+\n
+website = context.getWebSiteValue()\n
+default_forum_url = website.getProperty(\'default_forum_relative_url\', \'discussions\')\n
+return website.restrictedTraverse(default_forum_url, None)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>WebSite_getDefaultForumWebSectionValue</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/discussions_renderer.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/discussions_renderer.xml
new file mode 100644
index 0000000000..8b43ac203e
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/discussions_renderer.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <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_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<tal:block metal:use-macro="here/predecessor_test_macros_library/macros/discussions"/>
+
+]]></unicode> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>discussions_renderer</string> </value>
+        </item>
+        <item>
+            <key> <string>output_encoding</string> </key>
+            <value> <string>utf-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <unicode></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout.xml
new file mode 100644
index 0000000000..3860a1283a
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout.xml
@@ -0,0 +1,203 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ERP5 Form" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>edit_order</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left column transparent (Logo)</string>
+                <string>left column (Navigation)</string>
+                <string>left column (Sections)</string>
+                <string>left column (Contents)</string>
+                <string>left column (Search)</string>
+                <string>left column (Debug)</string>
+                <string>right column (News)</string>
+                <string>right column (Toolbox)</string>
+                <string>right column (Highlight)</string>
+                <string>right column (Action)</string>
+                <string>footer</string>
+                <string>discussions</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>discussions</string> </key>
+                    <value>
+                      <list>
+                        <string>discussions</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>footer</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Contents)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Debug)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Navigation)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Search)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Sections)</string> </key>
+                    <value>
+                      <list>
+                        <string>subsection_list</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column transparent (Logo)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right column (Action)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right column (Highlight)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right column (News)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right column (Toolbox)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>predecessor_test_container_layout</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>erp5_web_default_layout</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>test_template_web</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>5</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Default Container Layout</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>update_action_title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/discussions.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/discussions.xml
new file mode 100644
index 0000000000..802b6ee94b
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/discussions.xml
@@ -0,0 +1,322 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="EditorField" module="Products.ERP5Form.EditorField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>discussions</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>line_too_long</string> </key>
+                    <value> <string>A line was too long.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_long</string> </key>
+                    <value> <string>You entered too many characters.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_many_lines</string> </key>
+                    <value> <string>You entered too many lines.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>text_editor</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>text_editor</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string>hidden_label</string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <int>5</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>text_editor</string> </key>
+                    <value> <string>text_area</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>discussions</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <int>40</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>here/discussions_renderer</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: here!=here.getWebSiteValue() and not here.Base_isListMode() and not here.Base_isDialogMode() and here.\t WebSection_getDiscussionApplicablity() is not None</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/subsection_list.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/subsection_list.xml
new file mode 100644
index 0000000000..370dbe2387
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_container_layout/subsection_list.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>title</string>
+                <string>css_class</string>
+                <string>height</string>
+                <string>width</string>
+                <string>whitespace_preserve</string>
+                <string>default</string>
+                <string>enabled</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>subsection_list</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string>hidden_label</string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_text_content</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <int>5</int> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Subsections</string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <int>40</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>request/current_web_section/subsection_render</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python:len(request.get(\'current_web_section\', here).contentValues(portal_type=\'Web Section\'))</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout.xml
new file mode 100644
index 0000000000..d1b113f08f
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ERP5 Form" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>edit_order</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left column transparent (Logo)</string>
+                <string>left column (Navigation)</string>
+                <string>left column (Sections)</string>
+                <string>left column (Contents)</string>
+                <string>left column (Search)</string>
+                <string>left column (Debug)</string>
+                <string>right column (News)</string>
+                <string>right column (Toolbox)</string>
+                <string>right column (Highlight)</string>
+                <string>footer</string>
+                <string>discussions</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>discussions</string> </key>
+                    <value>
+                      <list>
+                        <string>discussions</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>footer</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Contents)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Debug)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Navigation)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Search)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column (Sections)</string> </key>
+                    <value>
+                      <list>
+                        <string>subsection_list</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left column transparent (Logo)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right column (Highlight)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right column (News)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right column (Toolbox)</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>predecessor_test_content_layout</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>erp5_web_default_layout</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>test_template_web</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>5</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Default Content Layout</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>update_action_title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/discussions.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/discussions.xml
new file mode 100644
index 0000000000..ba580a7d9c
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/discussions.xml
@@ -0,0 +1,322 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="EditorField" module="Products.ERP5Form.EditorField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>discussions</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>line_too_long</string> </key>
+                    <value> <string>A line was too long.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_long</string> </key>
+                    <value> <string>You entered too many characters.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_many_lines</string> </key>
+                    <value> <string>You entered too many lines.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>text_editor</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>text_editor</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string>hidden_label</string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <int>5</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>text_editor</string> </key>
+                    <value> <string>text_area</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>discussions</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <int>40</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>here/discussions_renderer</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>here!=here.getWebSiteValue() and here.isWebMode() and not here.isEditableMode() and and here.\t WebSection_getDiscussionApplicablity() is not None</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/subsection_list.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/subsection_list.xml
new file mode 100644
index 0000000000..82ee80e411
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_content_layout/subsection_list.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>subsection_list</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>subsection_list</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>erp5_web_layout</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_macros_library.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_macros_library.xml
new file mode 100644
index 0000000000..36d06e3675
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/predecessor_test_macros_library.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <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_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<tal:block metal:define-macro="discussions">\n
+  <div class="bottomPosts Discussions"\n
+       tal:define="web_site here/getWebSiteValue;\n
+                   absolute_url here/getAbsoluteUrl;\n
+                   relative_url here/getRelativeUrl;\n
+                   discussion_thread_section here/WebSite_getDefaultForumWebSectionValue;\n
+                   discussion_thread_list here/WebSection_getLatestDiscussionThreadList">\n
+    <h2>\n
+      <a title="Show more" tal:attributes="href string:${discussion_thread_section/absolute_url}">Discussions</a>\n
+      <a class="txtButn" title="Show more"\n
+         tal:attributes="href string:${discussion_thread_section/absolute_url}/WebSection_viewCreateNewDiscussionThreadDialog?cancel_url=${absolute_url}&amp;predecessor_url=${relative_url}">New</a>\n
+    </h2>\n
+    \n
+    <div class="row" tal:repeat="discussion_thread discussion_thread_list">\n
+      <tal:block tal:define="discussion_post discussion_thread/DiscussionThread_getLastPost;\n
+                             author_dict discussion_post/DiscussionPost_getAuthorDict;\n
+                             is_author_link_available python:author_dict[\'author_url\'] is not None;\n
+                             base_url python: \'%s/%s/%s\' %(web_site.absolute_url(), discussion_thread_section.getId(), discussion_thread.getReference())">\n
+     \n
+        <div class="date">\n
+          <span tal:replace="python: discussion_post.getModificationDate().strftime(\'%d-%m\')"/>\n
+          <span tal:content="python: discussion_post.getModificationDate().strftime(\'%Y\')"/>\n
+        </div>\n
+        <div class="text">\n
+          <h3>\n
+            <a title="Show post"\n
+              tal:attributes="href python: \'%s/view?list_start=%s&amp;reset=1#%s\' %(base_url, discussion_post.getId(), discussion_post.getUid())"\n
+              tal:content="discussion_post/getTitle"/> \n
+            <em>by <spam tal:replace="author_dict/author_title"/></em>\n
+          </h3>\n
+          <span tal:replace="structure python: discussion_post.getTextContent()"/>\n
+        </div>\n
+      </tal:block>\n
+    </div>\n
+    <div class="clear"></div>\n
+  </div>\n
+</tal:block>
+
+]]></unicode> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>predecessor_test_macros_library</string> </value>
+        </item>
+        <item>
+            <key> <string>output_encoding</string> </key>
+            <value> <string>utf-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <unicode></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/test_template_web.xml b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/test_template_web.xml
new file mode 100644
index 0000000000..455d1e48f3
--- /dev/null
+++ b/bt5/erp5_km_ui_test/SkinTemplateItem/portal_skins/erp5_km_ui_test/test_template_web.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <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_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<tal:block\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 tal:replace="nothing">\n
+  <!--\n
+  Copyright (c) 2006-2015 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
+  \n
+  <!doctype html>\n
+    <html>\n
+    <head>\n
+      <meta charset="utf-8">\n
+      <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n
+      <meta name="description" content="" />\n
+      <meta name="keywords" content="" />\n
+      <meta name="robots" content="index, follow" />\n
+      <meta http-equiv="X-UA-Compatible" content="IE=edge">\n
+      <title></title>\n
+    </head>\n
+    <body>\n
+      <tal:block metal:define-macro="master">\n
+        <tal:block tal:define="website here/getWebSiteValue;\n
+                               portal_path python:website.absolute_url();\n
+                               section here/getWebSectionValue;\n
+                               section_url section/absolute_url;\n
+                               current_url request/URL;\n
+                               current_main_section here/WebSite_getMainSection;\n
+                               editable request/editable_mode | python: 0;\n
+                               portal_status_message request/portal_status_message | python: None;\n
+                               list_mode list_mode | nothing;\n
+                               dialog_mode dialog_mode | nothing;\n
+                               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
+                               has_no_layout python: layout_form is None;\n
+                               dummy python: request.set(\'dialog_mode\', dialog_mode);\n
+                               dummy python: request.set(\'list_mode\', list_mode);\n
+                               aggregate python: has_no_layout or layout_form.Form_getGroupList([\'header\', \'left\', \'right\', \'footer\', \'discussions\']);\n
+                               aggregate python: ((aggregate is not has_no_layout) and dict(aggregate)) or {};\n
+                               discussions_area python:aggregate.get(\'discussions\',  []);\n
+                               global is_web_mode python: 1;\n
+                               global js_list python: [];\n
+                               global css_list_template python:[]">\n
+      \n
+          <tal:block metal:use-macro="here/template_erp5_xhtml_style/macros/master">\n
+            <tal:block metal:fill-slot="layout">\n
+              \n
+              <tal:block metal:use-macro="here/aggregate_render/macros/populate_request"/>\n
+      \n
+              <div class="main-container">\n
+                <div class="main clearfix">\n
+      \n
+                  <span class="portal_status_message" tal:content="portal_status_message" \n
+                        tal:condition="portal_status_message"/>\n
+        \n
+                  <div class="content wrappin">\n
+      \n
+                  <!-- Form is rendered here -->\n
+                  <tal:block metal:define-slot="main" />\n
+                    <tal:block tal:condition="python: layout_form is not None">\n
+      \n
+                      <tal:block tal:repeat="aggregate python: layout_form.Form_getGroupList([\'header\', \'left\', \'right\', \'footer\', \'discussions\'])"\n
+                                 tal:define="dummy python: request.set(\'editable_mode\', True);\n
+                                             dialog_mode dialog_mode | nothing;\n
+                                             dummy python: request.set(\'dialog_mode\', dialog_mode);\n
+                                             dummy python: request.set(\'list_mode\', list_mode);\n
+                                             dummy python: request.set(\'http_parameters\', http_parameters);\n
+                                             dummy python: request.set(\'actions\', actions);\n
+                                             dummy python: request.set(\'current_web_section\',\n
+                                                                       request.get(\'current_web_section\', here.getWebSectionValue()));\n
+                                             dummy python: request.set(\'current_web_document\',\n
+                                                                       request.get(\'current_web_document\', here));\n
+                                             dummy python: request.set(\'is_web_section_default_document\',\n
+                                                                       request.get(\'is_web_section_default_document\', 0));">\n
+                        <tal:block metal:use-macro="here/aggregate_render/macros/aggregate_render"/>\n
+                      </tal:block>\n
+                    </tal:block>\n
+                      \n
+                    <div class="clear"></div>\n
+                  </div>\n
+                </div> <!-- #main -->\n
+              </div> <!-- #main-container -->\n
+            </tal:block>\n
+          </tal:block>\n
+        </tal:block>\n
+      </tal:block>\n
+    </body>\n
+  </html>\n
+</tal:block>
+
+]]></unicode> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>test_template_web</string> </value>
+        </item>
+        <item>
+            <key> <string>output_encoding</string> </key>
+            <value> <string>utf-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <unicode></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/bt/change_log b/bt5/erp5_km_ui_test/bt/change_log
index fcf34a3ef4..e3d1790b65 100644
--- a/bt5/erp5_km_ui_test/bt/change_log
+++ b/bt5/erp5_km_ui_test/bt/change_log
@@ -1,3 +1,6 @@
+2015-12-09 sven
+* added tests for predecessor handling to display related discussions on web-pages or web-section/default pages
+
 2010-07-02 lucas
 * It is required to wait for activities after adding a new file. Improved testCreateNewFile and testMyDocumentsGadget.
 
-- 
2.30.9