From 2c7dd54fec2eee0a559084280b16af847c55d9e7 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 15 Jan 2014 18:01:42 +0100 Subject: [PATCH] [IMP] make /web/login route return a lazy response bzr revid: fme@openerp.com-20140115170142-szl5y22p0rciz21t --- addons/web/controllers/main.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index bc3f0bc2626..b64f80873b4 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -37,7 +37,7 @@ from openerp.tools.translate import _ from openerp.tools import config from openerp import http -from openerp.http import request, serialize_exception as _serialize_exception +from openerp.http import request, serialize_exception as _serialize_exception, LazyResponse _logger = logging.getLogger(__name__) @@ -560,7 +560,7 @@ html_template = """ """ -def render_bootstrap_template(db, template, values=None, debug=False, **kw): +def render_bootstrap_template(db, template, values=None, debug=False, lazy=False, **kw): if values is None: values = {} values.update(kw) @@ -574,10 +574,15 @@ def render_bootstrap_template(db, template, values=None, debug=False, **kw): values['modules'] = module_boot(db=db) values['modules'] = simplejson.dumps(values['modules']) - registry = openerp.modules.registry.RegistryManager.get(db) - with registry.cursor() as cr: - view_obj = registry["ir.ui.view"] - return view_obj.render(cr, openerp.SUPERUSER_ID, template, values) + def callback(template, values): + registry = openerp.modules.registry.RegistryManager.get(db) + with registry.cursor() as cr: + view_obj = registry["ir.ui.view"] + return view_obj.render(cr, openerp.SUPERUSER_ID, template, values) + if lazy: + return LazyResponse(callback, template=template, values=values) + else: + return callback(template, values) class Home(http.Controller): @@ -624,7 +629,7 @@ class Home(http.Controller): if uid is not False: return redirect_with_hash(redirect) values['authentication_failed'] = True - return render_bootstrap_template(request.session.db, 'web.login', values, debug=request.debug) + return render_bootstrap_template(request.session.db, 'web.login', values, debug=request.debug, lazy=True) @http.route('/login', type='http', auth="none") def login(self, db, login, key, redirect="/web", **kw):