[FIX] main_objet is now always set in qweb rendering context

If no main_object is provided, the current ir.ui.view will be used

bzr revid: fme@openerp.com-20131015095413-ij6dt2rjo527sgga
This commit is contained in:
Fabien Meghazi
2013-10-15 11:54:13 +02:00
parent c14134140d
commit c056f03a82
2 changed files with 9 additions and 9 deletions
-7
View File
@@ -129,13 +129,6 @@ class Website(openerp.addons.web.controllers.main.Home):
values = {
'path': path,
}
try:
module, xmlid = path.split('.', 1)
IMD = request.registry.get("ir.model.data")
obj = IMD.get_object_reference(request.cr, request.uid, module, xmlid)
values['main_object'] = request.registry[obj[0]].browse(request.cr, request.uid, obj[1])
except Exception:
pass
try:
html = request.website.render(path, values)
except ValueError:
+9 -2
View File
@@ -168,18 +168,25 @@ class website(osv.osv):
inherit_branding=qweb_context.setdefault('editable', False),
)
view_ref = None
# check if xmlid of the template exists
try:
module, xmlid = template.split('.', 1)
IMD.get_object_reference(cr, uid, module, xmlid)
view_ref = IMD.get_object_reference(cr, uid, module, xmlid)
except ValueError: # catches both unpack errors and gor errors
module, xmlid = 'website', template
try:
IMD.get_object_reference(cr, uid, module, xmlid)
view_ref = IMD.get_object_reference(cr, uid, module, xmlid)
except ValueError:
logger.error("Website Rendering Error.\n\n%s" % traceback.format_exc())
return self.render(cr, uid, ids, 'website.404', qweb_context)
try:
main_object = request.registry[view_ref[0]].browse(cr, uid, view_ref[1])
qweb_context['main_object'] = main_object
except Exception:
pass
try:
return view.render(
cr, uid, "%s.%s" % (module, xmlid), qweb_context,