diff --git a/addons/report/models/report.py b/addons/report/models/report.py
index c76a6b72e0e..32752fa6e33 100644
--- a/addons/report/models/report.py
+++ b/addons/report/models/report.py
@@ -20,6 +20,7 @@
##############################################################################
from openerp.osv import osv
+from openerp.tools import config
from openerp.tools.translate import _
from openerp.addons.web.http import request
from openerp.tools.safe_eval import safe_eval as eval
@@ -48,15 +49,23 @@ try:
['wkhtmltopdf', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
except OSError:
- _logger.error('You need wkhtmltopdf to print a pdf version of the reports.')
+ _logger.info('You need wkhtmltopdf to print a pdf version of the reports.')
else:
out, err = process.communicate()
- version = out.splitlines()[1].strip()
- version = version.split(' ')[1]
- if LooseVersion(version) < LooseVersion('0.12.0'):
- _logger.warning('Upgrade wkhtmltopdf to (at least) 0.12.0')
- wkhtmltopdf_state = 'upgrade'
- wkhtmltopdf_state = 'ok'
+
+ for line in out.splitlines():
+ line = line.strip()
+ if line.startswith('wkhtmltopdf 0.'):
+ version = line.split(' ')[1]
+ if LooseVersion(version) < LooseVersion('0.12.0'):
+ _logger.info('Upgrade wkhtmltopdf to (at least) 0.12.0')
+ wkhtmltopdf_state = 'upgrade'
+ else:
+ wkhtmltopdf_state = 'ok'
+
+ if config['workers'] == 1:
+ _logger.info('You need to start OpenERP with at least two workers to print a pdf version of the reports.')
+ wkhtmltopdf_state = 'workers'
class Report(osv.Model):
diff --git a/addons/report/static/src/js/qwebactionmanager.js b/addons/report/static/src/js/qwebactionmanager.js
index 7e55661be86..cb0f3921482 100644
--- a/addons/report/static/src/js/qwebactionmanager.js
+++ b/addons/report/static/src/js/qwebactionmanager.js
@@ -54,34 +54,35 @@ openerp.report = function(instance) {
if (action.report_type == 'qweb-html') {
window.open(report_url, '_blank', 'height=900,width=1280');
instance.web.unblockUI();
- } else {
+ } else if (action.report_type === 'qweb-pdf') {
// Trigger the download of the pdf/controller report
-
- if (action.report_type == 'qweb-pdf') {
- (wkhtmltopdf_state = wkhtmltopdf_state || openerp.session.rpc('/report/check_wkhtmltopdf')).then(function (presence) {
- // Fallback of qweb-pdf if wkhtmltopdf is not installed
- if (presence == 'install' && action.report_type == 'qweb-pdf') {
- self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \
- system. The report will be shown in html.
\
- wkhtmltopdf.org'), true);
- report_url = report_url.substring(12)
- window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
- instance.web.unblockUI();
- return;
- } else {
- if (presence == 'upgrade') {
- self.do_notify(_t('Report'), _t('You should upgrade your version of\
- Wkhtmltopdf to at least 0.12.0 in order to get a correct display of headers and footers as well as\
- support for table-breaking between pages.
wkhtmltopdf.org'), true);
- }
- }
- return trigger_download(self.session, response, c);
- });
- }
- else if (action.report_type == 'controller') {
+ (wkhtmltopdf_state = wkhtmltopdf_state || openerp.session.rpc('/report/check_wkhtmltopdf')).then(function (presence) {
+ // Fallback on html if wkhtmltopdf is not installed or if OpenERP is started with one worker
+ if (presence === 'install') {
+ self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \
+system. The report will be shown in html.
\
+wkhtmltopdf.org'), true);
+ report_url = report_url.substring(12)
+ window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
+ instance.web.unblockUI();
+ return;
+ } else if (presence === 'workers') {
+ self.do_notify(_t('Report'), _t('You need to start OpenERP with at least two \
+workers to print a pdf version of the reports.'), true);
+ report_url = report_url.substring(12)
+ window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
+ instance.web.unblockUI();
+ return;
+ } else if (presence === 'upgrade') {
+ self.do_notify(_t('Report'), _t('You should upgrade your version of\
+ Wkhtmltopdf to at least 0.12.0 in order to get a correct display of headers and footers as well as\
+ support for table-breaking between pages.
wkhtmltopdf.org'), true);
+ }
return trigger_download(self.session, response, c);
- }
+ });
+ } else if (action.report_type === 'controller') {
+ return trigger_download(self.session, response, c);
}
} else {
return self._super(action, options);