Commit 4b623269 authored by wenjie.zheng's avatar wenjie.zheng

Merge branch 'generic_master' into erp5_workflow_converted

parents b9942ff9 ef9aca65
......@@ -78,6 +78,13 @@ for line in line_list:\n
line.setQuantity(line_quantity)\n
total_quantity += line_quantity\n
\n
# If no "line" found (eg no SIT line), then do nothing. This is in the case where a SIT\n
# has only Invoice Line and no SIT Line. Otherwise account_type_dict will be empty =>\n
# asset_line = None => the assert below will fail because getTotalPrice() will returns the\n
# price of all Invoice Lines...\n
if not line_list:\n
return\n
\n
abs_total_quantity = abs(round(total_quantity, precision))\n
# The total quantity should be zero with a little error, if simulation has been\n
# completely applied, because the debit and the credit must be balanced. However,\n
......
2015-06-12 arnaud.fontaine
* Rounding debit/credit only makes sense if there is SIT Line.
2014-08-21 Gabriel Monnerat
* Improve Delivery_localBuild to call invoice_builder_alarm only if exist, because in some projects this alarm does not exist
......
......@@ -111,13 +111,13 @@ Test Transactions related to an account, with at date parameter\n
<!-- List lines {{{ -->\n
<tr>\n
<td>verifyFloat</td>\n
<td>//tr[@class=\'listbox-data-line-0 DataA\']/td[11]</td>\n
<td>2200.0</td>\n <!-- this might fail randomly, because 1st and 2nd lines are for the same date, so ordering is not guaranteed. -->
<td>//tr[@class=\'listbox-data-line-1 DataB\']/td[11]</td>\n
<td>3300.0</td>\n
</tr>\n
<tr>\n
<td>verifyFloat</td>\n
<td>//tr[@class=\'listbox-data-line-1 DataB\']/td[11]</td>\n
<td>3300.0</td>\n
<td>//tr[@class=\'listbox-data-line-3 DataB\']/td[11]</td>\n
<td>9900.0</td>\n
</tr>\n
<!-- }}} -->\n
\n
......
......@@ -50,9 +50,7 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[
from email.utils import formataddr\n
<value> <string>from email.utils import formataddr\n
portal = context.getPortalObject()\n
event = portal.restrictedTraverse(event_relative_url)\n
\n
......@@ -66,8 +64,6 @@ elif sender is not None:\n
else:\n
from_url = portal.portal_preferences.getPreferredEventSenderEmail()\n
\n
attachment_list = kw.pop(\'attachment_list\', [])\n
\n
to_url = formataddr((context.getTitle(), context.getDefaultEmailText()))\n
\n
document_type_list = list(event.getPortalEmbeddedDocumentTypeList()) + list(event.getPortalDocumentTypeList())\n
......@@ -79,28 +75,10 @@ mail_message = portal.Base_createMailMessageAsString(from_url,\n
subject,\n
body,\n
content_type,\n
attachment_list=attachment_list,\n
embedded_file_list=embedded_file_list)\n
\n
event.sendMailHostMessage(mail_message)\n
\n
if not event.hasData() and len(event.getDestinationList()) == 1:\n
# Store the content of the email as data, so that we can keep a reference to\n
# the email that was actually sent.\n
# We do not store when there is more than one recipent.\n
if len(embedded_file_list):\n
# do not store aggregated documents in Email document\n
# to avoid duplicate data\n
mail_message = context.Base_createMailMessageAsString(from_url,\n
to_url,\n
subject,\n
body,\n
content_type,\n
attachment_list=attachment_list)\n
event.setData(mail_message)\n
]]></string> </value>
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
......
......@@ -58,12 +58,28 @@ This script is also used by notification tool, that\'s why it is in erp5_base.\n
from email.utils import formataddr\n
portal = context.getPortalObject()\n
\n
if attachment_list is None:\n
attachment_list = []\n
use_activity = False\n
mail_message = None\n
to_url_list = []\n
\n
# Attachments\n
document_type_list = list(context.getPortalEmbeddedDocumentTypeList()) + list(context.getPortalDocumentTypeList())\n
embedded_file_list = context.getAggregateValueList(portal_type=document_type_list)\n
for attachment in attachment_list or []:\n
embedded_file = context.newContent(\n
portal_type=\'Embedded File\',\n
title=attachment[\'name\'],\n
filename=attachment[\'name\'],\n
content_type=attachment[\'mime_type\'],\n
data=attachment[\'content\'],\n
)\n
if embedded_file not in embedded_file_list:\n
embedded_file_list.append(embedded_file)\n
aggregate_list = context.getAggregateValueList()\n
context.setAggregateValueList(\n
aggregate_list + [x for x in embedded_file_list if x not in aggregate_list]\n
)\n
\n
if not context.isTempDocument() and to_url is None:\n
use_activity = True\n
\n
......@@ -79,10 +95,13 @@ if to_url is None:\n
else:\n
to_url_list.append(to_url)\n
\n
if not context.hasStartDate():\n
context.setStartDate(DateTime())\n
\n
if download or not use_activity:\n
for to_url in to_url_list:\n
body = body or context.getTextContent()\n
subject = subject or context.getTitle()\n
body = body or context.getTextContent() or \'\'\n
subject = subject or context.getTitle() or \'\'\n
\n
# From\n
if from_url is None:\n
......@@ -100,10 +119,6 @@ if download or not use_activity:\n
additional_headers = None\n
if reply_url:\n
additional_headers = {\'Return-Path\':reply_url}\n
\n
# Attachments\n
document_type_list = list(context.getPortalEmbeddedDocumentTypeList()) + list(context.getPortalDocumentTypeList())\n
embedded_file_list = context.getAggregateValueList(portal_type=document_type_list)\n
\n
content_type = context.getContentType()\n
\n
......@@ -112,28 +127,14 @@ if download or not use_activity:\n
subject,\n
body,\n
content_type,\n
attachment_list=attachment_list,\n
embedded_file_list=embedded_file_list)\n
\n
if len(embedded_file_list):\n
# do not store aggregated documents in Email document\n
# to avoid duplicate data\n
tmp_mail_message = context.Base_createMailMessageAsString(from_url,\n
to_url,\n
subject,\n
body,\n
content_type,\n
attachment_list=attachment_list)\n
context.setData(tmp_mail_message)\n
else:\n
context.setData(mail_message)\n
if not use_activity:\n
context.activate(activity=\'SQLQueue\').sendMailHostMessage(mail_message)\n
\n
if use_activity:\n
method_kw = dict(event_relative_url=context.getRelativeUrl(),\n
from_url=from_url,\n
attachment_list=attachment_list)\n
from_url=from_url)\n
context.activate(\n
after_path_and_method_id=((context.getPath(),), \n
(\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).MailMessage_sendByActivity(\n
......
......@@ -86,6 +86,7 @@
<key> <string>left</string> </key>
<value>
<list>
<string>my_id</string>
<string>my_title</string>
<string>my_mapping_property_list</string>
</list>
......
2015-06-12 arnaud.fontaine
* Allow to set ID in several Simulation-related views.
2013-09-03 arnaud.fontaine
* ZODB Components: Workflow History must always be kept, so avoid an extra step for developers.
......
......@@ -18,6 +18,9 @@
<item>Visit</item>
<item>Web Message</item>
</portal_type>
<portal_type id="Mail Message">
<item>Embedded File</item>
</portal_type>
<portal_type id="Meeting">
<item>Event Path</item>
</portal_type>
......
......@@ -79,8 +79,8 @@ if response_workflow_action == \'send\':\n
elif response_workflow_action == \'plan\':\n
response.plan()\n
return context.Base_redirect(form_id, keep_items={\'portal_status_message\': message})\n
elif response_workflow_action == \'stop\':\n
response.stop()\n
elif response_workflow_action == \'deliver\':\n
response.deliver()\n
return response.Base_redirect(\'view\', keep_items={\'portal_status_message\': message})\n
elif response_workflow_action == \'draft\':\n
return response.Base_redirect(\'view\', keep_items={\'portal_status_message\': message})\n
......
......@@ -52,7 +52,7 @@
<key> <string>_body</string> </key>
<value> <string>return [(context.Base_translateString("Send it immediately"), "send"),\n
(context.Base_translateString("Plan it at the given date"),\'plan\'),\n
(context.Base_translateString("Declare as Received"),\'stop\'),\n
(context.Base_translateString("Declare as Delivered"),\'deliver\'),\n
(context.Base_translateString("Edit it as a draft"),"draft")]\n
</string> </value>
</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>"""Returns the default text format for response events.\n
\n
This script is here so that we can easily customized depending on the context event, ticket or user preferences.\n
"""\n
return context.getPortalObject().portal_preferences.getPreferredTextFormat()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Ticket_getPreferredFollowUpEventContentType</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>"""Returns the default portal type for response events.\n
\n
This script is here so that we can easily customized depending on the context event, ticket or user preferences.\n
"""\n
\n
return \'Mail Message\'\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Ticket_getPreferredFollowUpEventPortalType</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>"""Returns the default sender for response events.\n
\n
This script is here so that we can easily customized depending on the context event, ticket or user preferences.\n
"""\n
\n
if context.hasSource():\n
return context.getSource()\n
logged_in_user = context.ERP5Site_getAuthenticatedMemberPersonValue()\n
if logged_in_user is not None:\n
return logged_in_user.getRelativeUrl()\n
return \'\'\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Ticket_getPreferredFollowUpEventSource</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -51,11 +51,7 @@
<item>
<key> <string>_body</string> </key>
<value> <string>"""\n
This script creates a new event with given metadata and\n
attaches it to the current ticket.\n
"""\n
\n
\n
portal = context.getPortalObject()\n
translateString = portal.Base_translateString\n
module = portal.getDefaultModule(portal_type)\n
......@@ -63,45 +59,50 @@ module = portal.getDefaultModule(portal_type)\n
if not portal.Base_checkPermission(module.getId(), "Add portal content"):\n
return context.Base_redirect(form_id,\n
keep_items=dict(\n
portal_status_message=translateString("You do not have permission to add new event.")))\n
\n
# Create a new event\n
event = module.newContent(portal_type=portal_type, \n
title=title,\n
text_content=text_content,\n
content_type=portal.portal_preferences.getPreferredTextEditor() and \'text/html\' or \'text/plain\',\n
resource=resource,\n
source=source,\n
destination=destination,\n
start_date=DateTime(),\n
follow_up=context.getRelativeUrl())\n
portal_status_message=translateString("You do not have permission to add new event.")))\n
\n
# Create a new event\n
response = module.newContent(portal_type=portal_type,\n
source=source,\n
destination=destination,\n
resource=resource,\n
title=title,\n
text_content=text_content,\n
start_date=start_date,\n
follow_up_value=context,\n
content_type=content_type)\n
\n
if notification_message:\n
event.Event_setTextContentFromNotificationMessage(\n
reference=notification_message)\n
response.Event_setTextContentFromNotificationMessage(\n
reference=notification_message\n
)\n
\n
# Trigger appropriate workflow action\n
if not keep_draft:\n
if direction == \'incoming\':\n
# Support event_workflow and event_simulation_workflow\n
if portal.portal_workflow.isTransitionPossible(event, \'receive\'):\n
event.receive()\n
if portal.portal_workflow.isTransitionPossible(event, \'stop\'):\n
event.stop()\n
else:\n
event.plan()\n
if workflow_action:\n
portal.portal_workflow.doActionFor(\n
context,\n
workflow_action,\n
)\n
\n
# Redirect to event\n
portal_status_message = translateString(\n
message = translateString(\n
"Created and associated a new ${portal_type} to the ticket.", \n
mapping=dict(portal_type = translateString(portal_type)))\n
return event.Base_redirect(\'view\', keep_items = dict(portal_status_message=portal_status_message), **kw)\n
\n
if event_workflow_action == \'send\':\n
response.start()\n
elif event_workflow_action == \'plan\':\n
response.plan()\n
elif event_workflow_action == \'deliver\':\n
response.deliver()\n
elif event_workflow_action == \'draft\':\n
pass\n
else:\n
raise NotImplementedError(\'Do not know what to do\')\n
return response.Base_redirect(\'view\', keep_items={\'portal_status_message\': message})\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>form_id=\'view\', portal_type=None, title=None, resource=None, text_content=None,direction=None, source=None, destination=None, keep_draft=False, notification_message=None, **kw</string> </value>
<value> <string>form_id=None, portal_type=None, resource=None, title=None, text_content=None, start_date=None, event_workflow_action=None, notification_message=None, source=None, destination=None, content_type=None, workflow_action=None, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -91,6 +91,7 @@ if response_event_notification_message:\n
request.set(\'your_response_event_notification_message\', \'\')\n
request.set(\'your_response_event_title\', title)\n
request.set(\'your_response_event_text_content\', temp_event.getTextContent())\n
request.set(\'your_response_event_content_type\', temp_event.getContentType())\n
request.set(\'your_response_event_resource\', temp_event.getResource())\n
\n
return context.Ticket_viewCreateResponseWorkflowActionDialog()\n
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>"""Preview the response from notification message for ticket create response dialog.\n
"""\n
if notification_message:\n
temp_event = context.getPortalObject().event_module.newContent(\n
temp_object=True,\n
portal_type=portal_type,\n
source=source,\n
destination=destination,\n
follow_up_value=context,\n
resource=resource,\n
language=context.getLanguage(),\n
content_type=content_type)\n
\n
try:\n
title_field_id = \'your_title\'\n
field = getattr(context, dialog_id)[title_field_id]\n
original_title = field.getFieldValue(title_field_id, \'default\')[0](field, title_field_id)\n
except (AttributeError, KeyError):\n
original_title = \'\'\n
temp_event.Event_setTextContentFromNotificationMessage(\n
reference=notification_message,\n
substitution_method_parameter_dict=dict(\n
reply_body=\'\',\n
reply_subject=original_title))\n
title = temp_event.getTitle().strip()\n
\n
if original_title and original_title not in title:\n
title = \'%s (%s)\' % (title, original_title)\n
\n
# XXX this relies on formulator internals, we force the variables in request and\n
# re-render the form.\n
request = container.REQUEST\n
request.set(\'your_notification_message\', \'\')\n
request.set(\'your_title\', title)\n
request.set(\'your_text_content\', temp_event.getTextContent())\n
request.set(\'your_content_type\', temp_event.getContentType())\n
request.set(\'your_resource\', temp_event.getResource())\n
\n
return getattr(context, dialog_id)()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>portal_type, notification_message, resource, text_content, content_type, source, destination, dialog_id, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Ticket_updateNewEventDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -182,7 +182,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: context.Ticket_getCausalityValue().Base_getEditorFieldPreferredTextEditor(content_type=context.Ticket_getCausalityValue().Event_getPreferredResponseEventContentType())</string> </value>
<value> <string>python: context.Base_getEditorFieldPreferredTextEditor(content_type=request.get(\'your_response_event_content_type\') or context.Ticket_getCausalityValue().Event_getPreferredResponseEventContentType())</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -2,7 +2,7 @@
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
......@@ -41,6 +41,12 @@
<key> <string>description</string> </key>
<value> <string>Use this dialog to create a new event and associate it to a Ticket.</string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
......@@ -68,7 +74,9 @@
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
<list>
<string>your_workflow_action</string>
</list>
</value>
</item>
<item>
......@@ -77,7 +85,7 @@
<list>
<string>your_notification_message</string>
<string>your_text_content</string>
<string>your_keep_draft</string>
<string>your_event_workflow_action</string>
</list>
</value>
</item>
......@@ -94,16 +102,18 @@
<string>your_title</string>
<string>your_portal_type</string>
<string>your_resource</string>
<string>your_direction</string>
<string>your_source</string>
<string>your_destination</string>
<string>your_start_date</string>
<string>your_content_type</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
<list>
<string>your_source</string>
<string>your_destination</string>
</list>
</value>
</item>
</dictionary>
......@@ -135,7 +145,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>New Event</string> </value>
<value> <string>Create New Event</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
......@@ -143,6 +153,10 @@
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string>Ticket_updateNewEventDialog</string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
......
......@@ -10,7 +10,9 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>items</string>
<string>required</string>
<string>title</string>
</list>
</value>
......@@ -53,6 +55,12 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -64,7 +72,7 @@
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
......@@ -82,6 +90,10 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_list_field</string> </value>
......@@ -96,6 +108,10 @@
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
......@@ -126,7 +142,20 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.Ticket_getArrowItemList()</string> </value>
<value> <string>here/getDestinationDecision</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/Ticket_getArrowItemList</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -10,16 +10,16 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>required</string>
<string>first_item</string>
<string>items</string>
<string>orientation</string>
<string>title</string>
<string>items</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_direction</string> </value>
<value> <string>your_event_workflow_action</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -59,6 +59,10 @@
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>first_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
......@@ -69,10 +73,18 @@
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>orientation</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
......@@ -84,17 +96,40 @@
<key> <string>field_id</string> </key>
<value> <string>my_radio_field</string> </value>
</item>
<item>
<key> <string>first_item</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>orientation</string> </key>
<value> <string>horizontal</string> </value>
<key> <string>items</string> </key>
<value>
<list>
<tuple>
<string>Send it immediately</string>
<string>send</string>
</tuple>
<tuple>
<string>Plan it at the given date</string>
<string>plan</string>
</tuple>
<tuple>
<string>Declare as Received</string>
<string>stop</string>
</tuple>
<tuple>
<string>Edit it as a Draft</string>
<string>draft</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
<key> <string>orientation</string> </key>
<value> <string>horizontal</string> </value>
</item>
<item>
<key> <string>target</string> </key>
......@@ -102,7 +137,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Direction</string> </value>
<value> <string>Action to be Triggered on the Response Event</string> </value>
</item>
</dictionary>
</value>
......@@ -118,7 +153,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: [(here.Base_translateString(x[0]), x[1]) for x in ((\'Incoming\', \'incoming\'), (\'Outgoing\', \'outgoing\'))]</string> </value>
<value> <string>here/Event_getWorkflowActionList</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -11,6 +11,7 @@
<value>
<list>
<string>items</string>
<string>required</string>
<string>title</string>
</list>
</value>
......@@ -67,6 +68,12 @@
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
......@@ -96,6 +103,10 @@
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
......@@ -118,7 +129,20 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/Event_getNotificationMessageItemList</string> </value>
<value> <string>python: context.Event_getNotificationMessageItemList(response_only=True)</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>request/mass_workflow_action | nothing</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -10,7 +10,10 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>items</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
......@@ -52,6 +55,12 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -60,6 +69,12 @@
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
......@@ -68,6 +83,10 @@
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
......@@ -75,13 +94,23 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>your_portal_type</string> </value>
<value> <string>my_list_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewCRMFieldLibrary</string> </value>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
......@@ -91,10 +120,40 @@
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Event Type</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: context.Ticket_getPreferredFollowUpEventPortalType()</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: [(here.Localizer.erp5_ui.gettext(x), x) for x in here.getPortalEventTypeList()]</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -118,7 +118,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/Ticket_getEventResourceItemList</string> </value>
<value> <string>python: here.Ticket_getResourceItemList(portal_type=\'Event\', include_context=False)</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -10,7 +10,9 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>items</string>
<string>required</string>
<string>title</string>
</list>
</value>
......@@ -53,6 +55,12 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -64,9 +72,13 @@
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
......@@ -82,6 +94,10 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_list_field</string> </value>
......@@ -96,6 +112,10 @@
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
......@@ -126,7 +146,20 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.Ticket_getArrowItemList()</string> </value>
<value> <string>python: context.Ticket_getPreferredFollowUpEventSource()</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/Ticket_getArrowItemList</string> </value>
</item>
</dictionary>
</pickle>
......
<?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_now</string>
<string>editable</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_start_date</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default_now</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_event_start_date</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewCRMFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -13,9 +13,9 @@
<string>css_class</string>
<string>default</string>
<string>editable</string>
<string>height</string>
<string>enabled</string>
<string>text_editor</string>
<string>title</string>
<string>width</string>
</list>
</value>
</item>
......@@ -63,22 +63,26 @@
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
<key> <string>enabled</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>form_id</string> </key>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>height</string> </key>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
......@@ -86,11 +90,13 @@
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
<key> <string>text_editor</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>width</string> </key>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
......@@ -112,6 +118,10 @@
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_text_content</string> </value>
......@@ -120,21 +130,17 @@
<key> <string>form_id</string> </key>
<value> <string>Base_viewCRMFieldLibrary</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>5</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Message</string> </value>
<key> <string>text_editor</string> </key>
<value> <string>text_area</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>40</int> </value>
<key> <string>title</string> </key>
<value> <string>Message</string> </value>
</item>
</dictionary>
</value>
......@@ -142,4 +148,43 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>string:</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>not: request/mass_workflow_action | nothing</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: context.Base_getEditorFieldPreferredTextEditor(content_type=request.get(\'your_content_type\') or context.Ticket_getPreferredFollowUpEventContentType())</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -10,7 +10,8 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>editable</string>
<string>enabled</string>
<string>title</string>
</list>
</value>
</item>
......@@ -52,6 +53,12 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>enabled</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -64,6 +71,10 @@
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
......@@ -72,25 +83,42 @@
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_event_title</string> </value>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewCRMFieldLibrary</string> </value>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Title</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>not: request/mass_workflow_action | nothing</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -32,6 +32,8 @@
<string>cancel_action</string>
<string>delete</string>
<string>delete_action</string>
<string>deliver</string>
<string>initial_deliver_action</string>
<string>initial_stop_action</string>
<string>plan</string>
<string>plan_action</string>
......
......@@ -10,6 +10,10 @@
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
</item>
<item>
<key> <string>actbox_icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string></string> </value>
......@@ -46,7 +50,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Deliver</string> </value>
<value> <string>Declare as Delivered</string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
......
......@@ -10,6 +10,10 @@
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
</item>
<item>
<key> <string>actbox_icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string>Deliver</string> </value>
......@@ -46,7 +50,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Deliver Action</string> </value>
<value> <string>Declare as Delivered Action</string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
</item>
<item>
<key> <string>actbox_icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string>Declare as Delivered</string> </value>
</item>
<item>
<key> <string>actbox_url</string> </key>
<value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=initial_deliver_action</string> </value>
</item>
<item>
<key> <string>after_script_name</string> </key>
<value> <string>deliver</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>guard</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>initial_deliver_action</string> </value>
</item>
<item>
<key> <string>new_state_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>script_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Declare as Delivered Action</string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Guard" module="Products.DCWorkflow.Guard"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>roles</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Owner</string>
</tuple>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -11,6 +11,7 @@ Event Module | Short Message
Event Module | Site Message
Event Module | Visit
Event Module | Web Message
Mail Message | Embedded File
Meeting Module | Meeting
Meeting | Event Path
Preference | Support Request
......
<registered_skin_selection>
<skin_folder_selection>
<skin_folder>erp5_web_renderjs_ui_unsafe</skin_folder>
<skin_selection>RJSUnsafe</skin_selection>
</skin_folder_selection>
</registered_skin_selection>
\ No newline at end of file
<?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>99.1</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_web_renderjs_ui_unsafe</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
erp5_web_renderjs_ui
erp5_web_ung_core
erp5_officejs
\ No newline at end of file
This diff is collapsed.
erp5_web_renderjs_ui_unsafe | RJSUnsafe
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment