[FIX] page creation and retrieval to suck in a slightly different manner

Creation doesn't tack on `website.` on page names, non-namespaced
pages are looked up in the `website` module-ish.

bzr revid: xmo@openerp.com-20130920142052-jmwuqq296p1192kk
This commit is contained in:
Xavier Morel 2013-09-20 16:20:52 +02:00
parent 999b1c6e4c
commit 700c59e3ad
2 changed files with 27 additions and 23 deletions

View File

@ -51,7 +51,7 @@ class Website(openerp.addons.web.controllers.main.Home):
else:
module = 'website'
idname = path
path = "%s.%s" % (module, idname)
xid = "%s.%s" % (module, idname)
request.cr.execute('SAVEPOINT pagenew')
imd = request.registry['ir.model.data']
@ -63,8 +63,8 @@ class Website(openerp.addons.web.controllers.main.Home):
newview = view.browse(
request.cr, request.uid, newview_id, context=request.context)
newview.write({
'arch': newview.arch.replace("website.default_page", path),
'name': "page/%s" % path,
'arch': newview.arch.replace("website.default_page", xid),
'name': "page/%s" % xid,
'page': True,
})
# Fuck it, we're doing it live

View File

@ -97,42 +97,46 @@ class website(osv.osv):
if values is None:
values = {}
values.update({
'request': request,
'registry': request.registry,
'json': simplejson,
'website': request.website,
'res_company': request.website.company_id,
})
values.update(
request=request,
registry=request.registry,
json=simplejson,
website=request.website,
res_company=request.website.company_id,
)
qweb_context.update(values)
context = {
'inherit_branding': qweb_context.get('editable', False),
'inherit_branding': qweb_context.setdefault('editable', False),
}
# check if xmlid of the template exists
try:
model, xmlid = template.split('.', 1)
model, id = IMD.get_object_reference(cr, uid, model, xmlid)
except ValueError:
logger.error("Website Rendering Error.\n\n%s" % traceback.format_exc())
return self.render('website.404', qweb_context)
module, xmlid = template.split('.', 1)
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)
except ValueError:
logger.error("Website Rendering Error.\n\n%s" % traceback.format_exc())
return self.render('website.404', qweb_context)
# render template and catch error
try:
return view.render(cr, uid, template, qweb_context, context=context)
return view.render(cr, uid, "%s.%s" % (module, xmlid),
qweb_context, context=context)
except (AccessError, AccessDenied), err:
logger.error(err)
qweb_context['error'] = err[1]
logger.warn("Website Rendering Error.\n\n%s" % traceback.format_exc())
return self.render('website.401', qweb_context)
except Exception:
logger.exception("Website Rendering Error.")
qweb_context['traceback'] = traceback.format_exc()
logger.error("Website Rendering Error.\n\n%s" % qweb_context['traceback'])
if qweb_context['editable']:
return view.render(cr, uid, 'website.500', qweb_context, context=context)
else:
return view.render(cr, uid, 'website.404', qweb_context, context=context)
return view.render(
cr, uid,
'website.500' if qweb_context['editable'] else 'website.404',
qweb_context, context=context)
def pager(self, cr, uid, ids, url, total, page=1, step=30, scope=5, url_args=None):
# Compute Pager