diff --git a/addons/report/__openerp__.py b/addons/report/__openerp__.py index 199360e28c5..8ce4e46991c 100644 --- a/addons/report/__openerp__.py +++ b/addons/report/__openerp__.py @@ -1,13 +1,13 @@ { 'name': 'Report', - 'category': 'Website', + 'category': 'Base', 'summary': 'Report', 'version': '1.0', 'description': """ Report """, 'author': 'OpenERP SA', - 'depends': ['base', 'website'], + 'depends': ['base'], 'data': [ 'views/layouts.xml', 'views/paperformat_view.xml', @@ -19,4 +19,5 @@ Report 'static/src/js/qwebactionmanager.js', ], 'installable': True, + 'auto_install': True, } diff --git a/addons/report/models/__init__.py b/addons/report/models/__init__.py index 7ffc9fe506a..e048e10eb91 100644 --- a/addons/report/models/__init__.py +++ b/addons/report/models/__init__.py @@ -1,3 +1,2 @@ import report import report_paperformat - diff --git a/addons/report/models/report.py b/addons/report/models/report.py index 402fc63c840..92bec703137 100644 --- a/addons/report/models/report.py +++ b/addons/report/models/report.py @@ -131,6 +131,12 @@ class report(osv.Model): return res def render(self, cr, uid, ids, template, values=None, context=None): + """Allow to render a QWeb template python-side. This function returns the 'ir.ui.view' + render but embellish it with some variables/methods used in reports. + + :param values: additionnal methods/variables used in the rendering + :returns: html representation of the template + """ if values is None: values = {} @@ -146,6 +152,8 @@ class report(osv.Model): } self._get_lang_dict() + view_obj = self.pool['ir.ui.view'] + def render_doc(doc_id, model, template): """Helper used when a report should be translated into the associated partner's lang. @@ -160,9 +168,8 @@ class report(osv.Model): """ ctx = context.copy() doc = self.pool[model].browse(cr, uid, doc_id, context=ctx) - view_obj = self.pool['ir.ui.view'] qcontext = values.copy() - # Do not force-translate if we chose to display to report in a specific lang + # Do not force-translate if we chose to display the report in a specific lang if ctx.get('translatable') is True: qcontext['o'] = doc else: @@ -171,18 +178,33 @@ class report(osv.Model): return view_obj.render(cr, uid, template, qcontext, context=ctx) current_user = self.pool['res.users'].browse(cr, uid, uid, context=context) + + # Website independance code + website = False + res_company = current_user.company_id + + try: + website = request.website + res_company = request.website.company_id + except: + pass + values.update({ 'time': time, 'user': current_user, + 'user_id': current_user.id, 'formatLang': self.formatLang, 'get_digits': self.get_digits, 'render_doc': render_doc, + + 'website': website, + 'res_company': res_company, }) - return request.website.render(template, values) + return view_obj.render(cr, uid, template, values, context=context) def get_pdf(self, report, record_id, context=None): - """Used to return content of a generated PDF. + """Used to return the content of a generated PDF. :returns: pdf """ diff --git a/addons/report/views/layouts.xml b/addons/report/views/layouts.xml index 5782359d389..73c5ce03244 100644 --- a/addons/report/views/layouts.xml +++ b/addons/report/views/layouts.xml @@ -50,15 +50,6 @@
- -
@@ -120,14 +111,14 @@