parent
0836addc1d
commit
5c2e71839c
|
@ -8,6 +8,7 @@ import logging
|
|||
import os
|
||||
import requests
|
||||
import tempfile
|
||||
from datetime import datetime
|
||||
from contextlib import closing
|
||||
from openerp import _, api, models
|
||||
from openerp.exceptions import UserError
|
||||
|
@ -75,16 +76,22 @@ class Py3oReport(models.TransientModel):
|
|||
}
|
||||
if report_xml.py3o_is_local_fusion:
|
||||
fields['skipfusion'] = '1'
|
||||
url = report_xml.py3o_server_id.url
|
||||
logger.info(
|
||||
'Connecting to %s to convert report %s to %s',
|
||||
url, report_xml.report_name, filetype)
|
||||
if filetype == 'pdf':
|
||||
options = report_xml.pdf_options_id or\
|
||||
report_xml.py3o_server_id.pdf_options_id
|
||||
if options:
|
||||
pdf_options_dict = options.odoo2libreoffice_options()
|
||||
fields['pdf_options'] = json.dumps(pdf_options_dict)
|
||||
r = requests.post(
|
||||
report_xml.py3o_server_id.url, data=fields, files=files)
|
||||
logger.debug('PDF Export options: %s', pdf_options_dict)
|
||||
start_chrono = datetime.now()
|
||||
r = requests.post(url, data=fields, files=files)
|
||||
if r.status_code != 200:
|
||||
# server says we have an issue... let's tell that to enduser
|
||||
logger.error('Py3o fusion server error: %s', r.text)
|
||||
raise UserError(
|
||||
_('Fusion server error %s') % r.text,
|
||||
)
|
||||
|
@ -93,6 +100,11 @@ class Py3oReport(models.TransientModel):
|
|||
with open(result_path, 'w+') as fd:
|
||||
for chunk in r.iter_content(chunk_size):
|
||||
fd.write(chunk)
|
||||
end_chrono = datetime.now()
|
||||
convert_seconds = (end_chrono - start_chrono).total_seconds()
|
||||
logger.info(
|
||||
'Report %s converted to %s in %s seconds',
|
||||
report_xml.report_name, filetype, convert_seconds)
|
||||
if len(model_instance) == 1:
|
||||
self._postprocess_report(
|
||||
result_path, model_instance.id, save_in_attachment)
|
||||
|
|
Loading…
Reference in New Issue