Commit c07fe82e authored by Jérome Perrin's avatar Jérome Perrin Committed by Arnaud Fontaine

*: make attachment_list of notification API correctly use bytes

parent 5cae29c5
# coding: utf-8
import unicodedata
from six.moves import cStringIO as StringIO
import six
from io import BytesIO
import zipfile
from Products.ERP5Type.Message import translateString
......@@ -22,7 +23,7 @@ if test_compta_demat_compatibility:
'NFKD', fec_file.replace(u"€", "EUR")
).encode('ascii', 'ignore')
zipbuffer = StringIO()
zipbuffer = BytesIO()
zipfilename = at_date.strftime('FEC-%Y%m%d.zip')
zipfileobj = zipfile.ZipFile(zipbuffer, 'w', compression=zipfile.ZIP_DEFLATED)
filename = 'FEC.xml'
......@@ -42,9 +43,15 @@ attachment_list = (
'content': zipbuffer.getvalue(),
'name': zipfilename, }, )
subject = translateString('French Accounting Transaction File')
if six.PY2:
subject = unicode(subject)
else:
subject = str(subject)
portal.ERP5Site_notifyReportComplete(
user_name=user_name,
subject=unicode(translateString('French Accounting Transaction File')),
subject=subject,
message='',
attachment_list=attachment_list)
......
......@@ -121,9 +121,9 @@ class Url(Coordinate, UrlMixin):
This method was previously named 'SendMail' and is used to send email
* attachment_list is a list of dictionnaries with those keys:
- name : name of the attachment,
- content: data of the attachment
- mime_type: mime-type corresponding to the attachment
- name (str): name of the attachment,
- content (bytes): data of the attachment
- mime_type (str): mime-type corresponding to the attachment
* extra_headers is a dictionnary of custom headers to add to the email.
"X-" prefix is automatically added to those headers.
"""
......
......@@ -6,10 +6,10 @@
* body: body of the message as UTF-8 encoded string
* content_type: mime type of this message, can be text/html for
HTML message or anything else for text/plain message.
* attachment_list: a list of attachement mapping in format:
- mime_type: mime type of thsi attachement
- content: file content of the attachement, as a string
- name: displayed name of this attachements
* attachment_list: a list of attachment mapping in format:
- mime_type (str): mime type of thsi attachment
- content (bytes): file content of the attachment
- name (str): displayed name of this attachment
* embedded_file_list: a list of ERP5 File to use as attachments.
* extra_header_dict: additional email headers
......
......@@ -30,7 +30,7 @@ with portal.Localizer.translationContext(localizer_language):
attachment_name = attachment_name[:-1]
attachment_list = (
{'mime_type': (request.RESPONSE.getHeader('content-type') or 'application/octet-stream;').split(';')[0],
'content': '%s' % report_data,
'content': bytes(report_data),
'name': attachment_name},)
getattr(portal, notify_report_complete_script_id)(
......
......@@ -51,7 +51,7 @@ with portal.Localizer.translationContext(localizer_language):
attachment_list = (
{'mime_type': (request.RESPONSE.getHeader('content-type') or 'application/octet-stream;').split(';')[0],
'content': '%s' % report_data,
'content': bytes(report_data),
'name': attachment_name},)
getattr(portal, notify_report_complete_script_id)(
......
......@@ -355,7 +355,7 @@ class Alarm(XMLObject, PeriodicityMixin):
for x in result_list]
rendered_alarm_result = '\n'.join(rendered_alarm_result_list)
attachment_list.append({'name': 'alarm_result.txt',
'content': rendered_alarm_result,
'content': rendered_alarm_result.encode(),
'mime_type': 'text/plain'})
notification_tool.sendMessage(recipient=candidate_list,
......
......@@ -109,9 +109,9 @@ def buildEmailMessage(from_url, to_url, msg=None,
sent by Zope MailHost.
* attachment_list is a list of dictionaries with those keys:
- name : name of the attachment,
- content: data of the attachment
- mime_type: mime-type corresponding to the attachment
- name (str): name of the attachment
- content (bytes): data of the attachment
- mime_type (str): mime-type corresponding to the attachment
* extra_headers is a dictionary of custom headers to add to the email.
"X-" prefix is automatically added to those headers.
* additional_headers is similar to extra_headers, but no prefix is added.
......
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