← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-addons/trunk_webkit_addons_review into lp:~c2c/openobject-addons/trunk_webkit_addons

 

Olivier Dony (OpenERP) has proposed merging lp:~openerp-dev/openobject-addons/trunk_webkit_addons_review into lp:~c2c/openobject-addons/trunk_webkit_addons.

Requested reviews:
  hda (OpenERP) (hda-tinyerp)


Review and fixes for inclusion of webkit reporting engine - proposed fixes after latest changes on server-trunk.
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk_webkit_addons_review/+merge/37973
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk_webkit_addons_review.
=== renamed directory 'c2c_webkit_report' => 'report_webkit'
=== renamed file 'c2c_webkit_report/__terp__.py' => 'report_webkit/__openerp__.py'
--- c2c_webkit_report/__terp__.py	2010-10-07 07:45:18 +0000
+++ report_webkit/__openerp__.py	2010-10-08 14:37:43 +0000
@@ -30,9 +30,9 @@
 ##############################################################################
 
 {
-    "name" : "webkit report",
-    "description" : """Report system base on WebKit engine (wkhtmltopd lib) that allows to do HTML2PDF reporting.
-The module structure and some is inspired of the report_openoffice module
+    "name" : "Webkit Report Engine",
+    "description" : """This module adds a new Report Engine based on WebKit library (wkhtmltopdf) to support reports designed in HTML + CSS.
+The module structure and some code is inspired by the report_openoffice module.
 The module allows:
     -HTML report definition
     -Multi header support 
@@ -44,20 +44,22 @@
     -Book printing capabilities
     -Margins definition 
     -Paper size definition
-and munch more
-
-Many header are defined per company
-Many logo are defined per company
-CSS style, header and footer body are defined in the company
-
-The mapper library can be found here
+and much more
+
+Multiple headers and logos can be defined per company.
+CSS style, header and footer body are defined per company
+
+The library to install can be found here
 http://code.google.com/p/wkhtmltopdf/
-The libraries are included for Linux, Mac OS X i386 and Windows 32.
-
-A sample invoice report is defined in the report. 
-You have to create the print button by calling a wizard. For more details :
+The system libraries are available for Linux, Mac OS X i386 and Windows 32.
+
+After installing the wkhtmltopdf library on the OpenERP Server machine, you need to set the
+path to the wkthtmltopdf executable file on the Company.
+
+For a sample report see also the webkit_report_sample module, and this video:
     http://files.me.com/nbessi/06n92k.mov 
 
+
 TODO :
 JavaScript support activation deactivation
 Collated and book format support
@@ -67,8 +69,9 @@
     "version" : "0.9",
     "depends" : ["base"],
     "author" : "Camptocamp SA - NBessi",
-    "init_xml" : [],
-    "update_xml": [
+    "category": "Reports/Webkit",
+    "url": "http://http://www.camptocamp.com/";,
+    "data": [
                         "company_view.xml",
                         "header_view.xml",
                         "ir_report_view.xml",

=== modified file 'report_webkit/company.py'
--- c2c_webkit_report/company.py	2010-10-07 07:45:18 +0000
+++ report_webkit/company.py	2010-10-08 14:37:43 +0000
@@ -52,8 +52,8 @@
                                                     'html_id', 
                                                     'Available html'
                                                 ),
-                'lib_path' : fields.char('Lib Path', size=264, help="Complete path for wkhtmltopdf library."),
-                                                
+                'lib_path' : fields.char('Webkit Executable Path', size=264, help="Complete path to the wkhtmltopdf executable."),
+
     }   
     
 ResCompany()
\ No newline at end of file

=== modified file 'report_webkit/company_view.xml'
--- c2c_webkit_report/company_view.xml	2010-10-07 07:45:18 +0000
+++ report_webkit/company_view.xml	2010-10-08 14:37:43 +0000
@@ -7,17 +7,16 @@
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <notebook position="inside">
-                    <page string="webkit Headers">
-                    	<field name="lib_path" colspan="4"/>
-                        <separator string="Images" />
-                        <field name="header_image"  colspan="4" nolabel="1"/>
-                        <separator string="Headers" />
-                        <field name="header_webkit"  colspan="4" nolabel="1"/>
+                    <page string="Webkit">
+                        <field name="lib_path" colspan="4"/>
+                        <separator string="Images" colspan="4"/>
+                        <field name="header_image" colspan="4" nolabel="1"/>
+                        <separator string="Headers" colspan="4"/>
+                        <field name="header_webkit" colspan="4" nolabel="1"/>
                     </page>
                 </notebook>
             </field>
         </record>
     </data>
-    
 </openerp>
 

=== modified file 'report_webkit/data.xml'
--- c2c_webkit_report/data.xml	2010-10-07 07:45:18 +0000
+++ report_webkit/data.xml	2010-10-08 14:37:43 +0000
@@ -98,7 +98,7 @@
             <field eval="&quot;&quot;&quot;WebKit invoice&quot;&quot;&quot;" name="name"/>
         </record>
         <record id="ir_property_webkitheaderdefault0" model="ir.property">
-            <field name="fields_id" ref="c2c_webkit_report.field_ir_act_report_xml_webkit_header"/>
+            <field name="fields_id" ref="field_ir_act_report_xml_webkit_header"/>
             <field eval="&quot;&quot;&quot;webkit_header_default&quot;&quot;&quot;" name="name"/>
             <field eval="&quot;&quot;&quot;ir.header_webkit,1&quot;&quot;&quot;" name="value"/>
         </record>

=== modified file 'report_webkit/ir_report.py'
--- c2c_webkit_report/ir_report.py	2010-10-07 07:45:18 +0000
+++ report_webkit/ir_report.py	2010-10-08 14:37:43 +0000
@@ -38,12 +38,6 @@
 from tools.translate import _
 import os
 
-def delete_report_service(name):
-    "Delete the report of the known services"
-    name = 'report.%s' % name
-    if netsvc.Service._services.get( name, False ):
-        del netsvc.Service._services
-
 def register_report(name, model, tmpl_path, parser):
     "Register the report into the services"
     name = 'report.%s' % name
@@ -65,21 +59,7 @@
             if record['report_type'] == 'webkit':
                 parser=rml_parse
                 register_report(record['report_name'], record['model'], record['report_rml'], parser)
-        return value        
-
-    def _report_content(self, cursor, user, ids, name, arg, context=None):
-        """Ask OpenERP for Doc String ??"""
-        res = {}
-        for report in self.browse(cursor, user, ids, context=context):
-            data = report[name + '_data']
-            if not data and report[name[:-8]]:
-                try:
-                    fp = tools.file_open(report[name[:-8]], mode='rb')
-                    data = fp.read()
-                except:
-                    data = False
-            res[report.id] = data
-        return res
+        return value
 
     def unlink(self, cursor, user, ids, context=None):
         """Delete report and unregister it"""
@@ -88,11 +68,14 @@
         trans_ids = trans_obj.search(
             cursor, 
             user,
-            [('type', '=', 'webkit'), ('res_id', 'in', ids)]
+            [('type', '=', 'report'), ('res_id', 'in', ids)]
         )
         trans_obj.unlink(cursor, user, trans_ids)
-        for record in records:
-            delete_report_service(record['report_name'])
+
+        # Warning: we cannot unregister the services at the moment
+        # because they are shared across databases. Calling a deleted
+        # report will fail so it's ok. 
+
         records = None
         res = super(ReportXML, self).unlink(
                                             cursor, 
@@ -107,23 +90,16 @@
         "Create report and register it"
         res = super(ReportXML, self).create(cursor, user, vals, context)
         parser=rml_parse
-        try:
-            register_report(
-                                vals['report_name'], 
-                                vals['model'], 
-                                vals.get('report_rml', False), 
-                                parser
-                            )
-        except Exception, e:
-            print e
-            raise osv.except_osv(
-                                    _('Report registration error !'), 
-                                    _('Report was not registered in system !')
-                                )
+        register_report(
+                        vals['report_name'], 
+                        vals['model'], 
+                        vals.get('report_rml', False), 
+                        parser
+                        )
         return res
         
     def write(self, cursor, user, ids, vals, context=None):
-        "Edit report and manage it regitration"
+        "Edit report and manage it registration"
         parser=rml_parse
         record = self.read(cursor, user, ids)
         if isinstance(record, list) :
@@ -134,33 +110,20 @@
             report_name = vals['report_name']
         else:
             report_name = record['report_name']
-        try:
-            register_report( 
-                                report_name, 
-                                vals.get('model', record['model']), 
-                                vals.get('report_rml', record['report_rml']), 
-                                parser
-                            )
-        except Exception, e:
-            print e
-            raise osv.except_osv(
-                                    _('Report registration error !'), 
-                                    _('Report was not registered in system !')
-                                )
+
+        register_report(
+                        report_name, 
+                        vals.get('model', record['model']), 
+                        vals.get('report_rml', record['report_rml']), 
+                        parser
+                        )
         res = super(ReportXML, self).write(cursor, user, ids, vals, context)
         return res
 
-    def _report_content_inv(self, cursor, user, inid, 
-        name, value, arg, context=None):
-        """Ask OpenERP for Doc String ??"""
-        
-        self.write(cursor, user, inid, {name+'_data': value}, context=context)
-
-
     _name = 'ir.actions.report.xml'
     _inherit = 'ir.actions.report.xml'
     _columns = {
-        'webkit_header':  fields.property(   
+        'webkit_header':  fields.property(
                                             'ir.header_webkit',
                                             type='many2one',
                                             relation='ir.header_webkit',
@@ -170,12 +133,8 @@
                                             view_load=True,
                                             required=True
                                         ),
-        'report_webkit': fields.char( 
-                                        'WebKit HTML path',
-                                        size=256,
-                                    ),
-        'webkit_debug' : fields.boolean('Webkit debug'),
-        'report_webkit_data': fields.text('WebKit HTML content'),
+        'webkit_debug' : fields.boolean('Webkit debug', help="Enable the webkit engine debugger"),
+        'report_webkit_data': fields.text('Webkit Template', help="This template will be used if the main report file is not found"),
     }
 
-ReportXML()
+ReportXML()
\ No newline at end of file

=== modified file 'report_webkit/ir_report_view.xml'
--- c2c_webkit_report/ir_report_view.xml	2010-10-07 07:45:18 +0000
+++ report_webkit/ir_report_view.xml	2010-10-08 14:37:43 +0000
@@ -1,40 +1,20 @@
 <openerp>
     <data>
-        <record id="act_report_xml_view1" model="ir.ui.view">
-            <field name="name">ir.actions.report.xml.inherit1</field>
-            <field name="model">ir.actions.report.xml</field>
-            <field name="priority">16</field>
-            <field name="inherit_id" ref="base.act_report_xml_view"/>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <field name="groups_id" position="replace" >
-                </field>
-            </field>
-        </record>
-        
         <record id="act_report_xml_view" model="ir.ui.view">
             <field name="name">ir.actions.report.xml.inherit</field>
             <field name="model">ir.actions.report.xml</field>
             <field name="inherit_id" ref="base.act_report_xml_view"/>
             <field name="type">form</field>
             <field name="arch" type="xml">
-                <field name="attachment_use" position="after" >
-                    <notebook colspan="4">
-                        <page string="Security">
-                            <field colspan="4" name="groups_id"/>                        
-                        </page>
-                        <page string="Webkit Setup" >
-                            <field name="webkit_debug" colspan="4"/>
-                            <field name="webkit_header" select="2"/>
-                            <field name="report_webkit" colspan="4"/>
-                            <newline/>
-                            <field name="report_webkit_data" colspan="4"/>
-                        </page>
-                    </notebook>
-                </field>
+                <xpath expr="/form/notebook/page[@string='Security']" position="before" >
+                    <page string="Webkit" attrs="{'invisible':[('report_type','!=','webkit')]}">
+                        <field name="webkit_header"/>
+                        <field name="webkit_debug"/>
+                        <separator string="Webkit Template (used if Report File is not found)" colspan="4"/>
+                        <field name="report_webkit_data" colspan="4" nolabel="1"/>
+                    </page>
+                </xpath>
             </field>
         </record>
-<!--        <wizard string="Add Print Buttons" model="ir.actions.report.xml" name="ir.report_actions" menu="True" id="wizard_oo_report_actions" />-->
-
     </data>
 </openerp>

=== modified file 'report_webkit/webkit_report.py'
--- c2c_webkit_report/webkit_report.py	2010-10-07 07:45:18 +0000
+++ report_webkit/webkit_report.py	2010-10-08 14:37:43 +0000
@@ -29,25 +29,23 @@
 #
 ##############################################################################
 
+import commands
+import logging
+import os
+import platform
+import report
 import sys
-import platform
-import os
 import tempfile
-import report
-from report.report_sxw import *
-from osv import osv
-from tools.translate import _
 import time
 from mako.template import Template
+
+import netsvc
 import pooler
 from report_helper import WebKitHelper
-import netsvc
-import pooler
+from report.report_sxw import *
 from tools.config import config
-
-import commands
-logger = netsvc.Logger()
-#from report.report_sxw import report_sxw, report_rml
+from tools.translate import _
+from osv.osv import except_osv
 
 class WebKitParser(report_sxw):
     """Custom class that use webkit to render HTML reports
@@ -61,7 +59,6 @@
         report_sxw.__init__(self, name, table, rml, parser, 
             header, store)
 
-        
     def get_lib(self, cursor, uid, company) :
         """Return the lib wkhtml path"""
         #TODO Detect lib in system first
@@ -74,85 +71,82 @@
                 if status[0]:
                     raise
 
-            except Exception,e:
-                raise osv.except_osv(
-                                    _('Please install wkhtmltopdf'),
-                                    _('Please install it on you system (sudo apt-get install wkhtmltopdf) or download it from here: http://code.google.com/p/wkhtmltopdf/downloads/list')
+            except Exception:
+                raise except_osv(
+                                    _('Please install wkhtmltopdf library'),
+                                    _('Please install it on you 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.')
                                     )
         return False
-        
-    def genreate_pdf(self, comm_path, report_xml, header, footer, html_list):
+
+    def generate_pdf(self, comm_path, report_xml, header, footer, html_list):
         """Call webkit in order to generate pdf"""
         tmp_dir = tempfile.gettempdir()
         out = report_xml.name+str(time.time())+'.pdf'
         out = os.path.join(tmp_dir, out.replace(' ',''))
         files = []
         file_to_del = []
+        if comm_path:
+            command = [comm_path]
+        else:
+            command = 'wkhtmltopdf'
+                
+        command.append('-q')
+        if header :
+            head_file = file( os.path.join(
+                                  tmp_dir,
+                                  str(time.time()) + '.head.html'
+                                 ), 
+                                'w'
+                            )
+            head_file.write(header)
+            head_file.close()
+            file_to_del.append(head_file.name)
+            command.append("--header-html '%s'"%(head_file.name))
+        if footer :
+            foot_file = file(  os.path.join(
+                                  tmp_dir,
+                                  str(time.time()) + '.foot.html'
+                                 ), 
+                                'w'
+                            )
+            foot_file.write(footer)
+            foot_file.close()
+            file_to_del.append(foot_file.name)
+            command.append("--footer-html '%s'"%(foot_file.name))
+            
+        if report_xml.webkit_header.margin_top :
+            command.append('--margin-top %s'%(report_xml.webkit_header.margin_top))
+        if report_xml.webkit_header.magrin_bottom :
+            command.append('--margin-bottom %s'%(report_xml.webkit_header.magrin_bottom))
+        if report_xml.webkit_header.magrin_left :
+            command.append('--margin-left %s'%(report_xml.webkit_header.magrin_left))
+        if report_xml.webkit_header.magrin_right :
+            command.append('--margin-right %s'%(report_xml.webkit_header.magrin_right))
+        if report_xml.webkit_header.orientation :
+            command.append("--orientation '%s'"%(report_xml.webkit_header.orientation))
+        if report_xml.webkit_header.format :
+            command.append(" --page-size '%s'"%(report_xml.webkit_header.format))
+        for html in html_list :
+            html_file = file(os.path.join(tmp_dir, str(time.time()) + '.body.html'), 'w')
+            html_file.write(html)
+            html_file.close()
+            file_to_del.append(html_file.name)
+            command.append(html_file.name)
+        command.append(out)
+        generate_command = ' '.join(command)
         try:
-            if comm_path:
-                command = [comm_path]
-            else:
-                command = 'wkhtmltopdf'
-                    
-            command.append('-q')
-            if header :
-                head_file = file( os.path.join(
-                                      tmp_dir,
-                                      str(time.time()) + '.head.html'
-                                     ), 
-                                    'w'
-                                )
-                head_file.write(header)
-                head_file.close()
-                file_to_del.append(head_file.name)
-                command.append("--header-html '%s'"%(head_file.name))
-            if footer :
-                foot_file = file(  os.path.join(
-                                      tmp_dir,
-                                      str(time.time()) + '.foot.html'
-                                     ), 
-                                    'w'
-                                )
-                foot_file.write(footer)
-                foot_file.close()
-                file_to_del.append(foot_file.name)
-                command.append("--footer-html '%s'"%(foot_file.name))
-                
-            if report_xml.webkit_header.margin_top :
-                command.append('--margin-top %s'%(report_xml.webkit_header.margin_top))
-            if report_xml.webkit_header.magrin_bottom :
-                command.append('--margin-bottom %s'%(report_xml.webkit_header.magrin_bottom))
-            if report_xml.webkit_header.magrin_left :
-                command.append('--margin-left %s'%(report_xml.webkit_header.magrin_left))
-            if report_xml.webkit_header.magrin_right :
-                command.append('--margin-right %s'%(report_xml.webkit_header.magrin_right))
-            if report_xml.webkit_header.orientation :
-                command.append("--orientation '%s'"%(report_xml.webkit_header.orientation))
-            if report_xml.webkit_header.format :
-                command.append(" --page-size '%s'"%(report_xml.webkit_header.format))
-            for html in html_list :
-                html_file = file(os.path.join(tmp_dir, str(time.time()) + '.body.html'), 'w')
-                html_file.write(html)
-                html_file.close()
-                file_to_del.append(html_file.name)
-                command.append(html_file.name)
-            command.append(out)
-            generate_command = ' '.join(command)
+            status = commands.getstatusoutput(generate_command)
+            if status[0] :
+                raise except_osv(
+                                _('Webkit raise an error' ), 
+                                status[1]
+                            )
+        except Exception:
             try:
-                status = commands.getstatusoutput(generate_command)
-                if status[0] :
-                    raise osv.except_osv(
-                                    _('Webkit raise an error' ), 
-                                    status[1]
-                                )
-            except Exception, exc:
-                try:
-                    for f_to_del in file_to_del :
-                        os.unlink(f_to_del)
-                except Exception, exc:
-                    pass
-        except Exception, exc:
-            raise exc
+                for f_to_del in file_to_del :
+                    os.unlink(f_to_del)
+            except Exception:
+                pass
 
         pdf = file(out).read()
         try:
@@ -168,11 +162,11 @@
         if not lang:
             lang = 'en_US'
         self.localcontext['lang'] = lang
-                
+
     def translate_call(self, src):
         """Translate String."""
         ir_translation = self.pool.get('ir.translation')
-        res = ir_translation._get_source(self.parser_instance.cr, self.parser_instance.uid, self.name, 'webkit', self.localcontext.get('lang', 'en_US'), src)
+        res = ir_translation._get_source(self.parser_instance.cr, self.parser_instance.uid, self.name, 'report', self.localcontext.get('lang', 'en_US'), src)
         return res 
  
     def formatLang(self, value, digits=None, date=False, date_time=False, grouping=True, monetary=False):
@@ -207,10 +201,11 @@
         return lang_obj.format('%.' + str(digits) + 'f', value, grouping=grouping, monetary=monetary)
 
     # override needed to keep the attachments' storing procedure
-    def create_single_pdf(self, cursor, uid, ids, data, report_xml, 
-        context=None):
+    def create_single_pdf(self, cursor, uid, ids, data, report_xml, context=None):
         """generate the PDF"""
-        
+        if report_xml.report_type != 'webkit':
+            return super(WebKitParser,self).create_single_pdf(self, cursor, uid, ids, data, report_xml, context=context)
+
         if not context:
             context={}
         self.parser_instance = self.parser(
@@ -219,7 +214,7 @@
                                             self.name2, 
                                             context=context
                                         )
-       
+
         self.pool = pooler.get_pool(cursor.dbname)
         objs = self.getObjects(cursor, uid, ids, context)
         self.parser_instance.set_context(objs, data, ids, report_xml.report_type)
@@ -227,22 +222,22 @@
         user = self.pool.get('res.users').browse(cursor, uid, uid)
         company = user.company_id
 
-        
+
         template =  False
-        if report_xml.report_webkit :
-            path = os.path.join(config['addons_path'], report_xml.report_webkit)
+        if report_xml.report_file :
+            path = os.path.join(config['addons_path'], report_xml.report_file)
             if os.path.exists(path) :
                 template = file(path).read()
         if not template and report_xml.report_webkit_data :
             template =  report_xml.report_webkit_data
         if not template :
-            raise osv.except_osv(_('Report template not found !'), _(''))
+            raise except_osv(_('Webkit Report template not found !'), _(''))
         header = report_xml.webkit_header.html
         footer = report_xml.webkit_header.footer_html
         if not header and report_xml.header:
-            raise osv.except_osv(
-                _('No header defined for this report header html is empty !'), 
-                _('look in company settings')
+            raise except_osv(
+                _('No header defined for this Webkit report!'),
+                _('Please set a header in company settings')
             )
         if not report_xml.header :
             #I know it could be cleaner ...
@@ -323,70 +318,9 @@
                                         )
             return (deb, 'html')
         bin = self.get_lib(cursor, uid, company.id)
-        pdf = self.genreate_pdf(bin, report_xml, head, foot, [html])
+        pdf = self.generate_pdf(bin, report_xml, head, foot, [html])
         return (pdf, 'pdf')
 
-    def create_source_webkit(self, cursor, uid, ids, data, report_xml, context=None):
-        """We override the create_source_webkit function in order to handle attachement
-           Code taken from report openoffice. Thanks guys :) """
-        if not context:
-            context = {}
-        pool = pooler.get_pool(cursor.dbname)
-        attach = report_xml.attachment
-        if attach:
-            objs = self.getObjects(cursor, uid, ids, context)
-            results = []
-            for obj in objs:
-                aname = eval(attach, {'object':obj, 'time':time})
-                result = False
-                if report_xml.attachment_use and aname and context.get('attachment_use', True):
-                    aids = pool.get('ir.attachment').search(
-                                                            cursor, 
-                                                            uid,
-                                                            [
-                                                                ('datas_fname','=',aname+'.pdf'),
-                                                                ('res_model','=',self.table),
-                                                                ('res_id','=',obj.id)
-                                                            ]
-                                                        )
-                    if aids:
-                        brow_rec = pool.get('ir.attachment').browse(cursor, uid, aids[0])
-                        if not brow_rec.datas:
-                            continue
-                        d = base64.decodestring(brow_rec.datas)
-                        results.append((d,'odt'))
-                        continue
-                result = self.create_single_pdf(cursor, uid, [obj.id], data, report_xml, context)
-                try:
-                    if aname:
-                        name = aname+'.'+result[1]
-                        pool.get('ir.attachment').create(cursor, uid, {
-                            'name': aname,
-                            'datas': base64.encodestring(result[0]),
-                            'datas_fname': name,
-                            'res_model': self.table,
-                            'res_id': obj.id,
-                            }, context=context
-                        )
-                        cursor.commit()
-                except Exception, exp:
-                    import traceback, sys
-                    tb_s = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
-                    netsvc.Logger().notifyChannel(
-                                                    'report', 
-                                                    netsvc.LOG_ERROR, 
-                                                    str(exp)
-                                                )
-                results.append(result)
-
-        return self.create_single_pdf(
-                                        cursor, 
-                                        uid, 
-                                        ids, 
-                                        data, 
-                                        report_xml, 
-                                        context
-                                    )
 
     def create(self, cursor, uid, ids, data, context=None):
         """We override the create function in order to handle generator
@@ -412,7 +346,7 @@
             return super(WebKitParser, self).create(cursor, uid, ids, data, context)
         if report_xml.report_type != 'webkit' :
             return super(WebKitParser, self).create(cursor, uid, ids, data, context)
-        fnct_ret = self.create_source_webkit(cursor, uid, ids, data, report_xml, context)
-        if not fnct_ret:
+        result = self.create_source_pdf(cursor, uid, ids, data, report_xml, context)
+        if not result:
             return (False,False)
-        return fnct_ret
+        return result

=== renamed directory 'c2c_webkit_invoice' => 'report_webkit_sample'
=== modified file 'report_webkit_sample/__openerp__.py'
--- c2c_webkit_invoice/__openerp__.py	2010-10-07 07:45:18 +0000
+++ report_webkit_sample/__openerp__.py	2010-10-08 14:37:43 +0000
@@ -30,18 +30,21 @@
 ##############################################################################
 
 {
-    "name" : "webkit report",
-    "description" : """Sample webkit Invoice Report  base on WebKit engine (wkhtmltopd lib) that allows to do HTML2PDF reporting.
+    "name" : "Webkit Report Samples",
+    "description" : """Samples for Webkit Report Engine (report_webkit module).
 
-    A sample invoice report is defined . 
-    You have to create the print button by calling a wizard. For more details :
+    A sample invoice report is included in this module, as well as a wizard to
+    add Webkit Report entries on any Document in the system.
+      
+    You have to create the print buttons by calling the wizard. For more details see:
         http://files.me.com/nbessi/06n92k.mov 
                     """,
     "version" : "0.9",
-    "depends" : ["base", "account","c2c_webkit_report"],
+    "depends" : ["base", "account", "report_webkit"],
+    "category": "Reports/Webkit",
     "author" : "Camptocamp SA - NBessi",
-    "init_xml" : ['data.xml'],
-    "update_xml": [     
+    "url": "http://www.camptocamp.com/";,
+    "data": [           'data.xml',
                         "wizard_report_actions_view.xml",
                         "report_webkit_html_view.xml",
                    ],

=== modified file 'report_webkit_sample/data.xml'
--- c2c_webkit_invoice/data.xml	2010-10-07 07:45:18 +0000
+++ report_webkit_sample/data.xml	2010-10-08 14:37:43 +0000
@@ -2,7 +2,7 @@
 <openerp>
     <data noupdate="1">
         <record id="ir_property_webkitheaderdefault0" model="ir.property">
-            <field name="fields_id" ref="c2c_webkit_report.field_ir_act_report_xml_webkit_header"/>
+            <field name="fields_id" ref="report_webkit.field_ir_act_report_xml_webkit_header"/>
             <field eval="&quot;&quot;&quot;webkit_header_default&quot;&quot;&quot;" name="name"/>
             <field eval="&quot;&quot;&quot;ir.header_webkit,1&quot;&quot;&quot;" name="value"/>
         </record>

=== modified file 'report_webkit_sample/i18n/fr_FR.po'
--- c2c_webkit_invoice/i18n/fr_FR.po	2010-10-07 07:45:18 +0000
+++ report_webkit_sample/i18n/fr_FR.po	2010-10-08 14:37:43 +0000
@@ -1,6 +1,6 @@
 # Translation of OpenERP Server.
 # This file contains the translation of the following modules:
-#   * c2c_webkit_invoice
+#   * report_webkit_sample
 #
 msgid ""
 msgstr ""
@@ -15,36 +15,36 @@
 "Content-Transfer-Encoding: \n"
 "Plural-Forms: \n"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: wizard_view:ir.report_actions,exist:0
 msgid "Report Action already exist for this report."
 msgstr "Report Action already exist for this report."
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: wizard_field:ir.report_actions,add,print_button:0
 msgid "Add print button"
 msgstr "Add print button"
 
-#. module: c2c_webkit_invoice
-#: model:ir.actions.report.xml,name:c2c_webkit_invoice.report_webkit_html
+#. module: report_webkit_sample
+#: model:ir.actions.report.xml,name:report_webkit_sample.report_webkit_html
 msgid "WebKit invoice"
 msgstr "facture WebKit"
 
-#. module: c2c_webkit_invoice
-#: model:ir.actions.wizard,name:c2c_webkit_invoice.wizard_oo_report_actions
+#. module: report_webkit_sample
+#: model:ir.actions.wizard,name:report_webkit_sample.wizard_oo_report_actions
 #: wizard_view:ir.report_actions,add:0
 #: wizard_view:ir.report_actions,exist:0
 msgid "Add Print Buttons"
 msgstr "Ajouter des boutons d'impression"
 
-#. module: c2c_webkit_invoice
-#: code:addons/c2c_webkit_invoice/wizard/report_actions.py:0
+#. module: report_webkit_sample
+#: code:addons/report_webkit_sample/wizard/report_actions.py:0
 #, python-format
 msgid "Client Actions Connections"
 msgstr "Actions Client Connections"
 
-#. module: c2c_webkit_invoice
-#: model:ir.module.module,description:c2c_webkit_invoice.module_meta_information
+#. module: report_webkit_sample
+#: model:ir.module.module,description:report_webkit_sample.module_meta_information
 msgid "Report system base on WebKit engine (wkhtmltopd lib) that allows to do HTML2PDF reporting.\n"
 "The module structure and some is inspired of the report_openoffice module\n"
 "The module allows:\n"
@@ -112,59 +112,59 @@
 "Web client WYSIWYG\n"
 "                    "
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: help:ir.report_actions,add,print_button:0
 msgid "Add action to menu context in print button."
 msgstr "Ajouter à l'action du menu contextuel dans le bouton d'impression."
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: wizard_button:ir.report_actions,add,end:0
 msgid "_Cancel"
 msgstr "_Cancel"
 
-#. module: c2c_webkit_invoice
-#: model:ir.module.module,shortdesc:c2c_webkit_invoice.module_meta_information
+#. module: report_webkit_sample
+#: model:ir.module.module,shortdesc:report_webkit_sample.module_meta_information
 msgid "webkit report"
 msgstr "rapport webkit"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: wizard_field:ir.report_actions,add,open_action:0
 msgid "Open added action"
 msgstr "Ouvrir ajouté action"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: wizard_button:ir.report_actions,add,process:0
 msgid "_Ok"
 msgstr "_Ok"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: wizard_button:ir.report_actions,exist,end:0
 msgid "_Close"
 msgstr "_Close"
 
 
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice:0
 msgid "Invoice Date"
 msgstr "Date de la facture"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice:0
 msgid "QTY"
 msgstr "QTÉ"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice:0
 msgid "Unit Price"
 msgstr "Prix unitaire"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: field:report.webkitaccount.invoice:0
 msgid "Unit of Measure"
 msgstr "Unité de mesure"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: view:account.invoice:0
 #: field:account.invoice.line,invoice_line_tax_id:0
 #: model:ir.actions.act_window,name:account.action_tax_form
@@ -173,69 +173,69 @@
 msgid "Taxes"
 msgstr "Impôts"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice:0
 msgid "Price"
 msgstr "Prix"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice:0
 msgid "Tax Lines"
 msgstr "Lignes de taxe"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice:0
 msgid "Amount"
 msgstr "Montant"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice,:0
 msgid "Partner Ref."
 msgstr "Réf. partenaire"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:report.webkitaccount.invoice:0
 msgid "Invoice Ref"
 msgstr "Réf. Facture"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: field:account.invoice,amount_tax:0
 msgid "Total"
 msgstr "Total"
 
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: field:account.invoice,name:0
 #: field:account.invoice.line,name:0
 msgid "Description"
 msgstr "Description"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: view:account.invoice.line:0
 #: webkit:account.invoice.tax,invoice_id:0
 msgid "Invoice Line"
 msgstr "Ligne de facture"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: field:account.analytic.line,product_id:0
 #: field:account.invoice.line,product_id:0
 #: field:account.move.line,product_id:0
 msgid "Product"
 msgstr "Produit"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: field:account.invoice,name:0
 msgid "Document"
 msgstr "Ref. document"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: webkit:account.invoice.line,discount:0
 msgid "Disc.(%)"
 msgstr "Disc.(%)"
 
-#. module: c2c_webkit_invoice
+#. module: report_webkit_sample
 #: model:account.account.type,name:account.account_type_tax
 #: field:account.invoice,amount_tax:0
 #: field:account.move.line,account_tax_id:0
 msgid "Tax"
-msgstr "Taxe"
\ No newline at end of file
+msgstr "Taxe"

=== modified file 'report_webkit_sample/report/report_webkit_html.py'
--- c2c_webkit_invoice/report/report_webkit_html.py	2010-10-07 07:45:18 +0000
+++ report_webkit_sample/report/report_webkit_html.py	2010-10-08 14:37:43 +0000
@@ -13,5 +13,5 @@
         
 report_sxw.report_sxw('report.webkitaccount.invoice',
                        'account.invoice', 
-                       'addons/c2c_webkit_invoice/report/report_webkit_html.mako',
+                       'addons/report_webkit_sample/report/report_webkit_html.mako',
                        parser=report_webkit_html)

=== modified file 'report_webkit_sample/report_webkit_html_view.xml'
--- c2c_webkit_invoice/report_webkit_html_view.xml	2010-10-07 07:45:18 +0000
+++ report_webkit_sample/report_webkit_html_view.xml	2010-10-08 14:37:43 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data>
-        <report auto="False" id="report_webkit_html" model="account.invoice" name="webkitaccount.invoice"  webkit="c2c_webkit_invoice/report/report_webkit_html.mako" string="WebKit invoice" report_type="webkit" />
+        <report auto="False" id="report_webkit_html" model="account.invoice" name="webkitaccount.invoice"  file="report_webkit_sample/report/report_webkit_html.mako" string="WebKit invoice" report_type="webkit" />
     </data>
 </openerp>


Follow ups