Commit ab163da8 authored by Sven Franck's avatar Sven Franck

erp5_corporate_identitiy: add letter template and tests

parent bb4ea6a9
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PDF" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts12573465.66</string> </value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>4c1cf220969355f26388f06d1810cc42</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/pdf</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>test letter without any parameters set</string> </value>
</item>
<item>
<key> <string>filename</string> </key>
<value> <string>Template.Test.Letter-001-en.pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_001_en_pdf</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>PDF</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>23735</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510149812.2</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62318.835.18585</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573465.66</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PDF" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts12573476.52</string> </value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>2184c0d0cddbca1ccc071d64f8c45ab3</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/pdf</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>test letter with contributor organisation, follow-up organisation and person</string> </value>
</item>
<item>
<key> <string>filename</string> </key>
<value> <string>Template.Test.Letter-002-en.pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_002_en_pdf</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>PDF</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>25892</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>002</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510152510.79</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.42151.6200.37393</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573476.53</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PDF" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts12573492.95</string> </value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>97de471b9a8620e9e622bf6efd75d20b</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/pdf</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>test letter with contributor organisation, follow-up organisation and person and all overrides set.</string> </value>
</item>
<item>
<key> <string>filename</string> </key>
<value> <string>Template.Test.Letter-003-en.pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_003_en_pdf</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>PDF</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>27171</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>003</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510153786.35</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62318.34310.55398</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573492.99</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PDF" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts12573502.92</string> </value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>7629e1a6cfa91c00147a83a73a0d4428</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/pdf</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>test letter with contributor organisation, follow-up organisation and person in German over two pages.</string> </value>
</item>
<item>
<key> <string>filename</string> </key>
<value> <string>Template.Test.Letter-004-de.pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_004_de_pdf</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>de</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>PDF</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>29305</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>004</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510218550.9</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62318.47282.38229</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573502.92</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>353623bd2712db4b34926b45913ac7ce</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/x-bmp</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Page</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Screenshot generated from template_test_letter_input_001_en_pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>595</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_page_0_001_en_bmp</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Image</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Page</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>842</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510223666.48</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62318.7891.25685</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573467.51</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>9b7274769891fed57cf8ae234372231d</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/x-bmp</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Page</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Screenshot generated from template_test_letter_input_002_en_pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>595</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_page_0_002_en_bmp</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Image</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Page</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>002</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>842</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510223922.44</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62318.23858.2338</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573478.43</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>ae7f049e9d42e018dbc0156871affd07</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/x-bmp</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Page</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Screenshot generated from template_test_letter_input_003_en_pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>595</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_page_0_003_en_bmp</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Image</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Page</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>003</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>842</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510224677.82</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62318.36191.33570</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573494.71</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>118f59eb487e78835c9991b382c095d5</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/x-bmp</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Page</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Screenshot generated from template_test_letter_input_004_de_pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>595</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_page_1_004_de_bmp</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>de</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Image</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Page</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>004</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>842</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510224894.83</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62318.49131.29064</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573504.66</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at Nexedi, have done the intial interviews with someone and was involved in
recommending for a temporary contract with scikit-learn.
</p>
<p>
On the technical side someone was working mostly on our NEO solution and its
integration into SlapOS. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably high. Someone succeeded in improving the integration of
NEO in SlapOS (<a href="lab.nexedi.com">link to commits</a>) which today allows us to provide NEO as default
database in all our SlapOS instances.
</p>
<p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future trainees arriving in Lille and Nexedi (advice
for finding housing, getting a phone contract, etc.), which we are still using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Nexedi SA</p>
</section>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_web_page_letter</string> </value>
</item>
<item>
<key> <string>isIndexable</string> </key>
<value>
<object>
<klass>
<global id="1.1" name="PropertyGetter" module="Products.ERP5Type.Accessor.Constant"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>isIndexable</string> </value>
</item>
<item>
<key> <string>_id</string> </key>
<value> <string>isIndexable</string> </value>
</item>
<item>
<key> <string>value</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>isTemplate</string> </key>
<value>
<object>
<klass> <reference id="1.1"/> </klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>isTemplate</string> </value>
</item>
<item>
<key> <string>_id</string> </key>
<value> <string>isTemplate</string> </value>
</item>
<item>
<key> <string>value</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Add Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1509115504.68</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.40695.63103.2645</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1511348969.63</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1509115504.68</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_001_en_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510087308.65</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62316.60783.2901</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573358.52</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510087308.65</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/organisation_module/template_test_organisation</string>
<string>follow_up/organisation_module/template_test_organisation</string>
<string>follow_up/person_module/template_test_recipient</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_002_en_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>002</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510151459.68</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62317.28425.55859</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573374.18</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510151459.68</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/template_test_author</string>
<string>follow_up/organisation_module/template_test_organisation</string>
<string>follow_up/person_module/template_test_recipient</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_003_en_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>003</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510152597.59</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62317.39204.15394</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573385.03</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510152597.59</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit consequat ultrices
lacinia, taciti mauris facilisi praesent tincidunt semper porttitor molestie
laoreet, sociosqu quisque risus faucibus quis elementum nisi eget sociis. Dui
justo curabitur ridiculus auctor nam eu vehicula platea volutpat consequat,
sodales conubia sociosqu est faucibus ornare scelerisque egestas. Eros litora
platea massa risus aliquet hac faucibus, nam etiam fermentum convallis justo
diam turpis, auctor venenatis dapibus a posuere et.
</p>
<p>
Rutrum id aenean fermentum condimentum quis urna turpis, elementum torquent a
vestibulum feugiat fringilla, lacinia taciti laoreet ornare vivamus ut. Diam
pellentesque etiam est aenean justo litora cum, ligula vitae ultricies conubia
magna magnis. Quam tempus donec vestibulum dui pellentesque in semper pulvinar
sociosqu quis, sodales ultrices potenti cras mattis laoreet etiam per placerat,
mi aliquet a praesent ante orci accumsan magna neque.
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit consequat ultrices
lacinia, taciti mauris facilisi praesent tincidunt semper porttitor molestie
laoreet, sociosqu quisque risus faucibus quis elementum nisi eget sociis. Dui
justo curabitur ridiculus auctor nam eu vehicula platea volutpat consequat,
sodales conubia sociosqu est faucibus ornare scelerisque egestas. Eros litora
platea massa risus aliquet hac faucibus, nam etiam fermentum convallis justo
diam turpis, auctor venenatis dapibus a posuere et.
</p>
<p>
Rutrum id aenean fermentum condimentum quis urna turpis, elementum torquent a
vestibulum feugiat fringilla, lacinia taciti laoreet ornare vivamus ut. Diam
pellentesque etiam est aenean justo litora cum, ligula vitae ultricies conubia
magna magnis. Quam tempus donec vestibulum dui pellentesque in semper pulvinar
sociosqu quis, sodales ultrices potenti cras mattis laoreet etiam per placerat,
mi aliquet a praesent ante orci accumsan magna neque.
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit consequat ultrices
lacinia, taciti mauris facilisi praesent tincidunt semper porttitor molestie
laoreet, sociosqu quisque risus faucibus quis elementum nisi eget sociis. Dui
justo curabitur ridiculus auctor nam eu vehicula platea volutpat consequat,
sodales conubia sociosqu est faucibus ornare scelerisque egestas. Eros litora
platea massa risus aliquet hac faucibus, nam etiam fermentum convallis justo
diam turpis, auctor venenatis dapibus a posuere et.
</p>
<p>
Rutrum id aenean fermentum condimentum quis urna turpis, elementum torquent a
vestibulum feugiat fringilla, lacinia taciti laoreet ornare vivamus ut. Diam
pellentesque etiam est aenean justo litora cum, ligula vitae ultricies conubia
magna magnis. Quam tempus donec vestibulum dui pellentesque in semper pulvinar
sociosqu quis, sodales ultrices potenti cras mattis laoreet etiam per placerat,
mi aliquet a praesent ante orci accumsan magna neque.
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>follow_up/organisation_module/template_test_organisation</string>
<string>follow_up/person_module/template_test_recipient</string>
<string>contributor/person_module/template_test_author</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_input_004_de_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>de</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>004</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510153963.39</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62317.49755.29286</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573396.89</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510153963.39</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html class="ci-default ci-en">
<head>
<meta charset="utf-8">
<title>Template Test Letter</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="default_themes/themes.css?portal_skin=Letter" />
<link rel="stylesheet"
href="https://softinst73908.host.vifib.net/erp5/web_page_module/template_test_letter_input_001_en_html/letter_css/letter.css?portal_skin=Letter" />
</head>
<body class="ci-letter">
<div class="ci-letter-header">
<div class="ci-letter-bar">
<div class="ci-letter-bar-logo">
<img src="common_images/fallback.png" alt="" />
<span></span>
</div>
<div class="ci-letter-bar-purporse"><span></span></div>
</div>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-timestamp">
<span>Date</span><span>2017-12-06</span>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-page">
<span>Page</span><span><span class="page"></span><span>/</span><span class="topage"></span><span>
</span></span></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-source">
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-destination">
<span> </span>
<span> </span>
<span> </span>
<span> </span>
<span> </span>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-body"><p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
</div>
<div class="ci-letter-footer">
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div>
<span class="ci-letter-footer-title">Address</span><span></span>
<span class="ci-letter-footer-title">&nbsp;</span><span></span>
<span class="ci-letter-footer-title">&nbsp;</span><span> </span>
<span class="ci-letter-footer-title">&nbsp;</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Telephone</span><span></span>
<span class="ci-letter-footer-title">Telefax</span><span></span>
<span class="ci-letter-footer-title">Email</span><span></span>
<span class="ci-letter-footer-title">Web Adress</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Bank Account</span><span></span>
<span class="ci-letter-footer-title">BIC</span><span></span>
<span class="ci-letter-footer-title">IBAN</span><span></span>
<span class="ci-letter-footer-title">VAT ID</span><span></span>
<span class="ci-letter-footer-title">Siren</span><span></span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Expected.Output.Sample</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>letter html output used for portal tests.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_output_expected_001_en_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Expected Output Sample</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510087410.81</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62300.48672.6809</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573369.52</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510087410.81</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html class="ci-default ci-en">
<head>
<meta charset="utf-8">
<title>Template Test Letter</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="default_themes/themes.css?portal_skin=Letter" />
<link rel="stylesheet"
href="https://softinst73908.host.vifib.net/erp5/web_page_module/template_test_letter_input_002_en_html/letter_css/letter.css?portal_skin=Letter" />
</head>
<body class="ci-letter">
<div class="ci-letter-header">
<div class="ci-letter-bar">
<div class="ci-letter-bar-logo">
<img src="common_images/fallback.png" alt="" />
<span></span>
</div>
<div class="ci-letter-bar-purporse"><span></span></div>
</div>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-timestamp">
<span>Date</span><span>2017-12-06</span>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-page">
<span>Page</span><span><span class="page"></span><span>/</span><span class="topage"></span><span>
</span></span></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-source">
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-destination">
<span>Test Organisation</span>
<span>Test Recipient</span>
<span>Test Drive 123</span>
<span>12345 Test City</span>
<span> </span>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-body"><p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
</div>
<div class="ci-letter-footer">
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div>
<span class="ci-letter-footer-title">Address</span><span></span>
<span class="ci-letter-footer-title">&nbsp;</span><span>Test Drive 123</span>
<span class="ci-letter-footer-title">&nbsp;</span><span>12345 Test City</span>
<span class="ci-letter-footer-title">&nbsp;</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Telephone</span><span>+123 456 789 0</span>
<span class="ci-letter-footer-title">Telefax</span><span></span>
<span class="ci-letter-footer-title">Email</span><span>info@test-organisation.eu</span>
<span class="ci-letter-footer-title">Web Adress</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Bank Account</span><span></span>
<span class="ci-letter-footer-title">BIC</span><span></span>
<span class="ci-letter-footer-title">IBAN</span><span></span>
<span class="ci-letter-footer-title">VAT ID</span><span></span>
<span class="ci-letter-footer-title">Siren</span><span></span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Expected.Output.Sample</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>letter html output with contributor organisation, follow up person and organisation used for portal tests.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_output_expected_002_en_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Expected Output Sample</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>002</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510152135.0</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62301.32165.33501</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573382.07</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510152135.0</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html class="ci-default ci-en">
<head>
<meta charset="utf-8">
<title>Template Test Letter</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="default_themes/themes.css?portal_skin=Letter" />
<link rel="stylesheet"
href="https://softinst73908.host.vifib.net/erp5/web_page_module/template_test_letter_input_003_en_html/letter_css/letter.css?portal_skin=Letter" />
</head>
<body class="ci-letter">
<div class="ci-letter-header">
<div class="ci-letter-bar">
<div class="ci-letter-bar-logo">
<img src="https://softinst73908.host.vifib.net/erp5/organisation_module/template_test_association/default_image?format=png&amp;display=small"
alt="" />
<span></span>
</div>
<div class="ci-letter-bar-purporse"><span></span></div>
</div>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-timestamp">
<span>Date</span><span>1999-12-31</span>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-page">
<span>Page</span><span><span class="page"></span><span>/</span><span class="topage"></span><span>
</span></span></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-source">
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-destination">
<span>Test Association</span>
<span>Test Association Member</span>
<span>Foss Street 101</span>
<span>98765 Libertyville</span>
<span> </span>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-body"><p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
</div>
<div class="ci-letter-footer">
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div>
<span class="ci-letter-footer-title">Address</span><span>Test Association</span>
<span class="ci-letter-footer-title">&nbsp;</span><span>Foss Street 101</span>
<span class="ci-letter-footer-title">&nbsp;</span><span>98765 Libertyville</span>
<span class="ci-letter-footer-title">&nbsp;</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Telephone</span><span>+190 123 123</span>
<span class="ci-letter-footer-title">Telefax</span><span></span>
<span class="ci-letter-footer-title">Email</span><span>info@test-assosication.eu</span>
<span class="ci-letter-footer-title">Web Adress</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Bank Account</span><span></span>
<span class="ci-letter-footer-title">BIC</span><span></span>
<span class="ci-letter-footer-title">IBAN</span><span></span>
<span class="ci-letter-footer-title">VAT ID</span><span></span>
<span class="ci-letter-footer-title">Siren</span><span></span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Expected.Output.Sample</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>letter html output with contributor organisation, follow up person and organisation and all overrides set used for portal tests.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_output_expected_003_en_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Expected Output Sample</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>003</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510153506.33</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62301.53465.546</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573394.09</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510153506.33</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html class="ci-default ci-de">
<head>
<meta charset="utf-8">
<title>Template Test Letter</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="default_themes/themes.css?portal_skin=Letter" />
<link rel="stylesheet"
href="https://softinst73908.host.vifib.net/erp5/web_page_module/template_test_letter_input_004_de_html/letter_css/letter.css?portal_skin=Letter" />
</head>
<body class="ci-letter">
<div class="ci-letter-header">
<div class="ci-letter-bar">
<div class="ci-letter-bar-logo">
<img src="common_images/fallback.png" alt="" />
<span></span>
</div>
<div class="ci-letter-bar-purporse"><span></span></div>
</div>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-timestamp">
<span>Date</span><span>2017-12-06</span>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-page">
<span>Page</span><span><span class="page"></span><span>/</span><span class="topage"></span><span>
</span></span></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-source">
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-destination">
<span>Test Organisation</span>
<span>Test Recipient</span>
<span>Test Drive 123</span>
<span>12345 Test City</span>
<span> </span>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="ci-letter-body"><p><b><i>Recommendation Letter for someone</i></b></p>
<p>
Dear Mr Couscous, <br/>
Dear Mr Burgur,
</p>
<p>
Someone has done a six month traineeship with us in the summer of 2015 and
asked me to write a reference letter for him. I'm responsible for recruiting
at company, have done the intial interviews with someone and was involved in
recommending for a temporary contract with another company.
</p>
<p>
On the technical side someone was working mostly on our foo solution and its
integration into bar. He was mentored by my colleague someone else. According
to him someone was able to hit the ground running although the complexity of the
topic was considerably. Someone succeeded in improving the integration of
foo in bar (<a href="lab.foobar.com">link to commits</a>) which today allows us
to provide bar as default database in all our foo instances.
</p>
<p>
Personally I remember someone as an always friendly and helpful colleague who
was involved in daily trainee activities beyond his work as a developer - be it
in organising our "Trainee Days" (camping trip) or initiiating the "Trainee 101"
repository with helpful tips for future colleagues arriving in Lille and company
(advice for finding housing, getting a phone contract, etc.), which we are still
using today.
</p>
<p>
Feel free to call me back in case you have further questions (01-23-456789-0).
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit consequat ultrices
lacinia, taciti mauris facilisi praesent tincidunt semper porttitor molestie
laoreet, sociosqu quisque risus faucibus quis elementum nisi eget sociis. Dui
justo curabitur ridiculus auctor nam eu vehicula platea volutpat consequat,
sodales conubia sociosqu est faucibus ornare scelerisque egestas. Eros litora
platea massa risus aliquet hac faucibus, nam etiam fermentum convallis justo
diam turpis, auctor venenatis dapibus a posuere et.
</p>
<p>
Rutrum id aenean fermentum condimentum quis urna turpis, elementum torquent a
vestibulum feugiat fringilla, lacinia taciti laoreet ornare vivamus ut. Diam
pellentesque etiam est aenean justo litora cum, ligula vitae ultricies conubia
magna magnis. Quam tempus donec vestibulum dui pellentesque in semper pulvinar
sociosqu quis, sodales ultrices potenti cras mattis laoreet etiam per placerat,
mi aliquet a praesent ante orci accumsan magna neque.
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit consequat ultrices
lacinia, taciti mauris facilisi praesent tincidunt semper porttitor molestie
laoreet, sociosqu quisque risus faucibus quis elementum nisi eget sociis. Dui
justo curabitur ridiculus auctor nam eu vehicula platea volutpat consequat,
sodales conubia sociosqu est faucibus ornare scelerisque egestas. Eros litora
platea massa risus aliquet hac faucibus, nam etiam fermentum convallis justo
diam turpis, auctor venenatis dapibus a posuere et.
</p>
<p>
Rutrum id aenean fermentum condimentum quis urna turpis, elementum torquent a
vestibulum feugiat fringilla, lacinia taciti laoreet ornare vivamus ut. Diam
pellentesque etiam est aenean justo litora cum, ligula vitae ultricies conubia
magna magnis. Quam tempus donec vestibulum dui pellentesque in semper pulvinar
sociosqu quis, sodales ultrices potenti cras mattis laoreet etiam per placerat,
mi aliquet a praesent ante orci accumsan magna neque.
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipiscing elit consequat ultrices
lacinia, taciti mauris facilisi praesent tincidunt semper porttitor molestie
laoreet, sociosqu quisque risus faucibus quis elementum nisi eget sociis. Dui
justo curabitur ridiculus auctor nam eu vehicula platea volutpat consequat,
sodales conubia sociosqu est faucibus ornare scelerisque egestas. Eros litora
platea massa risus aliquet hac faucibus, nam etiam fermentum convallis justo
diam turpis, auctor venenatis dapibus a posuere et.
</p>
<p>
Rutrum id aenean fermentum condimentum quis urna turpis, elementum torquent a
vestibulum feugiat fringilla, lacinia taciti laoreet ornare vivamus ut. Diam
pellentesque etiam est aenean justo litora cum, ligula vitae ultricies conubia
magna magnis. Quam tempus donec vestibulum dui pellentesque in semper pulvinar
sociosqu quis, sodales ultrices potenti cras mattis laoreet etiam per placerat,
mi aliquet a praesent ante orci accumsan magna neque.
</p>
<section>
<p>Best regards,</p>
<br />
<br />
<p>Me</p>
<p>Company SA</p>
</section>
</div>
<div class="ci-letter-footer">
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div>
<span class="ci-letter-footer-title">Address</span><span></span>
<span class="ci-letter-footer-title">&nbsp;</span><span></span>
<span class="ci-letter-footer-title">&nbsp;</span><span> </span>
<span class="ci-letter-footer-title">&nbsp;</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Telephone</span><span></span>
<span class="ci-letter-footer-title">Telefax</span><span></span>
<span class="ci-letter-footer-title">Email</span><span>author@test-organisation.com</span>
<span class="ci-letter-footer-title">Web Adress</span><span></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title">Bank Account</span><span></span>
<span class="ci-letter-footer-title">BIC</span><span></span>
<span class="ci-letter-footer-title">IBAN</span><span></span>
<span class="ci-letter-footer-title">VAT ID</span><span></span>
<span class="ci-letter-footer-title">Siren</span><span></span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Template.Test.Letter.Expected.Output.Sample</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>letter html output with header hidden in different language and longer than a page for portal tests.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>template_test_letter_output_expected_004_de_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>de</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Template Test Letter Expected Output Sample</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>004</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510161766.02</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>963.62302.10857.46148</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1512573440.83</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1510161766.01</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<registered_skin_selection>
<skin_folder_selection>
<skin_folder>erp5_corporate_identity_letter</skin_folder>
<skin_selection>Letter</skin_selection>
</skin_folder_selection>
<skin_folder_selection>
<skin_folder>erp5_corporate_identity_slide</skin_folder>
<skin_selection>Slide</skin_selection>
......
"""
================================================================================
Create a destination dict for filling templates
================================================================================
"""
blank = ''
from Products.PythonScripts.standard import html_quote
# -------------------------- External parameters ------------------------------
# eg "Nexedi" specific parameters
customHandler = getattr(context, "WebPage_getCustomParameter", None)
# parameters common to all templates
commonHandler = getattr(context, "WebPage_getCommonParameter", None)
commonProxyHandler = getattr(context, "WebPage_getCommonProxyParameter", None)
def getCustomParameter(my_parameter, my_override_data):
if customHandler is not None:
source_data = my_override_data or context.getUid()
return customHandler(parameter=my_parameter, source_data=source_data)
def getCommonParameter(my_parameter, my_override_data):
if commonHandler is not None:
source_data = my_override_data or context.getUid()
return commonHandler(parameter=my_parameter, source_data=source_data)
def getCommonProxyParameter(my_parameter, my_override_data):
if commonProxyHandler is not None:
source_data = my_override_data or context.getUid()
return commonProxyHandler(parameter=my_parameter, source_data=source_data)
# ---------------------------- Set Destination --------------------------------
# destination => Web Page = follow-up Organisation or Person, Event
if destination is None:
destination_person = None
destination_person_list = []
destination_organisation = None
destination_organisation_list = []
destination_uid = None
# destination person
if override_destination_person_title is not None or override_destination_person_title is blank:
destination_person_list = getCommonProxyParameter("override_person", override_destination_person_title)
if len(destination_person_list) == 0:
destination_person_list = getCommonProxyParameter("person", None)
if len(destination_person_list) > 0:
destination_person = destination_person_list[0]
# destination organisation
if override_destination_organisation_title is not None or override_destination_organisation_title is blank:
destination_organisation_list = getCommonProxyParameter("override_organisation", override_destination_organisation_title)
if len(destination_organisation_list) == 0:
destination_organisation_list = getCommonProxyParameter("organisation", None)
if len(destination_organisation_list) == 0 and destination_person is not None:
destination_organisation_list = getCommonProxyParameter("source", destination_person.get("uid")) or []
if len(destination_organisation_list) > 0:
destination_organisation = destination_organisation_list[0]
destination = {}
destination.update(destination_person or {})
destination.update(destination_organisation or {})
# destination => event
else:
destination_uid = context.restrictedTraverse(destination).getUid()
destination = getCommonProxyParameter("destination", destination_uid)
return destination
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>destination=None, override_destination_person_title=None, override_destination_organisation_title=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Base_getDestinationDict</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -75,8 +75,11 @@
<value>
<list>
<string>format</string>
<string>head_display</string>
<string>portal_skin</string>
<string>display_svg</string>
<string>display_head</string>
<string>display_source_address</string>
<string>document_save</string>
</list>
</value>
</item>
......@@ -129,7 +132,7 @@
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string>WebPage_updateExportAsLetterDialog</string> </value>
<value> <string>WebPage_updateLetterDialog</string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
......
......@@ -301,7 +301,7 @@
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
python: \'<iframe width="100%%" height="500" style="background-color:#FFFFFF;box-sizing:border-box;-wekbit-box-sizing:border-box;" src="%s/WebPage_viewAsWeb?portal_skin=Letter&amp;override_source_person_title=%s&amp;override_source_organisation_title=%s&amp;override_destination_person_title=%s&amp;override_destination_organisation_title=%s&amp;head_display=%s&amp;override_date=%s" name="default_version"></iframe>\' % (context.absolute_url(), context.REQUEST.get("override_source_person_title", ""), context.REQUEST.get("override_source_organisation_title", ""), context.REQUEST.get("override_destination_person_title", ""), context.REQUEST.get("override_destination_organisation_title", ""), context.REQUEST.get("head_display", 1), context.REQUEST.get("override_date", ""))
python: \'<iframe width="100%%" height="500" style="background-color:#FFFFFF;box-sizing:border-box;-wekbit-box-sizing:border-box;" src="%s/WebPage_viewAsWeb?portal_skin=Letter&amp;override_source_person_title=%s&amp;override_source_organisation_title=%s&amp;override_destination_person_title=%s&amp;override_destination_organisation_title=%s&amp;head_display=%s&amp;override_date=%s&amp;display_source_address=%s" name="default_version"></iframe>\' % (context.absolute_url(), context.REQUEST.get("override_source_person_title", ""), context.REQUEST.get("override_source_organisation_title", ""), context.REQUEST.get("override_destination_person_title", ""), context.REQUEST.get("override_destination_organisation_title", ""), context.REQUEST.get("head_display", 1), context.REQUEST.get("override_date", ""), context.REQUEST.get("display_source_address", ""))
]]></string> </value>
</item>
......
......@@ -17,7 +17,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>head_display</string> </value>
<value> <string>display_head</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>display_source_address</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>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</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>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_checkbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Display Source Address</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>items</string>
<string>orientation</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>display_svg</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>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</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>items</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>orientation</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string>png</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_radio_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list>
<tuple>
<string>svg</string>
<string>svg</string>
</tuple>
<tuple>
<string>png</string>
<string>png</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>orientation</string> </key>
<value> <string>horizontal</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Svg Output Format</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>document_save</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>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</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>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_checkbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Save in Document Module</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -75,7 +75,9 @@
<value>
<list>
<string>portal_skin</string>
<string>head_display</string>
<string>display_head</string>
<string>display_source_address</string>
<string>display_svg</string>
</list>
</value>
</item>
......@@ -128,7 +130,7 @@
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string>WebPage_updatePrintAsLetterDialog</string> </value>
<value> <string>WebPage_updateLetterDialog</string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
......
......@@ -301,7 +301,7 @@
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
python: \'<iframe width="100%%" height="500" style="background-color:#FFFFFF;box-sizing:border-box;-wekbit-box-sizing:border-box;" src="%s/WebPage_viewAsWeb?portal_skin=Letter&amp;override_source_person_title=%s&amp;override_source_organisation_title=%s&amp;override_destination_person_title=%s&amp;override_destination_organisation_title=%s&amp;head_display=%s&amp;override_date=%s" name="default_version"></iframe>\' % (context.absolute_url(), context.REQUEST.get("override_source_person_title", ""), context.REQUEST.get("override_source_organisation_title", ""), context.REQUEST.get("override_destination_person_title", ""), context.REQUEST.get("override_destination_organisation_title", ""), context.REQUEST.get("head_display", 1), context.REQUEST.get("override_date", ""))
python: \'<iframe width="100%%" height="500" style="background-color:#FFFFFF;box-sizing:border-box;-wekbit-box-sizing:border-box;" src="%s/WebPage_viewAsWeb?portal_skin=Letter&amp;override_source_person_title=%s&amp;override_source_organisation_title=%s&amp;override_destination_person_title=%s&amp;override_destination_organisation_title=%s&amp;head_display=%s&amp;override_date=%s&amp;display_source_address=%s" name="default_version"></iframe>\' % (context.absolute_url(), context.REQUEST.get("override_source_person_title", ""), context.REQUEST.get("override_source_organisation_title", ""), context.REQUEST.get("override_destination_person_title", ""), context.REQUEST.get("override_destination_organisation_title", ""), context.REQUEST.get("head_display", 1), context.REQUEST.get("override_date", ""), context.REQUEST.get("display_source_address", ""))
]]></string> </value>
</item>
......
......@@ -17,7 +17,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>head_display</string> </value>
<value> <string>display_head</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>display_source_address</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>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</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>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_checkbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Display Source Address</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>items</string>
<string>orientation</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>display_svg</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>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</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>items</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>orientation</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string>png</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_radio_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list>
<tuple>
<string>svg</string>
<string>svg</string>
</tuple>
<tuple>
<string>png</string>
<string>png</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>orientation</string> </key>
<value> <string>horizontal</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Svg Output Format</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>100.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_corporate_identity_letter</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>business letter</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Letter_createLetter</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<tal:comment replace="nothing">
"""
================================================================================
Generates the complete letter
================================================================================
"""
</tal:comment>
<tal:block tal:define="letter_display_head python: options.get('letter_display_head');
letter_theme python: options.get('letter_theme');
letter_title python: options.get('letter_title');
letter_language python: options.get('letter_language');
letter_theme_css_font_list python: options.get('letter_theme_css_font_list');
letter_theme_css_url python: options.get('letter_theme_css_url');
letter_theme_logo_url python: options.get('letter_theme_logo_url');
letter_theme_logo_alt python: options.get('letter_theme_logo_alt');
letter_template_css_url python: options.get('letter_template_css_url');
letter_timestamp python: options.get('letter_timestamp');
letter_source_company python: options.get('letter_source_company');
letter_source_company_corporate_name python: options.get('letter_source_company_corporate_name');
letter_source_company python: options.get('letter_source_company');
letter_source_company_capital python: options.get('letter_source_company_capital');
letter_source_company_capital_currency python: options.get('letter_source_company_capital_currency');
letter_source_registered_court python: options.get('letter_source_registered_court');
letter_source_ape_code python: options.get('letter_source_ape_code');
letter_source_address python: options.get('letter_source_address');
letter_source_country_code python: options.get('letter_source_country_code');
letter_source_postal_code python: options.get('letter_source_postal_code');
letter_source_city python: options.get('letter_source_city');
letter_destination_company python: options.get('letter_destination_company');
letter_destination_person python: options.get('letter_destination_person');
letter_destination_address python: options.get('letter_destination_address');
letter_destination_postal_code python: options.get('letter_destination_postal_code');
letter_destination_city python: options.get('letter_destination_city');
letter_destination_country python: options.get('letter_destination_country');
letter_content python: options.get('letter_content');
letter_display_source_address python: options.get('letter_display_source_address');
letter_source_company python: options.get('letter_source_company');
letter_source_address python: options.get('letter_source_address');
letter_source_postal_code python: options.get('letter_source_postal_code');
letter_source_city python: options.get('letter_source_city');
letter_source_country python: options.get('letter_source_country');
letter_source_vat python: options.get('letter_source_vat');
letter_source_corporate_registration python: options.get('letter_source_corporate_registration');
letter_source_phone python: options.get('letter_source_phone');
letter_source_fax python: options.get('letter_source_fax');
letter_source_mail python: options.get('letter_source_mail');
letter_source_website python: options.get('letter_source_website');
letter_source_bank python: options.get('letter_source_bank');
letter_source_bic python: options.get('letter_source_bic');
letter_source_iban python: options.get('letter_source_iban');">
<!DOCTYPE html>
<html tal:attributes="class python: ''.join(['ci-', letter_theme, ' ci-', letter_language])">
<head>
<meta charset="utf-8">
<title tal:content="letter_title"></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<tal:block tal:repeat="font_url letter_theme_css_font_list">
<link rel="stylesheet" tal:attributes="href font_url" />
</tal:block>
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_theme_css_url, '?portal_skin=Letter'])" />
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_template_css_url, '?portal_skin=Letter'])" />
</head>
<body class="ci-letter">
<tal:block metal:use-macro="context/Letter_createLetterHeader/macros/letter_header" />
<tal:block metal:use-macro="context/Letter_createLetterContent/macros/letter_content" />
<tal:block metal:use-macro="context/Letter_createLetterFooter/macros/letter_footer" />
</body>
</html>
</tal:block>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Letter_createLetterContent</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<tal:comment replace="nothing">
"""
================================================================================
Generates the letter Content
================================================================================
"""
</tal:comment>
<tal:block tal:define="letter_display_head python: options.get('letter_display_head');
letter_theme python: options.get('letter_theme');
letter_title python: options.get('letter_title');
letter_language python: options.get('letter_language');
letter_theme_css_font_list python: options.get('letter_theme_css_font_list');
letter_theme_css_url python: options.get('letter_theme_css_url');
letter_theme_logo_url python: options.get('letter_theme_logo_url');
letter_theme_logo_alt python: options.get('letter_theme_logo_alt');
letter_template_css_url python: options.get('letter_template_css_url');
letter_timestamp python: options.get('letter_timestamp');
letter_source_company python: options.get('letter_source_company');
letter_source_address python: options.get('letter_source_address');
letter_source_country_code python: options.get('letter_source_country_code');
letter_source_postal_code python: options.get('letter_source_postal_code');
letter_source_city python: options.get('letter_source_city');
letter_destination_company python: options.get('letter_destination_company');
letter_destination_person python: options.get('letter_destination_person');
letter_destination_address python: options.get('letter_destination_address');
letter_destination_postal_code python: options.get('letter_destination_postal_code');
letter_destination_city python: options.get('letter_destination_city');
letter_destination_country python: options.get('letter_destination_country');
letter_display_source_address python: options.get('letter_display_source_address');
letter_content python: options.get('letter_content');">
<!DOCTYPE html>
<html tal:attributes="class python: ''.join(['ci-', letter_theme, ' ci-', letter_language])">
<head>
<meta charset="utf-8">
<title tal:content="letter_title"></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<tal:block tal:repeat="font_url letter_theme_css_font_list">
<link rel="stylesheet" tal:attributes="href font_url" />
</tal:block>
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_theme_css_url, '?portal_skin=Letter'])" />
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_template_css_url, '?portal_skin=Letter'])" />
</head>
<body class="ci-letter">
<tal:block metal:use-macro="context/Letter_createLetterContent/macros/letter_content" />
</body>
</html>
</tal:block>
<tal:block tal:condition="python: False">
<tal:block metal:define-macro="letter_content">
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tal:block tal:condition="python: int(letter_display_head)">
<tr>
<td></td>
<td class="ci-letter-source">
<tal:block tal:condition="python: letter_display_source_address is not None">
<tal:block tal:condition="python: letter_source_company">
<span tal:content="letter_source_company"></span><span class="ci-letter-separator">-</span>
</tal:block>
<tal:block tal:condition="python: letter_source_address">
<span tal:content="letter_source_address"></span><span class="ci-letter-separator">-</span>
</tal:block>
<tal:block tal:condition="python: letter_source_country_code">
<span tal:content="letter_source_country_code"></span><span class="ci-letter-separator">-</span>
</tal:block>
<span tal:content="letter_source_postal_code"></span>&nbsp;
<span tal:content="letter_source_city"></span>
</tal:block>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-destination">
<span tal:content="python: letter_destination_company or ' '"></span>
<span tal:content="python: letter_destination_person or ' '"></span>
<span tal:content="python: letter_destination_address or ' '"></span>
<span tal:content="python: ''.join([letter_destination_postal_code, ' ', letter_destination_city])"></span>
<span tal:content="python: letter_destination_country or ' '"></span>
</td>
<td></td>
</tr>
</tal:block>
</tbody>
</table>
</div>
<div class="ci-letter-body" tal:content="structure letter_content"></div>
</tal:block>
</tal:block>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Letter_createLetterFooter</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<tal:comment replace="nothing">
"""
================================================================================
Creates the Letter footer section.
================================================================================
"""
</tal:comment>
<tal:block tal:define="letter_theme python: options.get('letter_theme');
letter_title python: options.get('letter_title');
letter_language python: options.get('letter_language');
letter_theme_css_font_list python: options.get('letter_theme_css_font_list');
letter_theme_css_url python: options.get('letter_theme_css_url');
letter_theme_logo_url python: options.get('letter_theme_logo_url');
letter_theme_logo_alt python: options.get('letter_theme_logo_alt');
letter_template_css_url python: options.get('letter_template_css_url');
letter_source_company python: options.get('letter_source_company');
letter_source_company_corporate_name python: options.get('letter_source_company_corporate_name');
letter_source_company_capital python: options.get('letter_source_company_capital');
letter_source_company_capital_currency python: options.get('letter_source_company_capital_currency');
letter_source_registered_court python: options.get('letter_source_registered_court');
letter_source_ape_code python: options.get('letter_source_ape_code');
letter_source_address python: options.get('letter_source_address');
letter_source_postal_code python: options.get('letter_source_postal_code');
letter_source_city python: options.get('letter_source_city');
letter_source_country python: options.get('letter_source_country');
letter_source_vat python: options.get('letter_source_vat');
letter_source_corporate_registration python: options.get('letter_source_corporate_registration');
letter_source_phone python: options.get('letter_source_phone');
letter_source_fax python: options.get('letter_source_fax');
letter_source_mail python: options.get('letter_source_mail');
letter_source_website python: options.get('letter_source_website');
letter_source_bank python: options.get('letter_source_bank');
letter_source_bic python: options.get('letter_source_bic');
letter_source_iban python: options.get('letter_source_iban');">
<!DOCTYPE html>
<html tal:attributes="class python: ''.join(['ci-', letter_theme, ' ci-', letter_language])">
<head>
<meta charset="utf-8">
<title tal:content="letter_title"></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<tal:block tal:repeat="font_url letter_theme_css_font_list">
<link rel="stylesheet" tal:attributes="href font_url" />
</tal:block>
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_theme_css_url, '?portal_skin=Letter'])" />
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_template_css_url, '?portal_skin=Letter'])" />
</head>
<body class="ci-letter">
<tal:block metal:use-macro="context/Letter_createLetterFooter/macros/letter_footer" />
</body>
</html>
</tal:block>
<tal:block tal:condition="python: False">
<tal:block metal:define-macro="letter_standard_footer">
<div class="ci-letter-footer ci-letter-footer-simple">
<p class="ci-letter-simple-adress">
<span tal:content="python: letter_source_company_corporate_name"></span>&nbsp;
<tal:block tal:condition="python: letter_source_company_capital is not None">
<span i18n:translate="" i18n:domain="erp5_ui">au capital de</span>&nbsp;
<span tal:content="python: letter_source_company_capital"></span>
<span tal:content="python: letter_source_company_capital_currency or '&euro;'"></span>,
</tal:block>
<span tal:content="python: ''.join([letter_source_address, ', ', letter_source_postal_code, ' ', letter_source_city])"></span>
<br/>
<tal:block tal:condition="python: letter_source_registered_court is not None">
<span tal:content="python: letter_source_registered_court"></span> -
</tal:block>
<tal:block tal:condition="python: letter_source_ape_code is not None">
<span i18n:translate="" i18n:domain="erp5_ui">APE</span> : <span tal:content="letter_source_ape_code"></span> -
</tal:block>
<span i18n:translate="" i18n:domain="erp5_ui">N° TVA</span> : <span tal:content="python: letter_source_vat"></span>
<br/>
<span>
<b i18n:translate="" i18n:domain="erp5_ui">Email:</b>
<a tal:attributes="href python: ''.join(['mailto:', letter_source_mail])">
<b tal:content="letter_source_mail"></b>
</a>
</span> - <span>
<b i18n:translate="" i18n:domain="erp5_ui">Tel</b><b>:</b> <b tal:content="python: letter_source_phone"></b>
</span>
</p>
</tal:block>
</tal:block>
<tal:block tal:condition="python: False">
<tal:block metal:define-macro="letter_footer">
<div class="ci-letter-footer">
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">Address</span><span tal:content="letter_source_company"></span>
<span class="ci-letter-footer-title">&nbsp;</span><span tal:content="letter_source_address"></span>
<span class="ci-letter-footer-title">&nbsp;</span><span tal:content="python: ''.join([letter_source_postal_code, ' ', letter_source_city])"></span>
<span class="ci-letter-footer-title">&nbsp;</span><span tal:content="letter_source_country"></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">Telephone</span><span tal:content="letter_source_phone"></span>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">Telefax</span><span tal:content="letter_source_fax"></span>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">Email</span><span tal:content="letter_source_mail"></span>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">Web Adress</span><span tal:content="letter_source_website"></span>
</div>
</td>
<td>
<div>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">Bank Account</span><span tal:content="letter_source_bank"></span>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">BIC</span><span tal:content="letter_source_bic"></span>
<span class="ci-letter-footer-title"i18n:translate="" i18n:domain="erp5_ui">IBAN</span><span tal:content="letter_source_iban"></span>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">VAT ID</span><span tal:content="letter_source_vat"></span>
<span class="ci-letter-footer-title" i18n:translate="" i18n:domain="erp5_ui">Siren</span><span tal:content="letter_source_corporate_registration"></span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</tal:block>
</tal:block>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Letter_createLetterHeader</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<tal:comment replace="nothing">
"""
================================================================================
Generates the letter header
================================================================================
"""
</tal:comment>
<tal:block tal:define="letter_display_head python: options.get('letter_display_head');
letter_theme python: options.get('letter_theme');
letter_title python: options.get('letter_title');
letter_language python: options.get('letter_language');
letter_theme_css_font_list python: options.get('letter_theme_css_font_list');
letter_theme_css_url python: options.get('letter_theme_css_url');
letter_theme_logo_url python: options.get('letter_theme_logo_url');
letter_theme_logo_alt python: options.get('letter_theme_logo_alt');
letter_template_css_url python: options.get('letter_template_css_url');
letter_timestamp python: options.get('letter_timestamp');
letter_source_city python: options.get('letter_source_city');">
<!DOCTYPE html>
<html tal:attributes="class python: ''.join(['ci-', letter_theme, ' ci-', letter_language])">
<head>
<meta charset="utf-8">
<title tal:content="letter_title"></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<tal:block tal:repeat="font_url letter_theme_css_font_list">
<link rel="stylesheet" tal:attributes="href font_url" />
</tal:block>
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_theme_css_url, '?portal_skin=Letter'])" />
<link rel="stylesheet" tal:attributes="href python: ''.join([letter_template_css_url, '?portal_skin=Letter'])" />
<script type="text/javascript">
function setPlaceholdersWithUrlParameters() {
var vars={};
var x=window.location.search.substring(1).split('&');
for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
for (var i in x) {
var y = document.getElementsByClassName(x[i]);
for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
}
}
</script>
</head>
<body class="ci-letter" onload="setPlaceholdersWithUrlParameters();">
<tal:block metal:use-macro="context/Letter_createLetterHeader/macros/letter_header" />
</body>
</html>
</tal:block>
<tal:block tal:condition="python: False">
<tal:block metal:define-macro="letter_standard_header">
<div class="ci-letter-head-simple-left">
<img tal:attributes="src python: letter_theme_logo_url; alt python: letter_theme_logo_alt" />
</div>
<div class="ci-letter-head-simple-right">
<span class="ci-letter-head-simple-location" tal:content="python: letter_source_city"></span>, <span i18n:translate="" i18n:domain="erp5_ui"></span> <span tal:content="python:letter_timestamp"></span>
</div>
</tal:block>
</tal:block>
<tal:block tal:condition="python: False">
<tal:block metal:define-macro="letter_header">
<div class="ci-letter-header">
<div class="ci-letter-bar">
<div class="ci-letter-bar-logo">
<img tal:attributes="src python: letter_theme_logo_url;
alt python: letter_theme_logo_alt" />
<span tal:content="letter_theme_logo_alt"></span>
</div>
<div class="ci-letter-bar-purporse"><span></span></div>
</div>
</div>
<div class="ci-letter-head ci-letter-head-right">
<table>
<tbody>
<tr>
<td></td>
<td class="ci-letter-timestamp">
<span i18n:translate="" i18n:domain="erp5_ui">Date</span><span tal:content="letter_timestamp"></span>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="ci-letter-page">
<span i18n:translate="" i18n:domain="erp5_ui">Page</span><span><span class="page"></span><span>/</span><span class="topage"></span><span>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</tal:block>
</tal:block>
\ No newline at end of file
"""
================================================================================
MAIN FILE: generate letter in different output formats
================================================================================
"""
# kw-parameters (* default)
# ------------------------------------------------------------------------------
# format: output in html*, pdf
# transformation: convert content into nothing*, book
# ------
# override_source_person: to use instead of the underlying document creator
# override_source_organisation: to use instead of document creator organisation
# override_destination_person: to use instead of event destination/null
# override_destination_organisation: to use instead of event destination/null
# override_date to use instead of current date
# override_batch_mode used for tests
# ------
# document_download: download file directly (default None)
# document_save: save file in document module (default None)
# ------
# display_head: display letter adress head (1)* or not (0)
# display_svg display images in svg or png*
# display_source_address display source adress in adress field
import re
from Products.PythonScripts.standard import html_quote
from base64 import b64encode
from datetime import datetime
blank = ''
# -------------------------- External parameters ------------------------------
# eg "Nexedi" specific parameters
customHandler = getattr(context, "WebPage_getCustomParameter", None)
# parameters common to all templates
commonHandler = getattr(context, "WebPage_getCommonParameter", None)
commonProxyHandler = getattr(context, "WebPage_getCommonProxyParameter", None)
def getCustomParameter(my_parameter, my_override_data):
if customHandler is not None:
source_data = my_override_data or letter_uid
return customHandler(parameter=my_parameter, source_data=source_data)
def getCommonParameter(my_parameter, my_override_data):
if commonHandler is not None:
source_data = my_override_data or letter_uid
return commonHandler(parameter=my_parameter, source_data=source_data)
def getCommonProxyParameter(my_parameter, my_override_data):
if commonProxyHandler is not None:
source_data = my_override_data or letter_uid
return commonProxyHandler(parameter=my_parameter, source_data=source_data)
def setOverrideParam(my_context, my_override, my_param):
if my_override is not None and my_override is not blank:
return html_quote(my_override)
return getattr(my_context, my_param) or None
# XXX how to set checkbox correctly?
def setToNone(param):
if param == blank or param == None or param == 0 or param == str(0):
return None
else:
return param
# -------------------------- Setup ---------------------------------------------
letter = context
letter_format = kw.get('format', 'html')
letter_display_head = kw.get('dislay_head', 1)
letter_display_svg = kw.get('display_svg', 'png')
letter_display_source_adress = kw.get('letter_display_source_adress', None)
letter_download = kw.get('document_download', None)
letter_save = kw.get('document_save', None)
letter_transformation = kw.get('transformation', None)
override_source_person_title = kw.get('override_source_person_title', None)
override_source_organisation_title = kw.get("override_source_organisation_title", None)
override_destination_person_title = kw.get("override_destination_person_title", None)
override_destination_organisation_title = kw.get("override_destination_organisation_title", None)
override_date = kw.get("override_date", None)
override_batch_mode = kw.get('batch_mode', False)
# -------------------------- Document Parameters ------------------------------
letter_form = letter.REQUEST
letter_portal_type = letter.getPortalType()
letter_uid = letter.getUid()
letter_relative_url = letter.getRelativeUrl()
letter_source_candidate_uid = None
letter_prefix = "Letter."
# letter can be Web Page or Event created in Ticket module
if letter_portal_type == "Web Page":
letter_dialog_id = letter_form.get('dialog_id', None)
letter_title = letter.getTitle()
letter_modification_date = DateTime(override_date) if override_date else letter.getCreationDate()
letter_content = letter.getTextContent()
letter_language = letter.getLanguage()
letter_aggregate_list = []
letter_source = None
letter_destination = None
letter_url = letter.getAbsoluteUrl()
letter_reference = letter.getReference()
letter_version = letter.getVersion() or "001"
else:
letter_save = setToNone(letter_save) or True
letter_dialog_id = None
letter_modification_date = letter_form['start_date'] or None or letter.getCreationDate()
letter_title = letter_form.get('title')
letter_content = letter_form.get('text_content')
letter_aggregate_list = letter.getAggregateList()
letter_language = letter_form.get('select_language')
letter_source = letter_form.get('source') or None
letter_destination = letter_form.get('destination') or None
# cut corner to retrieve path to css files
portal_object = context.getPortalObject()
letter_url = portal_object.absolute_url()
letter_version = "001"
letter_reference = letter_form.get("reference")
if letter_language and letter_format == "pdf":
letter.REQUEST['AcceptLanguage'].set(letter_language, 10)
if letter_reference is None:
letter_reference = letter_prefix + letter_title.replace(" ", ".")
letter_full_reference = '-'.join([letter_reference, letter_version, letter_language])
# --------------------------- Layout Parameters --------------------------------
letter_theme = letter.Base_getThemeDict(
custom_theme=getCustomParameter("theme", None),
override_batch_mode=override_batch_mode,
format=letter_format,
url=letter_url,
css_path="/letter_css/letter"
)
# --------------------------- Source/Destination -------------------------------
letter_source = letter.Base_getSourceDict(
source=letter_source,
override_source_person_title=override_source_person_title,
override_source_organisation_title=override_source_organisation_title,
default_company_title=getCustomParameter("default_company_title", None),
default_bank_account_uid=getCustomParameter("default_bank_account_uid", None),
override_logo_reference=None,
theme_logo_url=letter_theme.get("theme_logo_url", None)
)
letter_destination = letter.Base_getDestinationDict(
destination=letter_destination,
override_destination_person_title=override_destination_person_title,
override_destination_organisation_title=override_destination_organisation_title,
)
# ========================= TRANSFORMATION: book ===============================
# --------------------------- Content Upgrades ---------------------------------
for image in re.findall('(<img.*?/>)', letter_content):
letter_content = letter_content.replace(
image,
context.WebPage_validateImage(img_string=image, img_svg_format=setToNone(letter_display_svg))
)
# ============================= Format: html ===================================
if letter_format == "html":
letter.REQUEST.RESPONSE.setHeader("Content-Type", "text/html;")
return letter.Letter_createLetter(
letter_display_head=setToNone(letter_display_head),
letter_theme=letter_theme.get("theme"),
letter_title=letter_title,
letter_language=letter_language,
letter_theme_css_font_list=letter_theme.get("theme_css_font_list"),
letter_theme_css_url=letter_theme.get("theme_css_url"),
letter_template_css_url=letter_theme.get("template_css_url"),
letter_theme_logo_url=letter_source.get("enhanced_logo_url"),
letter_theme_logo_alt=letter_theme.get("theme_logo_description"),
letter_timestamp=letter_modification_date.strftime('%Y-%m-%d'),
letter_destination_company=letter_destination.get("organisation_title", blank),
letter_destination_person=letter_destination.get("name", blank),
letter_destination_address=letter_destination.get("address", blank),
letter_destination_postal_code=letter_destination.get("postal_code", blank),
letter_destination_city=letter_destination.get("city", blank),
letter_destination_country=letter_destination.get("country", blank),
letter_source_company=letter_source.get("corporate_name", letter_source.get("organisation_title", blank)),
letter_source_company_corporate_name=letter_source.get("corporate_name", blank),
letter_source_company_capital=letter_source.get("social_capital", blank),
letter_source_company_capital_currency=letter_source.get("social_capital_currency", getCustomParameter("default_source_company_capital_currency", blank)),
letter_source_registered_court=letter_source.get("registered_court", getCustomParameter("default_source_registered_court", blank)),
letter_source_ape_code=letter_source.get("activity_code", blank),
letter_source_address=letter_source.get("address", blank),
letter_source_postal_code=letter_source.get("postal_code", blank),
letter_source_city=letter_source.get("city", blank),
letter_source_country_code=letter_source.get("codification", blank),
letter_content = letter_content,
letter_display_source_adress=setToNone(letter_display_source_adress),
letter_source_vat=letter_source.get("vat", blank),
letter_source_corporate_registration=letter_source.get("corporate_registration", blank),
letter_source_phone=letter_source.get("phone", blank),
letter_source_fax=letter_source.get("fax", blank),
letter_source_mail=letter_source.get("email", blank),
letter_source_website=letter_source.get("website", blank),
letter_source_bank=letter_source.get("bank", blank),
letter_source_bic=letter_source.get("bic", blank),
letter_source_iban=letter_source.get("iban", blank)
)
# ============================= Format: pdf ====================================
if letter_format == "pdf":
letter_head = letter.Letter_createLetterHeader(
letter_display_head=setToNone(letter_display_head),
letter_theme=letter_theme.get("theme"),
letter_title=letter_title,
letter_language=letter_language,
letter_theme_css_font_list=letter_theme.get("theme_css_font_list"),
letter_theme_css_url=letter_theme.get("theme_css_url"),
letter_template_css_url=letter_theme.get("template_css_url"),
letter_theme_logo_url=letter_source.get("enhanced_logo_url"),
letter_theme_logo_alt=letter_theme.get("theme_logo_description"),
letter_timestamp=letter_modification_date.strftime('%Y-%m-%d'),
letter_source_city=letter_source.get("city", blank)
)
letter_content = letter.Letter_createLetterContent(
letter_display_head=setToNone(letter_display_head),
letter_theme=letter_theme.get("theme"),
letter_title=letter_title,
letter_language=letter_language,
letter_theme_css_font_list=letter_theme.get("theme_css_font_list"),
letter_theme_css_url=letter_theme.get("theme_css_url"),
letter_template_css_url=letter_theme.get("template_css_url"),
letter_theme_logo_url=letter_source.get("enhanced_logo_url"),
letter_theme_logo_alt=letter_theme.get("theme_logo_description"),
letter_timestamp=letter_modification_date.strftime('%Y-%m-%d'),
letter_destination_company=letter_destination.get("organisation_title", blank),
letter_destination_person=letter_destination.get("name", blank),
letter_destination_address=letter_destination.get("address", blank),
letter_destination_postal_code=letter_destination.get("postal_code", blank),
letter_destination_city=letter_destination.get("city", blank),
letter_destination_country=letter_destination.get("country", blank),
letter_source_company=letter_source.get("corporate_name", letter_source.get("organisation_title", blank)),
letter_source_address=letter_source.get("address", blank),
letter_source_postal_code=letter_source.get("postal_code", blank),
letter_source_city=letter_source.get("city", blank),
letter_source_country_code=letter_source.get("codification", blank),
letter_display_source_adress=setToNone(letter_display_source_adress),
letter_content = letter_content
)
letter_foot = letter.Letter_createLetterFooter(
letter_theme=letter_theme.get("theme"),
letter_title=letter_title,
letter_language=letter_language,
letter_theme_css_font_list=letter_theme.get("theme_css_font_list"),
letter_theme_css_url=letter_theme.get("theme_css_url"),
letter_template_css_url=letter_theme.get("template_css_url"),
letter_source_company=letter_source.get("organisation_title", blank),
letter_source_company_corporate_name=letter_source.get("corporate_name", blank),
letter_source_company_capital=letter_source.get("social_capital", blank),
letter_source_company_capital_currency=letter_source.get("social_capital_currency", getCustomParameter("default_source_company_capital_currency", blank)),
letter_source_registered_court=letter_source.get("registered_court", getCustomParameter("default_source_registered_court", blank)),
letter_source_ape_code=letter_source.get("activity_code", blank),
letter_source_address=letter_source.get("address", blank),
letter_source_postal_code=letter_source.get("postal_code", blank),
letter_source_city=letter_source.get("city", blank),
letter_source_country=letter_source.get("country", blank),
letter_source_vat=letter_source.get("vat", blank),
letter_source_corporate_registration=letter_source.get("corporate_registration", blank),
letter_source_phone=letter_source.get("phone", blank),
letter_source_fax=letter_source.get("fax", blank),
letter_source_mail=letter_source.get("email", blank),
letter_source_website=letter_source.get("website", blank),
letter_source_bank=letter_source.get("bank", blank),
letter_source_bic=letter_source.get("bic", blank),
letter_source_iban=letter_source.get("iban", blank),
)
# ================ encode and build cloudoo elements =========================
embedded_html_data = letter.Base_convertHtmlToSingleFile(letter_content, allow_script=True)
header_embedded_html_data = letter.Base_convertHtmlToSingleFile(letter_head, allow_script=True)
footer_embedded_html_data = letter.Base_convertHtmlToSingleFile(letter_foot, allow_script=True)
pdf_file = letter.Base_cloudoooDocumentConvert(embedded_html_data, "html", "pdf", conversion_kw=dict(
encoding="utf8",
margin_top=26,
margin_bottom=30,
margin_left=0,
margin_right=0,
header_spacing=1,
header_html_data=b64encode(header_embedded_html_data),
footer_html_data=b64encode(footer_embedded_html_data),
)
)
return letter.WebPage_finishPdfCreation(
doc_download=setToNone(letter_download),
doc_save=setToNone(letter_save),
doc_version=letter_version,
doc_title=letter_title,
doc_relative_url=letter_relative_url,
doc_aggregate_list=letter_aggregate_list,
doc_language=letter_language,
doc_modification_date=letter_modification_date,
doc_reference=letter_reference,
doc_full_reference=letter_full_reference,
doc_pdf_file=pdf_file
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>*args,**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Letter_viewAsLetter</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
"""
================================================================================
Export this web page as letter in specified format
================================================================================
"""
return context.Letter_viewAsLetter(
format=format,
display_head=display_head,
display_svg=display_svg,
display_source_address=display_source_address,
override_source_organisation_title=override_source_organisation_title,
override_source_person_title=override_source_person_title,
override_destination_organisation_title=override_destination_organisation_title,
override_destination_person_title=override_destination_person_title,
override_date=override_date,
document_save=document_save,
document_download=document_download,
batch_mode=batch_mode,
**kw
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>format="html", display_source_address=None, display_head=1, display_svg=None, batch_mode=False, document_download=None, document_save=None, override_source_organisation_title=None,override_source_person_title=None,override_destination_organisation_title=None,override_destination_person_title=None,override_date=None,**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebPage_exportAsLetter</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
"""
================================================================================
Print letter in any of the supported formats
================================================================================
"""
return context.Letter_viewAsLetter(
format=format,
display_head=display_head,
display_svg=display_svg,
display_source_address=display_source_address,
override_source_organisation_title=override_source_organisation_title,
override_source_person_title=override_source_person_title,
override_destination_organisation_title=override_destination_organisation_title,
override_destination_person_title=override_destination_person_title,
override_date=override_date,
document_save=document_save,
document_download=document_download,
batch_mode=batch_mode,
**kw
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>format="pdf", batch_mode=False, display_source_address=None, display_svg=None,display_head=1,document_download=True, document_save=None, override_source_organisation_title=None,override_source_person_title=None,override_destination_organisation_title=None,override_destination_person_title=None,override_date=None,**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebPage_printAsLetter</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
"""
================================================================================
Update the letter dialog with parameters manually entered
================================================================================
"""
from Products.ERP5Type.Message import translateString
if dialog_id is not None:
return context.Base_redirect(
dialog_id,
keep_items = dict(
portal_status_message=translateString('Preview updated.'),
cancel_url=cancel_url,
portal_skin=portal_skin,
override_source_organisation_title=override_source_organisation_title,
override_source_person_title=override_source_person_title,
override_destination_organisation_title=override_destination_organisation_title,
override_destination_person_title=override_destination_person_title,
override_date=override_date,
format=format,
display_head=display_head,
display_svg=display_svg,
display_source_address=display_source_address,
document_download=document_download,
document_save=document_save,
**kw
)
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>override_source_organisation_title=None, display_source_address=None, display_svg=None,document_download=None, document_save=None, dialog_id=None, cancel_url=None, portal_skin=None,display_head=None, format=None, override_date=None, override_destination_person_title=None, override_source_person_title=None,override_destination_organisation_title=None, *args,**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebPage_updateLetterDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
"""
================================================================================
Allow to render letters through the URL?portal_skin=Letter
================================================================================
"""
return context.Letter_viewAsLetter(
format=format,
display_head=display_head,
display_svg=display_svg,
display_source_address=display_source_address,
override_source_organisation_title=override_source_organisation_title,
override_source_person_title=override_source_person_title,
override_destination_organisation_title=override_destination_organisation_title,
override_destination_person_title=override_destination_person_title,
override_date=override_date,
document_save=document_save,
document_download=document_download,
batch_mode=batch_mode,
**kw
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>format="html", display_source_address=None, display_svg=None,document_download=None, batch_mode=False, display_head=None,document_save=None, override_source_organisation_title=None,override_source_person_title=None,override_destination_organisation_title=None,override_destination_person_title=None,override_date=None,**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebPage_viewAsWeb</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>letter_css</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/* === unset === */
html,
body {
margin: 0;
padding: 0;
}
html{
width: 100%;
height: 100%;
}
/* === font-size === */
.ci-letter .ci-letter-header .ci-letter-bar-purporse,
.ci-letter .ci-letter-head table tr td:last-child span,
.ci-letter .ci-letter-destination span,
.ci-letter .ci-letter-body p b i,
.ci-letter .ci-letter-body p,
.ci-letter .ci-letter-body {
font-size: 18px;
}
.ci-letter .ci-letter-header .ci-letter-bar-logo span {
font-size: 14px;
}
.ci-letter .ci-letter-head .ci-letter-source span,
.ci-letter .ci-letter-footer table {
font-size: 12px;
}
/* === header === */
.ci-letter .ci-letter-head-simple-left,
.ci-letter .ci-letter-head-simple-right {
width: 44%;
text-align: left;
display: inline-block;
padding-top: 20mm;
vertical-align: middle;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.ci-letter .ci-letter-head-simple-left {
padding-left: 18mm;
}
.ci-letter .ci-letter-head-simple-left img {
height: 20mm;
vertical-align: middle;
padding-right: 1em;
}
.ci-letter .ci-letter-head-simple-right .ci-letter-head-simple-location {
padding-left: 4.5em;
}
.ci-letter .ci-letter-header .ci-letter-bar-logo {
margin-left: 5%;
}
.ci-letter .ci-letter-bar-logo {
padding: .5em .5em .5em 0;
}
.ci-letter .ci-letter-bar-logo {
text-align: left;
height: 10mm;
display: inline-block;
}
.ci-letter .ci-letter-bar-logo img,
.ci-letter .ci-letter-bar-logo span {
vertical-align: middle;
}
.ci-letter .ci-letter-bar-logo img {
height: 8mm;
padding: 1mm;
-webkit-border-radius: 1mm;
border-radius: 1mm;
}
.ci-letter .ci-letter-bar-logo span {
padding-left: .5em;
vertical-align: middle;
}
.ci-letter .ci-letter-bar-purporse {
float: right;
vertical-align: bottom;
padding: 4mm 4mm 0 0;
margin-right: 5%;
}
/* === head === */
.ci-letter .ci-letter-head table {
width: 100%;
margin-top: 1em;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding-left: 5%;
padding-right: 5%;
}
.ci-letter .ci-letter-head table tr td:first-child {
width: 70%;
}
.ci-letter .ci-letter-head table tr td:last-child {
width: 30%;
}
.ci-letter .ci-letter-head table tr td:nth-child(1) span:first-child {
display: inline-block;
min-width: 20mm;
padding-right: 10mm;
}
.ci-letter .ci-letter-head .ci-letter-source {
padding-top: 5%;
}
.ci-letter .ci-letter-head .ci-letter-source .ci-letter-separator {
padding: 0 1mm;
}
.ci-letter .ci-letter-head .ci-letter-source + td {
vertical-align: top;
}
.ci-letter .ci-letter-head .ci-letter-source span:not(.ci-letter-separator) {
margin-left: -1mm;
}
.ci-letter .ci-letter-destination {
padding-top: 3mm;
}
.ci-letter .ci-letter-destination span {
display: block;
margin-left: -1mm;
padding-top: 2px;
line-height: 20px;
}
/* === adress-right === */
.ci-letter .ci-letter-head-right table tr td:nth-child(1) {
width: 50%;
}
.ci-letter .ci-letter-head-right table tr td:nth-child(2) {
width: 48%;
}
.ci-letter .ci-letter-head-right table tr td:nth-child(3) {
width: .5%;
}
.ci-letter .ci-letter-head-right .ci-letter-timestamp,
.ci-letter .ci-letter-head-right .ci-letter-page{
text-align: right;
}
.ci-letter .ci-letter-head-right .ci-letter-timestamp > span:last-child,
.ci-letter .ci-letter-head-right .ci-letter-page > span:last-child {
width: 50mm;
display: inline-block;
vertical-align: top;
}
/* === footer === */
.ci-letter .ci-letter-simple-adress {
text-align: center;
}
.ci-letter .ci-letter-footer {
margin-bottom: 10mm;
border-top: 1px solid;
}
.ci-letter .ci-letter-footer-simple {
border-top: 0 none;
}
.ci-letter .ci-letter-footer table {
width: 100%;
margin-top: .5em;
}
.ci-letter .ci-letter-footer table tr {
text-align: center;
}
.ci-letter .ci-letter-footer {
margin-left: 5%;
margin-right: 5%;
}
.ci-letter .ci-letter-footer table td {
margin: 0 auto;
vertical-align: top;
}
.ci-letter .ci-letter-footer table td div {
display: inline-block;
text-align: left;
}
.ci-letter .ci-letter-footer table td div span {
display: inline-block
}
.ci-letter .ci-letter-footer table td div .ci-letter-footer-title {
width: 35%;
}
.ci-letter .ci-letter-footer table td div .ci-letter-footer-title + span {
width: 58%;
}
/* === Body === */
.ci-letter .ci-letter-body {
padding-left: 5%;
padding-top: 10%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
text-align: justify;
padding-right: 5%;
}
.ci-letter .ci-letter-body p b i {
font-weight: bold;
}
.ci-letter .ci-letter-body p {
-moz-text-align-last: left;
text-align-last: left;
text-align: justify;
}
.ci-letter .ci-letter-body p:first-of-type {
margin-bottom: 4%;
padding-bottom: 2%;
}
.ci-letter .ci-letter-body p:nth-last-child(2) {
margin-bottom: 0;
}
.ci-letter .ci-letter-body p:last-child {
margin-top: 0;
margin-bottom: 2%;
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>letter.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/* === unset === */
html,
body {
margin: 0;
padding: 0;
}
html {
width: 100%;
height: 100%;
}
/* === page breaks === */
.ci-letter .ci-letter-body p {
page-break-inside: avoid
}
/* custom breaks */
.ci-letter section {
page-break-after: always;
}
/* === font-size === */
.ci-letter .ci-letter-header .ci-letter-bar-purporse,
.ci-letter .ci-letter-head table tr td:last-child span,
.ci-letter .ci-letter-destination span,
.ci-letter .ci-letter-body p b i,
.ci-letter .ci-letter-body p,
.ci-letter .ci-letter-body {
font-size: 18px;
}
.ci-letter .ci-letter-header .ci-letter-bar-logo span {
font-size: 14px;
}
.ci-letter .ci-letter-head .ci-letter-source span,
.ci-letter .ci-letter-footer table {
font-size: 14px;
}
/* === header === */
.ci-letter .ci-letter-head-simple-left,
.ci-letter .ci-letter-head-simple-right {
width: 44%;
text-align: left;
display: inline-block;
padding-top: 20mm;
vertical-align: middle;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.ci-letter .ci-letter-head-simple-left {
padding-left: 18mm;
}
.ci-letter .ci-letter-head-simple-left img {
height: 12mm;
vertical-align: middle;
padding-right: 1em;
}
.ci-letter .ci-letter-header .ci-letter-bar-logo {
margin-left: 5%;
}
.ci-letter .ci-letter-bar-logo {
padding: .5em .5em .5em 0;
}
.ci-letter .ci-letter-bar-logo {
text-align: left;
height: 10mm;
display: inline-block;
}
.ci-letter .ci-letter-bar-logo img,
.ci-letter .ci-letter-bar-logo span {
vertical-align: middle;
}
.ci-letter .ci-letter-bar-logo img {
height: 8mm;
padding: 1mm;
-webkit-border-radius: 1mm;
border-radius: 1mm;
}
.ci-letter .ci-letter-bar-logo span {
padding-left: .5em;
vertical-align: middle;
}
.ci-letter .ci-letter-bar-purporse {
float: right;
vertical-align: bottom;
padding: 4mm 4mm 0 0;
margin-right: 5%;
}
/* === head === */
.ci-letter .ci-letter-head table {
width: 100%;
margin-top: 1em;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding-left: 5%;
padding-right: 5%;
}
.ci-letter .ci-letter-head table tr td:first-child {
width: 70%;
}
.ci-letter .ci-letter-head table tr td:last-child {
width: 30%;
}
.ci-letter .ci-letter-head table tr td:nth-child(1) span:first-child {
display: inline-block;
min-width: 20mm;
padding-right: 10mm;
}
.ci-letter .ci-letter-head .ci-letter-source {
padding-top: 8%;
}
.ci-letter .ci-letter-head .ci-letter-source .ci-letter-separator {
padding: 0 1mm;
}
.ci-letter .ci-letter-head .ci-letter-source + td {
vertical-align: top;
}
.ci-letter .ci-letter-head .ci-letter-source span:not(.ci-letter-separator) {
margin-left: 0;
}
.ci-letter .ci-letter-destination {
padding-top: 3mm;
}
.ci-letter .ci-letter-destination span {
display: block;
margin: 0;
padding: 0;
line-height: 20px;
vertical-align: middle;
}
/* === adress-right === */
.ci-letter .ci-letter-head-right table tr td:nth-child(1) {
width: 43%;
}
.ci-letter .ci-letter-head-right table tr td:nth-child(2) {
width: 55%;
}
.ci-letter .ci-letter-head-right table tr td:nth-child(3) {
width: .5%;
}
.ci-letter .ci-letter-head-right .ci-letter-timestamp,
.ci-letter .ci-letter-head-right .ci-letter-page {
text-align: right;
}
.ci-letter .ci-letter-head-right .ci-letter-timestamp > span:first-child,
.ci-letter .ci-letter-head-right .ci-letter-page > span:first-child {
text-align: left;
}
.ci-letter .ci-letter-head-right .ci-letter-timestamp > span:last-child,
.ci-letter .ci-letter-head-right .ci-letter-page > span:last-child {
width: 50mm;
display: inline-block;
vertical-align: top;
}
/* === footer === */
.ci-letter .ci-letter-footer-simple .ci-letter-simple-adress {
text-align: center;
}
.ci-letter .ci-letter-footer {
margin-bottom: 10mm;
border-top: 1px solid;
}
.ci-letter .ci-letter-footer-simple {
border-top: 0 none;
}
.ci-letter .ci-letter-footer table {
width: 100%;
margin-top: .5em;
table-layout: fixed;
}
.ci-letter .ci-letter-footer table tr {
text-align: center;
}
.ci-letter .ci-letter-footer {
margin-left: 5%;
margin-right: 5%;
}
.ci-letter .ci-letter-footer table td {
margin: 0 auto;
vertical-align: top;
}
.ci-letter .ci-letter-footer table td div {
display: inline-block;
text-align: left;
}
.ci-letter .ci-letter-footer table td div span {
display: inline-block
}
.ci-letter .ci-letter-footer table td div .ci-letter-footer-title {
width: 35%;
}
.ci-letter .ci-letter-footer table td div .ci-letter-footer-title + span {
width: 58%;
}
/* === Body === */
.ci-letter .ci-letter-body {
padding-left: 5%;
padding-top: 10%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
text-align: justify;
padding-right: 5%;
}
.ci-letter .ci-letter-body p b i {
font-weight: bold;
}
.ci-letter .ci-letter-body p {
-moz-text-align-last: left;
text-align-last: left;
text-align: justify;
}
.ci-letter .ci-letter-body :not(section) p:first-of-type {
margin-bottom: 1%;
padding-bottom: 1%;
}
.ci-letter .ci-letter-body :not(section) p:nth-last-child(2) {
margin-bottom: 0;
line-height: 20px;
}
.ci-letter .ci-letter-body :not(section) p:last-child {
margin-top: 0;
margin-bottom: 2%;
line-height: 20px;
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>letter.pdf.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -550,9 +550,6 @@ class TestCorporateIdentityTemplates(ERP5TypeTestCase):
)
)
'''
@changeSkin('Letter')
def test_htmlLetter(self):
"""
......@@ -745,6 +742,9 @@ class TestCorporateIdentityTemplates(ERP5TypeTestCase):
)
)
'''
@changeSkin('Leaflet')
def test_htmlLeaflet(self):
"""
......
erp5_corporate_identity_letter | Letter
erp5_corporate_identity_slide | Slide
\ No newline at end of file
erp5_corporate_identity
erp5_corporate_identity_letter
erp5_corporate_identity_slide
\ No newline at end of file
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