Commit 95dbae14 authored by Ivan Tyagov's avatar Ivan Tyagov

Commit provided by FX code with minor customizations by Ivan (this is a work in progress)

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@34184 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 4ff1847a
No related merge requests found
......@@ -3,56 +3,68 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string>Accept this Translation</string> </value>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>actbox_url</string> </key>
<value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=accept_action</string> </value>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>after_script_name</string> </key>
<value> <string>accept</string> </value>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Accept the translation which was provided by the assigned translator.</string> </value>
<value> <string>Allow to edit the text content</string> </value>
</item>
<item>
<key> <string>guard</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>accept_action</string> </value>
<value> <string>view_edit</string> </value>
</item>
<item>
<key> <string>new_state_id</string> </key>
<value> <string></string> </value>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>Modify portal content</string>
</tuple>
</value>
</item>
<item>
<key> <string>script_name</string> </key>
<value> <string></string> </value>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>2.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Accept Translation</string> </value>
<value> <string>Edit</string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
......@@ -61,22 +73,15 @@
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.DCWorkflow.Guard</string>
<string>Guard</string>
</tuple>
<none/>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>roles</string> </key>
<value>
<tuple>
<string>Assignor</string>
</tuple>
</value>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/DiscussionPost_viewEditor</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -33,7 +33,9 @@
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
......@@ -77,7 +79,7 @@
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Folder_viewContentList</string> </value>
<value> <string>string:${object_url}/DiscussionModule_viewDiscussionThreadList</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -3,56 +3,70 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string>Finish Translation</string> </value>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_action</string>
</tuple>
</value>
</item>
<item>
<key> <string>actbox_url</string> </key>
<value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=translate_action</string> </value>
<key> <string>category</string> </key>
<value> <string>object_action</string> </value>
</item>
<item>
<key> <string>after_script_name</string> </key>
<value> <string>translate</string> </value>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Notify that the document was translated and that it must now be revised.</string> </value>
</item>
<item>
<key> <string>guard</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>translate_action</string> </value>
<value> <string>add_discussion_post</string> </value>
</item>
<item>
<key> <string>new_state_id</string> </key>
<value> <string></string> </value>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>Add portal content</string>
</tuple>
</value>
</item>
<item>
<key> <string>script_name</string> </key>
<value> <string></string> </value>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>3.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Finish Translation</string> </value>
<value> <string>Reply</string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
......@@ -61,23 +75,15 @@
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.DCWorkflow.Guard</string>
<string>Guard</string>
</tuple>
<none/>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>roles</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
</tuple>
</value>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/DiscussionPost_viewNewReplyDialog</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -29,11 +29,15 @@
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
......@@ -82,4 +86,20 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>python:object is not None and not object.isWebMode()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -3,56 +3,68 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string>Submit for review</string> </value>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_web_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>actbox_url</string> </key>
<value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=submit_action</string> </value>
<key> <string>category</string> </key>
<value> <string>object_web_view</string> </value>
</item>
<item>
<key> <string>after_script_name</string> </key>
<value> <string>submit</string> </value>
<key> <string>condition</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>guard</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>submit_action</string> </value>
<value> <string>web_view</string> </value>
</item>
<item>
<key> <string>new_state_id</string> </key>
<value> <string></string> </value>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>script_name</string> </key>
<value> <string>checkValidity</string> </value>
<key> <string>priority</string> </key>
<value> <float>2.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Submit</string> </value>
<value> <string>Web View</string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
......@@ -61,29 +73,15 @@
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.DCWorkflow.Guard</string>
<string>Guard</string>
</tuple>
<none/>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>expr</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>roles</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Owner</string>
</tuple>
</value>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/DiscussionThread_viewAsWeb</string> </value>
</item>
</dictionary>
</pickle>
......@@ -91,18 +89,15 @@
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<tuple>
<string>Products.CMFCore.Expression</string>
<string>Expression</string>
</tuple>
<none/>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>python:not here.Document_policyApplies(\'*/restricted\')</string> </value>
<value> <string>python:object is not None and object.isWebMode()</string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>forum_style_preferences</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>20.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Forum</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Preference_viewForumSettings</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -3,109 +3,121 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/>
<global name="Gadget" module="Products.ERP5Type.Document.Gadget"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<list>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</list>
</value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string>Request Translation</string> </value>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>actbox_url</string> </key>
<value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=request_action</string> </value>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>after_script_name</string> </key>
<value> <string>request</string> </value>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The Request Translation action is invoked to notify that a draft document needs to be translated. Usually, the draft document is a clone of the document in the original language.</string> </value>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>guard</string> </key>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>gadget_type/erp5_front</string>
<string>gadget_type/web_section</string>
<string>gadget_type/web_front</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Forum</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>request_action</string> </value>
<value> <string>erp5_forum</string> </value>
</item>
<item>
<key> <string>new_state_id</string> </key>
<value> <string></string> </value>
<key> <string>multiple_instances_allowed</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Gadget</string> </value>
</item>
<item>
<key> <string>script_name</string> </key>
<value> <string></string> </value>
<key> <string>render_type</string> </key>
<value> <string>asynchronous</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Request Translation</string> </value>
<value> <string>Forum</string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
<value> <int>1</int> </value>
<key> <string>view_form_id</string> </key>
<value> <string>ERP5Site_viewDiscussionThreadGadget</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.DCWorkflow.Guard</string>
<string>Guard</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>expr</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>roles</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Owner</string>
</tuple>
</value>
</item>
</dictionary>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<tuple>
<string>Products.CMFCore.Expression</string>
<string>Expression</string>
</tuple>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>python:not here.Document_policyApplies(\'*/restricted\')</string> </value>
</item>
</dictionary>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Change_bindings_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Change_cache_settings_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Change_permissions_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Copy_or_Move_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Delete_objects_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_FTP_access_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Manage_WebDAV_Locks_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Manage_properties_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Take_ownership_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_Undo_changes_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_View_management_screens_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_WebDAV_Lock_items_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_WebDAV_Unlock_items_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</value>
</item>
<item>
<key> <string>_WebDAV_access_Permission</string> </key>
<value>
<list>
<string>Manager</string>
</list>
</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_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> <string encoding="cdata"><![CDATA[
<?xml version="1.0" encoding="iso-8859-1"?>\n
<tal:block \n
xmlns:tal="http://xml.zope.org/namespaces/tal"\n
xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
i18n:domain="ui"\n
tal:define="line_list here/query;\n
label_list here/getLabelValueList;\n
real_context here/getContext;\n
feed_data python: real_context.Listbox_asRSS(label_list, line_list);">\n
\n
<rss version="2.0">\n
<channel>\n
<title tal:content="here/getTitle"></title>\n
<lastBuildDate tal:content="python: DateTime().rfc822()"></lastBuildDate>\n
<link tal:content="real_context/WebSite_getUrl"></link>\n
<item tal:repeat="item_info feed_data/listItemInfos" ><tal:block tal:replace="structure item_info"/></item>\n
</channel>\n
</rss>\n
\n
\n
</tal:block>
]]></string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/xml; charset=utf-8</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ListBox_asPostStyleHTML</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<base_category_list>
<portal_type id="Discussion Thread">
<item>contributor</item>
<item>source</item>
</portal_type>
</base_category_list>
\ No newline at end of file
<hidden_content_type_list>
<portal_type id="Discussion Thread">
<item>Discussion Post</item>
</portal_type>
</hidden_content_type_list>
\ No newline at end of file
<type_roles>
<role id='Assignor; Assignee'>
<property id='title'>Admin</property>
<property id='description'>Forum moderator</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/discussion/administrator</multi_property>
</role>
<role id='Author'>
<property id='title'>user</property>
<property id='description'>Simple forum user</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/discussion/user</multi_property>
</role>
<role id='Auditor'>
<property id='title'>visitor</property>
<property id='description'>Just a visitor</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/discussion*</multi_property>
</role>
</type_roles>
\ No newline at end of file
<type_roles>
<role id='Author'>
<property id='title'>admin</property>
<property id='description'>Forum administrator</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/forum/administrator</multi_property>
</role>
<role id='Author'>
<property id='title'>user</property>
<property id='description'>Simple forum user</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/forum/user</multi_property>
</role>
<role id='Auditor'>
<property id='title'>visitor</property>
<property id='description'>Just a visitor</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/forum*</multi_property>
</role>
</type_roles>
\ No newline at end of file
<type_roles>
<role id='Assignee; Auditor'>
<property id='title'>Event Associate</property>
<property id='description'>Documents which are related to events and which are still in draft state should be accessible by the event assignee and assignor.</property>
<property id='condition'>python:object.getValidationState() == 'draft'</property>
<property id='base_category_script'>ERP5Type_acquireSecurityFromRelatedAssignorOrAssignee</property>
<multi_property id='base_category'>aggregate</multi_property>
</role>
<role id='Auditor'>
<property id='title'>Extra Knowledge</property>
<property id='description'>Anyone who purchased a document can access it.</property>
<property id='condition'>python:object.Document_policyApplies('kb/extra')</property>
<property id='base_category_script'>ERP5Type_getSecurityFromContentReference</property>
</role>
<role id='Assignee'>
<property id='title'>Management</property>
<property id='condition'>python:object.Document_policyApplies('collaborative/management')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='category'>function/knowledge/manager</multi_property>
<multi_property id='base_category'>group</multi_property>
</role>
<role id='Auditor'>
<property id='title'>Nexedi Staff</property>
<property id='description'>Policy: */* (except personal/private)
Rule: all people working for the same organisation are Auditors (we identify the organisation by the first part of the "group" path)</property>
<property id='condition'>python: not object.Document_policyApplies('*/private')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='category'>group/nexedi*</multi_property>
<multi_property id='base_category'>group</multi_property>
</role>
<role id='Assignor; Assignee'>
<property id='title'>Partner</property>
<property id='description'>A partner may publish documents written in the language of his territory if the document is classified as part of the knowledge base.</property>
<property id='condition'>python:object.Document_policyApplies('*/partner')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContentAndLanguage</property>
<multi_property id='category'>function/ipartner/manager</multi_property>
</role>
<role id='Auditor'>
<property id='title'>Partner</property>
<property id='description'>A partner can access any document in the knowledge base. Documents intended to be released beyond Nexedi staff to partners should be classified "kb/partner".</property>
<property id='condition'>python:object.Document_policyApplies('kb/*')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='category'>function/ipartner/manager</multi_property>
</role>
<role id='Associate'>
<property id='title'>Project Associates</property>
<property id='description'>Policy: */project
Rule: all project members have a right to access document once it has been shared or released</property>
<property id='condition'>python:object.Document_policyApplies('*/project')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContentUseOnlyProjectDocument</property>
<multi_property id='base_category'>follow_up</multi_property>
</role>
<role id='Assignee'>
<property id='title'>Project Collaborators</property>
<property id='description'>Policy: collaborative/project
Rule: all members of project team can edit the document before it is submitted, and can submit it</property>
<property id='condition'>python:object.Document_policyApplies('collaborative/project')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContentUseOnlyProjectDocument</property>
<multi_property id='base_category'>follow_up</multi_property>
</role>
<role id='Assignor'>
<property id='title'>Project Knowledge Manager</property>
<property id='description'>Policy: */project
Rule: project director is an Assignor (has management rights to the doc - can review it, release, publish, add local roles)</property>
<property id='condition'>python:object.Document_policyApplies('*/project')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContentUseOnlyProjectDocument</property>
<multi_property id='category'>function/knowledge/manager</multi_property>
<multi_property id='category'>function/project/manager</multi_property>
<multi_property id='base_category'>follow_up</multi_property>
</role>
<role id='Assignee'>
<property id='title'>Public Collaborators</property>
<property id='description'>Policy: collaborative/public
Everybody can edit and submit</property>
<property id='condition'>python:object.Document_policyApplies('collaborative/public')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/knowledge/contributor</multi_property>
</role>
<role id='Assignee'>
<property id='title'>Staff Collaborators</property>
<property id='description'>Policy: collaborative/staff
Rule: everyone in the organisation (root group) can edit the doc before it is submitted, and can suggest its publication</property>
<property id='condition'>python:object.Document_policyApplies('collaborative/staff')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>group/nexedi*</multi_property>
</role>
<role id='Auditor'>
<property id='title'>Standard Knowledge</property>
<property id='description'>Anyone who purchased a document can access it.</property>
<property id='condition'>python:object.Document_policyApplies('kb/standard')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/knowledge/contributor</multi_property>
</role>
<role id='Associate'>
<property id='title'>Team Associates</property>
<property id='description'>Policy: */team
Rule: all team members have a right to access document once it has been shared or released</property>
<property id='condition'>python:object.Document_policyApplies('*/team')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='base_category'>group</multi_property>
</role>
<role id='Assignee'>
<property id='title'>Team Collaborators</property>
<property id='description'>Policy: collaborative/team
Rule: all members of the team can edit the document before it is submitted, and can submit it</property>
<property id='condition'>python:object.Document_policyApplies('collaborative/team')</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='base_category'>group</multi_property>
</role>
<role id='Assignor'>
<property id='title'>Team Knowledge Manager</property>
<property id='description'>Policy: all except */project
Rule: team manager is an Assignor (has management rights to the doc - can review it, release, publish, add local roles)</property>
<property id='condition'>python: object.getGroup() and not (object.Document_policyApplies('*/project') or object.Document_policyApplies('*/private'))</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='base_category'>group</multi_property>
</role>
<role id='Assignee; Assignor'>
<property id='title'>mod</property>
<property id='description'>Forum moderator</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/discussion/administrator</multi_property>
</role>
<role id='Author'>
<property id='title'>user</property>
<property id='description'>Simple forum user</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/discussion/user</multi_property>
</role>
<role id='Auditor'>
<property id='title'>visitor</property>
<property id='description'>Just a visitor</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAssignment</property>
<multi_property id='category'>function/discussion/visitor</multi_property>
</role>
</type_roles>
\ No newline at end of file
......@@ -9,6 +9,25 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_property_domain_dict</string> </key>
<value>
<dictionary>
<item>
<key> <string>short_title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>0</int> </value>
......@@ -23,7 +42,7 @@
</item>
<item>
<key> <string>description</string> </key>
<value> <string>ERP5 default document. Supports synchronisation and XML.</string> </value>
<value> <string>Discussion post are created in discussion threads</string> </value>
</item>
<item>
<key> <string>factory</string> </key>
......@@ -36,7 +55,10 @@
<item>
<key> <string>group_list</string> </key>
<value>
<tuple/>
<tuple>
<string>document</string>
<string>web_document</string>
</tuple>
</value>
</item>
<item>
......@@ -45,11 +67,13 @@
</item>
<item>
<key> <string>init_script</string> </key>
<value> <string>WebPage_init</string> </value>
<value> <string>DiscussionPost_init</string> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value> <string></string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
......@@ -58,4 +82,44 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_content</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>short_title</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_content</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>title</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -42,29 +42,29 @@
</item>
<item>
<key> <string>description</string> </key>
<value> <string> A Folder is a subclass of Base but not of XMLObject.\n
Folders are not considered as documents and are therefore\n
not synchronisable.\n
\n
ERP5 folders are implemented as CMFBTreeFolder objects\n
and can store up to a million documents on a standard\n
computer.\n
ERP5 folders will eventually use in the near future the\n
AdaptableStorage implementation in order to reach performances\n
of 10 or 100 millions of documents in a single folder.\n
\n
ERP5 folders include an automatic id generation feature\n
which allows user not to define an id when they create\n
a new document in a folder.\n
\n
ERP5 folders use the ZSQLCatalog to search for objects\n
or display content. This requires a method called\n
*z_search_folder* to be put inside the ZSQLCatalog object\n
of the ERP5 portal.\n
\n
An ERP5 Binder document class will eventually be defined\n
in order to implement a binder of documents which can itself\n
be categorized.\n
<value> <string> A Folder is a subclass of Base but not of XMLObject.\r\n
Folders are not considered as documents and are therefore\r\n
not synchronisable.\r\n
\r\n
ERP5 folders are implemented as CMFBTreeFolder objects\r\n
and can store up to a million documents on a standard\r\n
computer.\r\n
ERP5 folders will eventually use in the near future the\r\n
AdaptableStorage implementation in order to reach performances\r\n
of 10 or 100 millions of documents in a single folder.\r\n
\r\n
ERP5 folders include an automatic id generation feature\r\n
which allows user not to define an id when they create\r\n
a new document in a folder.\r\n
\r\n
ERP5 folders use the ZSQLCatalog to search for objects\r\n
or display content. This requires a method called\r\n
*z_search_folder* to be put inside the ZSQLCatalog object\r\n
of the ERP5 portal.\r\n
\r\n
An ERP5 Binder document class will eventually be defined\r\n
in order to implement a binder of documents which can itself\r\n
be categorized.\r\n
</string> </value>
</item>
<item>
......@@ -78,7 +78,9 @@
<item>
<key> <string>group_list</string> </key>
<value>
<tuple/>
<tuple>
<string>module</string>
</tuple>
</value>
</item>
<item>
......@@ -87,11 +89,15 @@
</item>
<item>
<key> <string>init_script</string> </key>
<value> <string></string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value> <string></string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -9,13 +9,32 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_property_domain_dict</string> </key>
<value>
<dictionary>
<item>
<key> <string>short_title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value> <string>document.gif</string> </value>
<value> <string>document_icon.gif</string> </value>
</item>
<item>
<key> <string>content_meta_type</string> </key>
......@@ -23,7 +42,7 @@
</item>
<item>
<key> <string>description</string> </key>
<value> <string>ERP5 default document. Supports synchronisation and XML.</string> </value>
<value> <string>Base on ERP5 default document. Supports synchronisation and XML.</string> </value>
</item>
<item>
<key> <string>factory</string> </key>
......@@ -36,13 +55,25 @@
<item>
<key> <string>group_list</string> </key>
<value>
<tuple/>
<tuple>
<string>document</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Discussion Thread</string> </value>
</item>
<item>
<key> <string>id_generator</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id_group</string> </key>
<value> <string>None</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
......@@ -55,9 +86,53 @@
<none/>
</value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>None</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
<value> <string>Discussion Thread</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_content</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>short_title</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_content</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>title</string> </value>
</item>
</dictionary>
</pickle>
......
<workflow_chain>
<chain>
<type>Discussion Post</type>
<workflow>edit_workflow</workflow>
<workflow>discussion_post_publication_workflow, edit_workflow</workflow>
</chain>
<chain>
<type>Discussion Thread</type>
<workflow>discussion_thread_publication_workflow</workflow>
<workflow>discussion_thread_publication_workflow, edit_workflow</workflow>
</chain>
</workflow_chain>
\ No newline at end of file
# -*- coding: utf-8 -*-
class DiscussionPost:
"""
Discussion Post propertySheet
"""
_properties = (
{ 'id' : 'signature',
'description' : 'Signature of author',
'type' : 'string',
'mode' : 'w',
},
)
_categories = ( 'source', 'predecessor' )
\ No newline at end of file
......@@ -13,8 +13,10 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>portal_type</string>
<string>columns</string>
<string>search_columns</string>
<string>selection_name</string>
<string>sort_columns</string>
<string>title</string>
</list>
</value>
......@@ -76,6 +78,21 @@
<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>translated_validation_state_title</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_list_mode_listbox</string> </value>
......@@ -95,10 +112,44 @@
</list>
</value>
</item>
<item>
<key> <string>search_columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>discussion_module_selection</string> </value>
</item>
<item>
<key> <string>sort_columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>agent_value</string>
<string>Related</string>
</tuple>
<tuple>
<string>validation_state</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
......
......@@ -53,7 +53,7 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>context.archiveVersion(state_change, validation_state=\'released\')\n
<value> <string>context.setTextFormat(\'text/html\')\n
</string> </value>
</item>
<item>
......@@ -64,7 +64,15 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>errors</string> </key>
......@@ -84,13 +92,13 @@
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>state_change</string>
<string>kw</string>
<string>_getattr_</string>
<string>context</string>
</tuple>
......@@ -109,7 +117,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>archiveReleasedVersion</string> </value>
<value> <string>DiscussionPost_init</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
......
......@@ -53,30 +53,31 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string># this script allows to create a new follow up ticket for a given event\n
# Create the outgoing\n
\n
signature = context.getPortalObject().portal_preferences.getPreference(\'preferred_forum_signature\')\n
\n
person_path = context.DiscussionThread_getAuthenticatedMemberPersonPath()\n
<value> <string>"""\n
This script allows to create a new Discussion Post in context.\n
If user is not an ERP5 Person object we ask for validation, else we post\n
"""\n
portal = context.getPortalObject()\n
signature = portal.portal_preferences.getPreference(\'preferred_forum_signature\')\n
\n
person = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n
discussion_post = context.newContent(\n
portal_type="Discussion Post",\n
title=title,\n
text_content=text_content,\n
person_path = person_path,\n
source = person_path,\n
signature = signature\n
)\n
\n
translateString = context.Base_translateString\n
source_value=person,\n
predecessor_value=predecessor,\n
signature=signature)\n
\n
portal_status_message = translateString(\n
"New reply created. Your post will be reviewed for approval.")\n
if person is None:\n
portal_status_message = "New reply created. Your post will be reviewed for approval."\n
discussion_post.stack()\n
else:\n
portal_status_message = "New reply created."\n
discussion_post.post()\n
\n
# message + post automatique - XX TODO\n
#discussion_post.post()\n
context.Base_redirect(\'view\', \n
keep_items = dict(portal_status_message=portal_status_message))\n
return context.Base_redirect(form_id,\n
keep_items = dict(portal_status_message=context.Base_translateString(portal_status_message)))\n
</string> </value>
</item>
<item>
......@@ -87,7 +88,15 @@ context.Base_redirect(\'view\', \n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>title, text_content, form_id, **kw</string> </value>
<value> <string>title, text_content, form_id, predecessor=None,**kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Assignee</string>
</tuple>
</value>
</item>
<item>
<key> <string>errors</string> </key>
......@@ -107,7 +116,7 @@ context.Base_redirect(\'view\', \n
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>3</int> </value>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
......@@ -116,13 +125,15 @@ context.Base_redirect(\'view\', \n
<string>title</string>
<string>text_content</string>
<string>form_id</string>
<string>predecessor</string>
<string>kw</string>
<string>_getattr_</string>
<string>context</string>
<string>portal</string>
<string>signature</string>
<string>person_path</string>
<string>person</string>
<string>discussion_post</string>
<string>translateString</string>
<string>None</string>
<string>portal_status_message</string>
<string>dict</string>
</tuple>
......@@ -136,7 +147,9 @@ context.Base_redirect(\'view\', \n
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<none/>
</tuple>
</value>
</item>
<item>
......
......@@ -93,7 +93,6 @@
<value>
<list>
<string>my_title</string>
<string>my_person_path</string>
<string>my_source_title</string>
<string>my_signature</string>
</list>
......@@ -103,7 +102,7 @@
<key> <string>right</string> </key>
<value>
<list>
<string>my_translated_validation_state</string>
<string>my_translated_validation_state_title</string>
</list>
</value>
</item>
......
......@@ -13,8 +13,9 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
<string>display_width</string>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
......@@ -79,6 +80,10 @@
<key> <string>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
......
......@@ -479,6 +479,16 @@
</list>
</value>
</item>
<item>
<key> <string>proxy_listbox_ids</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>relation_form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>relation_setter_id</string> </key>
<value> <string></string> </value>
......@@ -499,7 +509,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>my_source_title</string> </value>
<value> <string>Source</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
......
......@@ -21,7 +21,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_translated_validation_state</string> </value>
<value> <string>my_translated_validation_state_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......
......@@ -100,7 +100,7 @@
<key> <string>right</string> </key>
<value>
<list>
<string>my_translated_simulation_state</string>
<string>my_translated_validation_state_title</string>
</list>
</value>
</item>
......
......@@ -21,7 +21,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_translated_simulation_state</string> </value>
<value> <string>my_translated_validation_state_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......
......@@ -120,7 +120,7 @@
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Event_viewFieldLibrary</string> </value>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
......
......@@ -16,6 +16,7 @@
<string>default</string>
<string>display_width</string>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
......@@ -104,16 +105,20 @@
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_title</string> </value>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Event_viewFieldLibrary</string> </value>
<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>
......
......@@ -53,7 +53,13 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>context.archiveVersion(state_change, validation_state=\'shared\')\n
<value> <string>"""\n
Delete Discussion Post.\n
"""\n
discussion_post = getattr(context, delete_discussion_post_id)\n
discussion_post.delete()\n
context.Base_redirect(\'view\', \\\n
keep_items={\'portal_status_message\': context.Base_translateString(\'Post deleted.\')})\n
</string> </value>
</item>
<item>
......@@ -64,7 +70,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
<value> <string>delete_discussion_post_id</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
......@@ -90,9 +96,11 @@
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>state_change</string>
<string>_getattr_</string>
<string>delete_discussion_post_id</string>
<string>getattr</string>
<string>context</string>
<string>discussion_post</string>
<string>_getattr_</string>
</tuple>
</value>
</item>
......@@ -109,7 +117,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>archiveSharedVersion</string> </value>
<value> <string>DiscussionThread_deleteDiscussionPost</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
......
......@@ -53,23 +53,15 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>"""\n
This script returns the number of Discussion Post objects from the Discussion Thread \n
<value> <string>""" This script returns the number of Discussion Post objects from the Discussion Thread \n
object that is associated to this context.\n
If there is no Discussion Thread, 0 is returned.\n
"""\n
\n
discussion = context.getAgentRelated(portal_type = "Discussion Thread")\n
\n
if discussion == None:\n
return 0\n
\n
discussion = context.restrictedTraverse(discussion, None)\n
If there is no Discussion Thread, 0 is returned."""\n
discussion = context.DiscussionThread_getContextThread()\n
\n
if discussion == None:\n
return 0\n
\n
return len(discussion.countFolder())\n
return len(discussion.searchFolder(portal_type=\'Discussion Post\'))\n
</string> </value>
</item>
<item>
......@@ -85,9 +77,7 @@ return len(discussion.countFolder())\n
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......
......@@ -59,18 +59,18 @@
If there is no Discussion Thread, an empty list is returned.\n
"""\n
\n
#context.pdb_trace(context)\n
discussion = context.getAgentRelated(portal_type = "Discussion Thread")\n
if context.getPortalType() != "Discussion Thread":\n
discussion = context.DiscussionThread_getContextThread()\n
else:\n
discussion = context\n
\n
if discussion == None:\n
return []\n
\n
discussion = context.restrictedTraverse(discussion, None)\n
if kw.has_key("portal_type") == False:\n
kw[\'portal_type\'] = "Discussion Post"\n
\n
if discussion == None:\n
return []\n
\n
return discussion.searchFolder()\n
return discussion.searchFolder(**kw)\n
</string> </value>
</item>
<item>
......@@ -86,9 +86,7 @@ return discussion.searchFolder()\n
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -120,6 +118,9 @@ return discussion.searchFolder()\n
<string>context</string>
<string>discussion</string>
<string>None</string>
<string>False</string>
<string>_write_</string>
<string>_apply_</string>
</tuple>
</value>
</item>
......
......@@ -53,17 +53,17 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>user_name = context.portal_membership.getAuthenticatedMember().getUserName()\n
found_user_list = context.getPortalObject().portal_catalog(portal_type=\'Person\', reference=user_name)\n
found_users = len(found_user_list)\n
if found_users != 1:\n
person_path = "#"\n
else:\n
# or set it at # if nothing is found\n
person = found_user_list[0].getObject()\n
person_path = person.getRelativeUrl()\n
<value> <string>"""This script returns ththe Discussion Thread object that is associated to this context.\n
Or the first if many.\n
If there is no Discussion Thread, return None.\n
Need a proxy to work correctly with anonymous user"""\n
\n
return person_path\n
discussion = context.getFollowUpRelated(portal_type = "Discussion Thread")\n
\n
if discussion is not None:\n
discussion = context.restrictedTraverse(discussion, None)\n
\n
return discussion\n
</string> </value>
</item>
<item>
......@@ -74,13 +74,14 @@ return person_path\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Manager</string>
<string>Assignee</string>
<string>Assignor</string>
</tuple>
</value>
</item>
......@@ -108,15 +109,11 @@ return person_path\n
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>kw</string>
<string>_getattr_</string>
<string>context</string>
<string>user_name</string>
<string>found_user_list</string>
<string>len</string>
<string>found_users</string>
<string>person_path</string>
<string>_getitem_</string>
<string>person</string>
<string>discussion</string>
<string>None</string>
</tuple>
</value>
</item>
......@@ -133,7 +130,7 @@ return person_path\n
</item>
<item>
<key> <string>id</string> </key>
<value> <string>DiscussionThread_getAuthenticatedMemberPersonPath</string> </value>
<value> <string>DiscussionThread_getContextThread</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>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>"""This script returns the Discussion Thread list that is associated to this context.\n
Need a proxy to work correctly with anonymous user"""\n
\n
if not kw.has_key(\'portal_type\'):\n
kw["portal_type"] = "Discussion Thread"\n
kw["follow_up_uid"] = context.getUid()\n
\n
return [x.getObject() for x in context.portal_catalog(**kw)]\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
</tuple>
</value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>kw</string>
<string>_getattr_</string>
<string>_write_</string>
<string>context</string>
<string>append</string>
<string>$append0</string>
<string>_getiter_</string>
<string>_apply_</string>
<string>x</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>DiscussionThread_getContextThreadList</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -53,7 +53,11 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>context.archiveVersion(state_change, validation_state=\'published\')\n
<value> <string>post = context.searchFolder(portal_type=\'Discussion Post\', sort_on=[(\'creation_date\',\'descending\')])\n
if len(post) == 0:\n
return None\n
else:\n
return post[0].getObject()\n
</string> </value>
</item>
<item>
......@@ -64,7 +68,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
<value> <string></string> </value>
</item>
<item>
<key> <string>errors</string> </key>
......@@ -84,15 +88,18 @@
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>state_change</string>
<string>_getattr_</string>
<string>context</string>
<string>post</string>
<string>len</string>
<string>None</string>
<string>_getitem_</string>
</tuple>
</value>
</item>
......@@ -109,7 +116,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>archivePublicVersion</string> </value>
<value> <string>DiscussionThread_getLastPost</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
......
......@@ -54,63 +54,35 @@
<item>
<key> <string>_body</string> </key>
<value> <string>"""\n
this script create a thread and it first post\n
This script create a thread and its first post.\n
"""\n
\n
# find the person path if it\'s accessible by the user\n
person_path = context.DiscussionThread_getAuthenticatedMemberPersonPath()\n
portal = context.getPortalObject()\n
person = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n
signature = context.getPortalObject().portal_preferences.getPreference(\'preferred_forum_signature\')\n
\n
#create the thread and the first post in it\n
\n
translateString = context.Base_translateString\n
\n
\n
discussion_thread_module = context.getPortalObject().discussion_thread_module\n
\n
discussion_thread = discussion_thread_module.newContent(\n
portal_type="Discussion Thread",\n
discussion_thread = portal.discussion_thread_module.newContent(\n
portal_type = "Discussion Thread",\n
title=title,\n
text_content=text_content,\n
agent_value=context\n
)\n
\n
source_value = person,\n
follow_up_value = context)\n
\n
discussion_post = discussion_thread.newContent(\n
portal_type="Discussion Post",\n
title=title,\n
text_content=text_content,\n
person_path = person_path,\n
source = person_path,\n
signature = signature\n
)\n
\n
\n
#discussion_post.post()\n
portal_type = "Discussion Post",\n
title = post_title,\n
text_content = text_content,\n
source_value = person,\n
signature = signature)\n
\n
# Case 1 - some metadata was provided at creation\n
try:\n
if discussion_thread.getPublicationSection() or \\\n
discussion_thread.getGroup() or \\\n
discussion_thread.getFunction() or \\\n
discussion_thread.getSite() or \\\n
discussion_thread.getFollowUp():\n
discussion_thread.submit()\n
portal_status_message = translateString(\n
"New post created. Your post will be reviewed for approval."\n
)\n
# Case 2 - no information defined\n
else:\n
portal_status_message = translateString(\n
"New post created. Please fill all metadata and submit your thread for approval"\n
)\n
except:\n
portal_status_message = translateString(\n
"New post created. Please fill all metadata and submit your thread for approval"\n
)\n
if person is None:\n
portal_status_message = "New reply created. Your post will be reviewed for approval."\n
discussion_post.stack()\n
else:\n
portal_status_message = "New thread created"\n
discussion_post.post()\n
\n
return discussion_thread.Base_redirect(\'view\', \n
keep_items = dict(portal_status_message=portal_status_message), **kw)\n
keep_items = dict(portal_status_message=context.Base_translateString(portal_status_message)))\n
</string> </value>
</item>
<item>
......@@ -121,7 +93,16 @@ return discussion_thread.Base_redirect(\'view\', \n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>title, text_content, form_id, **kw</string> </value>
<value> <string>title, post_title, text_content, form_id, **kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Author</string>
</tuple>
</value>
</item>
<item>
<key> <string>errors</string> </key>
......@@ -141,26 +122,26 @@ return discussion_thread.Base_redirect(\'view\', \n
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>3</int> </value>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>title</string>
<string>post_title</string>
<string>text_content</string>
<string>form_id</string>
<string>kw</string>
<string>_getattr_</string>
<string>context</string>
<string>person_path</string>
<string>portal</string>
<string>person</string>
<string>signature</string>
<string>translateString</string>
<string>discussion_thread_module</string>
<string>discussion_thread</string>
<string>discussion_post</string>
<string>None</string>
<string>portal_status_message</string>
<string>_apply_</string>
<string>dict</string>
</tuple>
</value>
......
......@@ -58,8 +58,6 @@
<list>
<string>left (Document Reference)</string>
<string>right (Publication Information)</string>
<string>left</string>
<string>right</string>
<string>center</string>
<string>hidden</string>
<string>bottom</string>
......@@ -83,6 +81,7 @@
<value>
<list>
<string>my_description</string>
<string>my_subject_list</string>
</list>
</value>
</item>
......@@ -92,14 +91,6 @@
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_contributor_title_list</string>
</list>
</value>
</item>
<item>
<key> <string>left (Document Reference)</string> </key>
<value>
......@@ -111,14 +102,9 @@
<string>my_language</string>
<string>my_int_index</string>
<string>my_revision</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list>
<string>my_subject_list</string>
<string>my_follow_up_title</string>
<string>my_source_title</string>
<string>my_contributor_title_list</string>
</list>
</value>
</item>
......@@ -130,7 +116,6 @@
<string>my_group_list</string>
<string>my_site_list</string>
<string>my_function_list</string>
<string>my_follow_up_title</string>
<string>my_publication_section_list</string>
<string>my_translated_validation_state_title</string>
</list>
......
......@@ -13,12 +13,13 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
<string>columns</string>
<string>list_method</string>
<string>selection_name</string>
<string>portal_types</string>
<string>page_template</string>
<string>portal_types</string>
<string>selection_name</string>
<string>sort</string>
<string>title</string>
</list>
</value>
</item>
......@@ -127,6 +128,17 @@
<key> <string>selection_name</string> </key>
<value> <string>discussion_post_selection</string> </value>
</item>
<item>
<key> <string>sort</string> </key>
<value>
<list>
<tuple>
<string>creation_date</string>
<string>ascending</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>portal_type</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_source_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>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>my_relation_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Person</string>
<string>Person</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>Source</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
<tuple/>
</tuple>
</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>Base_edit</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Test site to make a forum application</string> </value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left (Document Reference)</string>
<string>right (Publication Information)</string>
<string>center</string>
<string>hidden</string>
<string>bottom</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>
<string>my_description</string>
</list>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left (Document Reference)</string> </key>
<value>
<list>
<string>my_title</string>
<string>my_translated_validation_state_title</string>
</list>
</value>
</item>
<item>
<key> <string>right (Publication Information)</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>DiscussionThread_viewAsWeb</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>Base_viewClassification</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</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</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>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>columns</string>
<string>list_method</string>
<string>page_template</string>
<string>portal_types</string>
<string>selection_name</string>
<string>sort</string>
<string>title</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>creation_date</string>
<string>Date</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>page_template</string> </key>
<value> <string>ListBox_asPostStyleHTML</string> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value>
<list>
<tuple>
<string>Discussion Post</string>
<string>Discussion Post</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>discussion_post_selection</string> </value>
</item>
<item>
<key> <string>sort</string> </key>
<value>
<list>
<tuple>
<string>creation_date</string>
<string>ascending</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 Posts</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Method" module="Products.Formulator.MethodField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>contentValues</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_description</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>my_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Document_viewFieldLibrary</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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_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>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>my_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Document_viewFieldLibrary</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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>my_translated_validation_state_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>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>my_translated_workflow_state_title</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>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -77,15 +77,16 @@
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>your_text_content</string>
</list>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
<list>
<string>your_text_content</string>
<string>your_captcha</string>
</list>
</value>
</item>
<item>
......@@ -99,7 +100,7 @@
<value>
<list>
<string>your_title</string>
<string>your_captcha</string>
<string>your_post_title</string>
</list>
</value>
</item>
......
......@@ -13,15 +13,14 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>display_width</string>
<string>title</string>
<string>hidden</string>
<string>editable</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_person_path</string> </value>
<value> <string>your_post_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -57,6 +56,10 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -77,28 +80,24 @@
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
<key> <string>display_width</string> </key>
<value> <int>40</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_translated_workflow_state_title</string> </value>
<value> <string>my_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</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>Person Path</string> </value>
<value> <string>Post Title</string> </value>
</item>
</dictionary>
</value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
<tuple/>
</tuple>
</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>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>your_listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<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>ERP5Site_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></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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>css_class</string>
<string>default</string>
<string>editable</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>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>css_class</string> </key>
<value> <string>hidden_label button</string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </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>
<tuple>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
python: \'<a class="bt-small" style="width:250px;" href="%s/DiscussionThread_viewNewPostDialog?cancel_url=%s"><span><img src="km_img/icon-add.png" alt="+"/> Add New Discussion Thread</span></a>\' %(here.getWebSiteValue().absolute_url(), here.absolute_url())
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>columns</string>
<string>count_method</string>
<string>list_method</string>
<string>portal_types</string>
<string>search</string>
<string>sort</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_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>columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>count_method</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>list_method</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>search</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>sort</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>columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>modification_date</string>
<string>Modification Date</string>
</tuple>
<tuple>
<string>validation_state</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>count_method</string> </key>
<value> <string></string> </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>portal_types</string> </key>
<value>
<list>
<tuple>
<string>Discussion Thread</string>
<string>Discussion Thread</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>search</string> </key>
<value> <int>1</int> </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>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>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Method" module="Products.Formulator.MethodField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>portal_catalog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -69,6 +69,9 @@
current_page_start python: (listbox_max_lines * (current_page - 1)) + 1;\n
current_page_stop python: (total_line < current_page_max) and total_line or current_page_max;\n
">\n
\n
<script src="erp5_discussion.js" type="text/javascript"></script>\n
\n
<!-- ListBox starts here. -->\n
<input type="hidden" name="list_selection_name" value="default" tal:attributes="value selection_name" />\n
\n
......@@ -98,8 +101,11 @@
<div style="float:left; height:20px;">\n
<a tal:attributes="href event/getId"><span style="margin:0; color #D98135; padding-left:5px; font:bold 1.2em Helvetica, Arial, sans-serif; margin-top:5px" tal:content="event/getTitle"></span></a>\n
</div>\n
<div style="float:left;height:20px;margin-left:10px;margin-top:3px;">\n
<span tal:content="python: event.getTranslatedValidationStateTitle()"></span>\n
</div>\n
<div style="float:right; height:20px;">\n
<span style="color:#333; font-size:90%; margin:2px 0;">by <a tal:attributes="href python: event.getObject().person_path"> <span style="color:#a40;font-size:90%;" tal:content="python: (event.getSourceValue() is not None and event.getSourceValue().Title()) or \'User unknown\'"></span> </a> on <span tal:replace="event/getCreationDate"></span></span>\n
<span style="color:#333; font-size:90%; margin:2px 0;">by <a tal:attributes="href python: event.getObject().getSource()"> <span style="color:#a40;font-size:90%;" tal:content="python: (event.getSourceValue() is not None and event.getSourceValue().Title()) or \'User unknown\'"></span> </a> on <span tal:replace="event/getCreationDate"></span></span>\n
</div>\n
</div>\n
<hr>\n
......@@ -108,18 +114,40 @@
tal:content="structure python:event.asStrippedHTML()">\n
</span><br />\n
</div>\n
<!--\n
<tal:block tal:define="sign python: \'Signature attribbute not defined\'"\n
tal:condition="python: sign != \'\'">\n
<hr>\n
<div style="margin-left:10px;">\n
<span style="color:#aaa" tal:content="python: here.getPortalObject().portal_preferences.getPreference(\'preferred_forum_signature\')"></span>\n
<span style="color:#aaa" tal:content="sign"></span>\n
</div>\n
</tal:block>\n
-->\n
<hr>\n
<input type="checkbox" name="good_uid" tal:attributes="value event/getUid; id python: \'listbox_cb_%s\' % (event.getUid())" style="visibility:hidden"> \n
<button tal:condition="python: real_context.portal_membership.getAuthenticatedMember().checkPermission(\'Add portal content\', event)" type="submit" title="Reply" name="DiscussionPost_viewNewReplyDialog:method" style="border:dashed 1px #3D6474; background-color:#eee; padding:3px;" tal:attributes="onClick python: \'getElementById(\\\'listbox_cb_%s\\\').checked = true\' % (event.getUid())">\n
<input type="checkbox" name="good_uid" tal:attributes="value event/getUid; id python: \'listbox_cb_%s\' % (event.getUid())" style="visibility:hidden">\n
<tal:block tal:condition="python: real_context.portal_membership.getAuthenticatedMember()"\n
tal:define="event_object event/getObject">\n
<button tal:condition="python: real_context.portal_membership.checkPermission(\'Add portal content\', real_context)" \n
type="submit" \n
title="Reply" \n
name="DiscussionPost_viewNewReplyDialog:method" \n
style="border:dashed 1px #3D6474; background-color:#eee; padding:3px;" \n
tal:attributes="onClick python: \'getElementById(\\\'listbox_cb_%s\\\').checked = true\' % (event.getUid())">\n
<span>Reply</span>\n
</button>\n
<tal:block tal:condition="python:real_context.portal_membership.checkPermission(\'Delete objects\', event_object)">\n
<button type="submit" \n
title="Delete" \n
name="DiscussionThread_deleteDiscussionPost:method"\n
tal:attributes="onClick python: \'deleteDiscussionPost(\\\'%s\\\')\' %event.getId()"\n
style="border:dashed 1px #3D6474; background-color:#FF654A; padding:3px;">\n
<span>Delete</span>\n
</button>\n
</tal:block>\n
</tal:block>\n
</div>\n
</tal:block>\n
<div style="width:100%; align:middle" align=middle>\n
<div style="width:100%; align:middle" align="middle">\n
<div>\n
<a href="#"\n
tal:condition="python: field_id.strip() != \'listbox\'"\n
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment