Commit d44d3df3 authored by Xiaowu Zhang's avatar Xiaowu Zhang Committed by Cédric Le Ninivin

erp5_deferred_style: send a notification if there has error when generate report

parent fc92390b
...@@ -14,30 +14,46 @@ if skin_name and skin_name != 'None': # make_query serializes None as 'None' ...@@ -14,30 +14,46 @@ if skin_name and skin_name != 'None': # make_query serializes None as 'None'
portal.portal_skins.changeSkin(skin_name) portal.portal_skins.changeSkin(skin_name)
with portal.Localizer.translationContext(localizer_language): with portal.Localizer.translationContext(localizer_language):
report_data = getattr(context, deferred_style_dialog_method)(**params) try:
report_data = getattr(context, deferred_style_dialog_method)(**params)
attachment_name_list = [x[len(' filename='):] for x in (request.RESPONSE.getHeader( attachment_name_list = [x[len(' filename='):] for x in (request.RESPONSE.getHeader(
'content-disposition') or '').split(';') 'content-disposition') or '').split(';')
if x.startswith(' filename=')] if x.startswith(' filename=')]
if attachment_name_list: if attachment_name_list:
attachment_name, = attachment_name_list attachment_name, = attachment_name_list
else: else:
assert 'inline' in (request.RESPONSE.getHeader('content-disposition') or '') assert 'inline' in (request.RESPONSE.getHeader('content-disposition') or '')
attachment_name = 'index.html' attachment_name = 'index.html'
if attachment_name.startswith('"'): if attachment_name.startswith('"'):
attachment_name = attachment_name[1:] attachment_name = attachment_name[1:]
if attachment_name.endswith('"'): if attachment_name.endswith('"'):
attachment_name = attachment_name[:-1] attachment_name = attachment_name[:-1]
attachment_list = ( attachment_list = (
{'mime_type': (request.RESPONSE.getHeader('content-type') or 'application/octet-stream;').split(';')[0], {'mime_type': (request.RESPONSE.getHeader('content-type') or 'application/octet-stream;').split(';')[0],
'content': '%s' % report_data, 'content': '%s' % report_data,
'name': attachment_name},) 'name': attachment_name},)
getattr(portal, notify_report_complete_script_id)( getattr(portal, notify_report_complete_script_id)(
user_name=user_name, user_name=user_name,
subject=str(translateString(attachment_name.rsplit('.', 1)[0])), subject=str(translateString(attachment_name.rsplit('.', 1)[0])),
message='', message='',
attachment_list=attachment_list, attachment_list=attachment_list,
format=report_format, format=report_format,
**notify_report_complete_kwargs **notify_report_complete_kwargs
) )
except Exception, Error:
if type(report_data) is dict and report_data.pop('status', 0) == -2:
message = report_data.pop('message')
subject = report_data.pop('subject')
else:
message = 'Unknown Error, Please Retry'
subject = 'ERP5: Deferred Report'
getattr(portal, notify_report_complete_script_id)(
user_name=user_name,
subject=subject,
attachment_list = [],
message=message,
format=report_format
)
context.log(Error)
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