[MERGE] webkit wkhtmltopdf path configuration
authorAntony Lesuisse <al@openerp.com>
Fri, 10 Feb 2012 17:39:11 +0000 (18:39 +0100)
committerAntony Lesuisse <al@openerp.com>
Fri, 10 Feb 2012 17:39:11 +0000 (18:39 +0100)
bzr revid: al@openerp.com-20120210173911-9f7oqrtghejse9o4

1  2 
addons/report_webkit/webkit_report.py

@@@ -71,35 -72,33 +72,33 @@@ class WebKitParser(report_sxw)
          report_sxw.__init__(self, name, table, rml, parser,
              header, store)
  
-     def get_lib(self, cursor, uid, company) :
+     def get_lib(self, cursor, uid):
          """Return the lib wkhtml path"""
-         #TODO Detect lib in system first
-         path = self.pool.get('res.company').read(cursor, uid, company, ['lib_path',])
-         path = path['lib_path']
-         if not path:
-             raise except_osv(
-                              _('Wkhtmltopdf library path is not set in company'),
-                              _('Please install executable on your system'+
-                              ' (sudo apt-get install wkhtmltopdf) or download it from here:'+
-                              ' http://code.google.com/p/wkhtmltopdf/downloads/list and set the'+
-                              ' path to the executable on the Company form.'+
-                              'Minimal version is 0.9.9')
-                             )
-         if os.path.isabs(path) :
-             if (os.path.exists(path) and os.access(path, os.X_OK)\
-                 and os.path.basename(path).startswith('wkhtmltopdf')):
-                 return path
-             else:
-                 raise except_osv(
-                                 _('Wrong Wkhtmltopdf path set in company'+
-                                 'Given path is not executable or path is wrong'),
-                                 'for path %s'%(path)
-                                 )
-         else :
-             raise except_osv(
-                             _('path to Wkhtmltopdf is not absolute'),
-                             'for path %s'%(path)
-                             )
+         proxy = self.pool.get('ir.config_parameter')
+         webkit_path = proxy.get_param(cursor, uid, 'webkit_path')
+         if not webkit_path:
+             try:
+                 defpath = os.environ.get('PATH', os.defpath).split(os.pathsep)
+                 if hasattr(sys, 'frozen'):
+                     defpath.append(os.getcwd())
 -                webkit_path = tools.which('wkhtmltopdf', path=os.path.join(defpath))
++                webkit_path = tools.which('wkhtmltopdf', path=os.pathsep.join(defpath))
+             except IOError:
+                 webkit_path = None
+         if webkit_path:
+             return webkit_path
+         raise except_osv(
+                          _('Wkhtmltopdf library path is not set'),
+                          _('Please install executable on your system' \
+                          ' (sudo apt-get install wkhtmltopdf) or download it from here:' \
+                          ' http://code.google.com/p/wkhtmltopdf/downloads/list and set the' \
+                          ' path in the ir.config_parameter with the webkit_path key.' \
+                          'Minimal version is 0.9.9')
+                         )
      def generate_pdf(self, comm_path, report_xml, header, footer, html_list, webkit_header=False):
          """Call webkit in order to generate pdf"""
          if not webkit_header: