[Erp5-report] r20252 - in /erp5/trunk/bt5/erp5_crm: SkinTemplateItem/portal_skins/erp5_crm/...
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Apr 1 16:54:17 CEST 2008
Author: yusei
Date: Tue Apr 1 16:54:17 2008
New Revision: 20252
URL: http://svn.erp5.org?rev=20252&view=rev
Log:
2008-4-1 yusei
* When receive forwarded mail, update recipient and sender automatically.
Added:
erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Base_getPersonListFromFromHeader.xml
Modified:
erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_finishIngestion.xml
erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getPropertyDictFromContent.xml
erp5/trunk/bt5/erp5_crm/bt/change_log
erp5/trunk/bt5/erp5_crm/bt/revision
Added: erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Base_getPersonListFromFromHeader.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Base_getPersonListFromFromHeader.xml?rev=20252&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Base_getPersonListFromFromHeader.xml (added)
+++ erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Base_getPersonListFromFromHeader.xml Tue Apr 1 16:54:17 2008
@@ -1,0 +1,163 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+ <tuple/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>Python_magic</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>Script_magic</string> </key>
+ <value> <int>3</int> </value>
+ </item>
+ <item>
+ <key> <string>__ac_local_roles__</string> </key>
+ <value>
+ <none/>
+ </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 encoding="cdata"><![CDATA[
+
+getResultValue = context.portal_catalog.getResultValue\n
+\n
+result = []\n
+for recipient in text.split(\',\'):\n
+ if "<" in recipient:\n
+ recipient = recipient[recipient.find(\'<\') + 1:]\n
+ recipient = recipient[:recipient.find(\'>\')]\n
+ if recipient:\n
+ email = getResultValue(url_string=recipient, portal_type="Email")\n
+ if email is not None:\n
+ result.append(email.getParentValue())\n
+return result\n
+
+
+]]></string> </value>
+ </item>
+ <item>
+ <key> <string>_code</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_filepath</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_params</string> </key>
+ <value> <string>text</string> </value>
+ </item>
+ <item>
+ <key> <string>errors</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_code</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>co_argcount</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>co_varnames</string> </key>
+ <value>
+ <tuple>
+ <string>text</string>
+ <string>_getattr_</string>
+<string>context</string>
+ <string>getResultValue</string>
+ <string>result</string>
+ <string>_getiter_</string>
+ <string>recipient</string>
+ <string>_getitem_</string>
+ <string>email</string>
+ <string>None</string>
+ </tuple>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_defaults</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>Base_getPersonListFromFromHeader</string> </value>
+ </item>
+ <item>
+ <key> <string>warnings</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Modified: erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_finishIngestion.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_finishIngestion.xml?rev=20252&r1=20251&r2=20252&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_finishIngestion.xml (original)
+++ erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_finishIngestion.xml Tue Apr 1 16:54:17 2008
@@ -71,6 +71,38 @@
are marked as \'New\' and appear in the worklist.\n
"""\n
context.receive()\n
+\n
+# Forwarded mail\n
+forwarded_mail = False\n
+subject = context.getContentInformation().get(\'Subject\')\n
+forwarded_mark_list = (\'Fwd\', \'Fw\', \'Tr\',)\n
+if subject is not None and \':\' in subject:\n
+ if subject[0]==\'[\':# some email client enclose subject with \'[]\'\n
+ subject = subject[1:]\n
+ for mark in forwarded_mark_list:\n
+ if subject.startswith(mark+\':\'):\n
+ forwarded_mail = True\n
+ break\n
+if forwarded_mail is True:\n
+ # find original recipient\n
+ source = context.getSource()\n
+ if source is not None:\n
+ context.setDestination(source)\n
+\n
+ # find original sender\n
+ body = context.getTextContent()\n
+ from_header = \'From: \'\n
+ from_header_length = len(from_header)\n
+ Base_getPersonListFromFromHeader = context.Base_getPersonListFromFromHeader\n
+ line = \'\'\n
+ for line in body.split(\'\\n\'):\n
+ if line.startswith(from_header):\n
+ break\n
+ if line:\n
+ from_text = line[from_header_length:]\n
+ person_list = Base_getPersonListFromFromHeader(from_text)\n
+ if person_list:\n
+ context.setSource(person_list[0].getRelativeUrl())\n
</string> </value>
</item>
<item>
@@ -120,7 +152,25 @@
<value>
<tuple>
<string>_getattr_</string>
-<string>context</string>
+ <string>context</string>
+ <string>False</string>
+ <string>forwarded_mail</string>
+ <string>subject</string>
+ <string>forwarded_mark_list</string>
+ <string>None</string>
+ <string>_getitem_</string>
+ <string>_getiter_</string>
+ <string>mark</string>
+ <string>True</string>
+ <string>source</string>
+ <string>body</string>
+ <string>from_header</string>
+ <string>len</string>
+ <string>from_header_length</string>
+ <string>Base_getPersonListFromFromHeader</string>
+ <string>line</string>
+ <string>from_text</string>
+ <string>person_list</string>
</tuple>
</value>
</item>
Modified: erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getPropertyDictFromContent.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getPropertyDictFromContent.xml?rev=20252&r1=20251&r2=20252&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getPropertyDictFromContent.xml (original)
+++ erp5/trunk/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getPropertyDictFromContent.xml Tue Apr 1 16:54:17 2008
@@ -65,9 +65,7 @@
</item>
<item>
<key> <string>_body</string> </key>
- <value> <string encoding="cdata"><![CDATA[
-
-"""\n
+ <value> <string>"""\n
This script is called during the metadata discovery process\n
for each event which has been ingested through the email interface\n
by portal contributions. It tries to analyse the text content \n
@@ -82,18 +80,10 @@
"""\n
\n
getResultValue = context.getPortalObject().portal_catalog.getResultValue\n
-\n
-def getPersonList(information_text):\n
- result = []\n
- for recipient in information_text.split(\',\'):\n
- if "<" in recipient:\n
- recipient = recipient[recipient.find(\'<\') + 1:]\n
- recipient = recipient[:recipient.find(\'>\')]\n
- if recipient:\n
- email = getResultValue(url_string=recipient, portal_type="Email")\n
- if email is not None:\n
- result.append(email.getParentValue().getRelativeUrl())\n
- return result\n
+Base_getPersonListFromFromHeader = context.Base_getPersonListFromFromHeader\n
+def getPersonList(text):\n
+ return [person.getRelativeUrl()\n
+ for person in Base_getPersonListFromFromHeader(text)]\n
\n
content_information = context.getContentInformation()\n
sender_list = getPersonList(content_information.get(\'From\', \'\'))\n
@@ -138,9 +128,7 @@
result[\'portal_type\'] = portal_type\n
\n
return result\n
-
-
-]]></string> </value>
+</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
@@ -191,6 +179,7 @@
<string>_getattr_</string>
<string>context</string>
<string>getResultValue</string>
+ <string>Base_getPersonListFromFromHeader</string>
<string>getPersonList</string>
<string>content_information</string>
<string>sender_list</string>
Modified: erp5/trunk/bt5/erp5_crm/bt/change_log
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_crm/bt/change_log?rev=20252&r1=20251&r2=20252&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_crm/bt/change_log (original)
+++ erp5/trunk/bt5/erp5_crm/bt/change_log Tue Apr 1 16:54:17 2008
@@ -1,3 +1,6 @@
+2008-4-1 yusei
+* When receive forwarded mail, update recipient and sender automatically.
+
2008-03-31 yusei
* Add a type based method for rewriting mail message.
Modified: erp5/trunk/bt5/erp5_crm/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_crm/bt/revision?rev=20252&r1=20251&r2=20252&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_crm/bt/revision (original)
+++ erp5/trunk/bt5/erp5_crm/bt/revision Tue Apr 1 16:54:17 2008
@@ -1,1 +1,1 @@
-212
+218
More information about the Erp5-report
mailing list