From af3428a86f03641f135a35b8723958ec1a54d532 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 23 Jan 2014 14:54:08 +0100 Subject: [PATCH] [REV] Revert some stuff in order to bring back main_object on all rendered views bzr revid: fme@openerp.com-20140123135408-qp4z7ry4a2vej2jy --- addons/website/controllers/main.py | 4 +--- addons/website/models/website.py | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 627773be496..d177f3df45d 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -104,9 +104,7 @@ class Website(openerp.addons.web.controllers.main.Home): page = 'website.%s' % page try: - module, xmlid = page.split('.', 1) - model, view_id = request.registry["ir.model.data"].get_object_reference(request.cr, request.uid, module, xmlid) - values['main_object'] = request.registry["ir.ui.view"].browse(request.cr, request.uid, view_id, context=request.context) + request.website.get_template(page) except ValueError, e: # page not found if request.context['editable']: diff --git a/addons/website/models/website.py b/addons/website/models/website.py index cee457b70fd..fe7d21c5267 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -209,6 +209,13 @@ class website(osv.osv): translatable=not is_master_lang, ) + def get_template(self, cr, uid, ids, template, context=None): + if '.' not in template: + template = 'website.%s' % template + module, xmlid = template.split('.', 1) + model, view_id = request.registry["ir.model.data"].get_object_reference(cr, uid, module, xmlid) + return self.pool["ir.ui.view"].browse(cr, uid, view_id, context=context) + def _render(self, cr, uid, ids, template, values=None, context=None): user = self.pool.get("res.users") if not context: @@ -233,10 +240,13 @@ class website(osv.osv): qweb_values.setdefault('editable', False) # in edit mode ir.ui.view will tag nodes - context['inherit_branding']=qweb_values['editable'] + context['inherit_branding'] = qweb_values['editable'] - result = self.pool['ir.ui.view'].render(cr, uid, template, qweb_values, engine='website.qweb', context=context) - return result + view = self.get_template(cr, uid, ids, template) + + if 'main_object' not in qweb_values: + qweb_values['main_object'] = view + return view.render(qweb_values, engine='website.qweb', context=context) def render(self, cr, uid, ids, template, values=None, status_code=None, context=None): def callback(template, values, context):