Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Leo Le Bouter
erp5
Commits
8f165c65
Commit
8f165c65
authored
Oct 30, 2015
by
Kazuhiko Shiozaki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixup! base: do not store a generated email message payload in a Mail Message document.
parent
6ba4a6b1
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
43 additions
and
18 deletions
+43
-18
bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Entity_sendEmail.xml
...nTemplateItem/portal_skins/erp5_base/Entity_sendEmail.xml
+0
-3
bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/MailMessage_send.xml
...nTemplateItem/portal_skins/erp5_base/MailMessage_send.xml
+24
-11
bt5/erp5_crm/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml
...eAllowedContentTypeTemplateItem/allowed_content_types.xml
+3
-0
bt5/erp5_crm/bt/template_portal_type_allowed_content_type_list
...rp5_crm/bt/template_portal_type_allowed_content_type_list
+1
-0
product/ERP5/Document/EmailDocument.py
product/ERP5/Document/EmailDocument.py
+14
-1
product/ERP5/tests/testNotificationTool.py
product/ERP5/tests/testNotificationTool.py
+0
-2
product/ERP5Type/patches/MailTemplates.py
product/ERP5Type/patches/MailTemplates.py
+1
-1
No files found.
bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Entity_sendEmail.xml
View file @
8f165c65
...
@@ -64,8 +64,6 @@ elif sender is not None:\n
...
@@ -64,8 +64,6 @@ elif sender is not None:\n
else:\n
else:\n
from_url = portal.portal_preferences.getPreferredEventSenderEmail()\n
from_url = portal.portal_preferences.getPreferredEventSenderEmail()\n
\n
\n
attachment_list = kw.pop(\'attachment_list\', [])\n
\n
to_url = formataddr((context.getTitle(), context.getDefaultEmailText()))\n
to_url = formataddr((context.getTitle(), context.getDefaultEmailText()))\n
\n
\n
document_type_list = list(event.getPortalEmbeddedDocumentTypeList()) + list(event.getPortalDocumentTypeList())\n
document_type_list = list(event.getPortalEmbeddedDocumentTypeList()) + list(event.getPortalDocumentTypeList())\n
...
@@ -77,7 +75,6 @@ mail_message = portal.Base_createMailMessageAsString(from_url,\n
...
@@ -77,7 +75,6 @@ mail_message = portal.Base_createMailMessageAsString(from_url,\n
subject,\n
subject,\n
body,\n
body,\n
content_type,\n
content_type,\n
attachment_list=attachment_list,\n
embedded_file_list=embedded_file_list)\n
embedded_file_list=embedded_file_list)\n
\n
\n
event.sendMailHostMessage(mail_message)\n
event.sendMailHostMessage(mail_message)\n
...
...
bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/MailMessage_send.xml
View file @
8f165c65
...
@@ -58,12 +58,28 @@ This script is also used by notification tool, that\'s why it is in erp5_base.\n
...
@@ -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
from email.utils import formataddr\n
portal = context.getPortalObject()\n
portal = context.getPortalObject()\n
\n
\n
if attachment_list is None:\n
attachment_list = []\n
use_activity = False\n
use_activity = False\n
mail_message = None\n
mail_message = None\n
to_url_list = []\n
to_url_list = []\n
\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
if not context.isTempDocument() and to_url is None:\n
use_activity = True\n
use_activity = True\n
\n
\n
...
@@ -79,10 +95,13 @@ if to_url is None:\n
...
@@ -79,10 +95,13 @@ if to_url is None:\n
else:\n
else:\n
to_url_list.append(to_url)\n
to_url_list.append(to_url)\n
\n
\n
if not context.hasStartDate():\n
context.setStartDate(DateTime())\n
\n
if download or not use_activity:\n
if download or not use_activity:\n
for to_url in to_url_list:\n
for to_url in to_url_list:\n
body = body or context.getTextContent()\n
body = body or context.getTextContent()
or \'\'
\n
subject = subject or context.getTitle()\n
subject = subject or context.getTitle()
or \'\'
\n
\n
\n
# From\n
# From\n
if from_url is None:\n
if from_url is None:\n
...
@@ -100,10 +119,6 @@ if download or not use_activity:\n
...
@@ -100,10 +119,6 @@ if download or not use_activity:\n
additional_headers = None\n
additional_headers = None\n
if reply_url:\n
if reply_url:\n
additional_headers = {\'Return-Path\':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
\n
content_type = context.getContentType()\n
content_type = context.getContentType()\n
\n
\n
...
@@ -112,7 +127,6 @@ if download or not use_activity:\n
...
@@ -112,7 +127,6 @@ if download or not use_activity:\n
subject,\n
subject,\n
body,\n
body,\n
content_type,\n
content_type,\n
attachment_list=attachment_list,\n
embedded_file_list=embedded_file_list)\n
embedded_file_list=embedded_file_list)\n
\n
\n
if not use_activity:\n
if not use_activity:\n
...
@@ -120,8 +134,7 @@ if download or not use_activity:\n
...
@@ -120,8 +134,7 @@ if download or not use_activity:\n
\n
\n
if use_activity:\n
if use_activity:\n
method_kw = dict(event_relative_url=context.getRelativeUrl(),\n
method_kw = dict(event_relative_url=context.getRelativeUrl(),\n
from_url=from_url,\n
from_url=from_url)\n
attachment_list=attachment_list)\n
context.activate(\n
context.activate(\n
after_path_and_method_id=((context.getPath(),), \n
after_path_and_method_id=((context.getPath(),), \n
(\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).MailMessage_sendByActivity(\n
(\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).MailMessage_sendByActivity(\n
...
...
bt5/erp5_crm/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml
View file @
8f165c65
...
@@ -18,6 +18,9 @@
...
@@ -18,6 +18,9 @@
<item>
Visit
</item>
<item>
Visit
</item>
<item>
Web Message
</item>
<item>
Web Message
</item>
</portal_type>
</portal_type>
<portal_type
id=
"Mail Message"
>
<item>
Embedded File
</item>
</portal_type>
<portal_type
id=
"Meeting"
>
<portal_type
id=
"Meeting"
>
<item>
Event Path
</item>
<item>
Event Path
</item>
</portal_type>
</portal_type>
...
...
bt5/erp5_crm/bt/template_portal_type_allowed_content_type_list
View file @
8f165c65
...
@@ -11,6 +11,7 @@ Event Module | Short Message
...
@@ -11,6 +11,7 @@ Event Module | Short Message
Event Module | Site Message
Event Module | Site Message
Event Module | Visit
Event Module | Visit
Event Module | Web Message
Event Module | Web Message
Mail Message | Embedded File
Meeting Module | Meeting
Meeting Module | Meeting
Meeting | Event Path
Meeting | Event Path
Preference | Support Request
Preference | Support Request
...
...
product/ERP5/Document/EmailDocument.py
View file @
8f165c65
...
@@ -160,9 +160,22 @@ class EmailDocument(TextDocument):
...
@@ -160,9 +160,22 @@ class EmailDocument(TextDocument):
# Mail processing API
# Mail processing API
def
_getMessage
(
self
):
def
_getMessage
(
self
):
# Email Document is not a representation of SMTP payload, thus we no longer
# store it in 'data' property.
result
=
getattr
(
self
,
'_v_message'
,
None
)
result
=
getattr
(
self
,
'_v_message'
,
None
)
if
result
is
None
:
if
result
is
None
:
result
=
message_from_string
(
str
(
self
.
getData
()))
data
=
self
.
getData
()
if
not
data
:
# Generated a mail message temporarily to provide backward compatibility.
data
=
self
.
Base_createMailMessageAsString
(
from_url
=
'from@example.com'
,
to_url
=
'to@example.com'
,
subject
=
self
.
getTitle
()
or
''
,
body
=
self
.
getTextContent
()
or
''
,
content_type
=
self
.
getContentType
(),
embedded_file_list
=
self
.
getAggregateValueList
(),
)
result
=
message_from_string
(
data
)
self
.
_v_message
=
result
self
.
_v_message
=
result
return
result
return
result
...
...
product/ERP5/tests/testNotificationTool.py
View file @
8f165c65
...
@@ -525,8 +525,6 @@ class TestNotificationToolWithCRM(TestNotificationTool):
...
@@ -525,8 +525,6 @@ class TestNotificationToolWithCRM(TestNotificationTool):
self
.
assertEqual
(
1
,
len
(
event_list
))
self
.
assertEqual
(
1
,
len
(
event_list
))
event
=
event_list
[
0
]
event
=
event_list
[
0
]
self
.
assertEqual
(
mail_dict
[
'headers'
][
'message-id'
],
event
.
getSourceReference
())
self
.
assertEqual
(
'Mail Message'
,
event
.
getPortalTypeName
())
self
.
assertEqual
(
'Mail Message'
,
event
.
getPortalTypeName
())
self
.
assertEqual
(
'Subject'
,
event
.
getTitle
())
self
.
assertEqual
(
'Subject'
,
event
.
getTitle
())
self
.
assertEqual
(
'Message'
,
event
.
getTextContent
())
self
.
assertEqual
(
'Message'
,
event
.
getTextContent
())
...
...
product/ERP5Type/patches/MailTemplates.py
View file @
8f165c65
...
@@ -71,7 +71,7 @@ if BaseMailTemplate is not None:
...
@@ -71,7 +71,7 @@ if BaseMailTemplate is not None:
headers
[
header
]
=
value
headers
[
header
]
=
value
# check required values have been supplied
# check required values have been supplied
errors
=
[]
errors
=
[]
for
param
in
(
'mfrom'
,
'mto'
,
'subject'
):
for
param
in
(
'mfrom'
,
'mto'
):
if
not
values
.
get
(
param
):
if
not
values
.
get
(
param
):
errors
.
append
(
param
)
errors
.
append
(
param
)
if
errors
:
if
errors
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment