From 6f670c58ce61254adcd37353b64f355527e2982b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 19 Feb 2014 11:30:32 +0100 Subject: [PATCH] [REM] Removed lazy response usage bzr revid: fme@openerp.com-20140219103032-5pc50taemkc6x0qo --- addons/auth_oauth/controllers/main.py | 8 +++---- addons/auth_signup/controllers/main.py | 12 +++++------ addons/website/controllers/main.py | 30 ++++++++++++-------------- addons/website/data/website_demo.xml | 2 +- addons/website/models/website.py | 9 +++----- 5 files changed, 28 insertions(+), 33 deletions(-) diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index e660fd8363b..252afc36b30 100644 --- a/addons/auth_oauth/controllers/main.py +++ b/addons/auth_oauth/controllers/main.py @@ -8,7 +8,7 @@ from werkzeug.exceptions import BadRequest import openerp from openerp import SUPERUSER_ID from openerp import http -from openerp.http import request, LazyResponse +from openerp.http import request from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect from openerp.modules.registry import RegistryManager from openerp.tools.translate import _ @@ -71,7 +71,7 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home): providers = self.list_providers() response = super(OAuthLogin, self).web_login(*args, **kw) - if isinstance(response, LazyResponse): + if response.is_qweb: error = request.params.get('oauth_error') if error == '1': error = _("Sign up is not allowed on this database.") @@ -82,9 +82,9 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home): else: error = None - response.params['values']['providers'] = providers + response.qcontext['providers'] = providers if error: - response.params['values']['error'] = error + response.qcontext['error'] = error return response diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py index 3f53b28b075..499fe03f2ea 100644 --- a/addons/auth_signup/controllers/main.py +++ b/addons/auth_signup/controllers/main.py @@ -24,7 +24,7 @@ import openerp import openerp.addons.web.controllers.main as webmain from openerp.addons.auth_signup.res_users import SignupError from openerp import http -from openerp.http import request, LazyResponse +from openerp.http import request from openerp.tools.translate import _ from openerp.tools import exception_to_unicode @@ -37,9 +37,9 @@ class AuthSignup(openerp.addons.web.controllers.main.Home): mode = request.params.get('mode') qcontext = request.params.copy() super_response = super(AuthSignup, self).web_login(*args, **kw) - response = webmain.render_bootstrap_template(request.session.db, 'auth_signup.signup', qcontext, lazy=True) - if isinstance(super_response, LazyResponse): - response.params['values'].update(super_response.params['values']) + response = webmain.render_bootstrap_template('auth_signup.signup', qcontext) + if super_response.is_qweb: + response.qcontext.update(super_response.qcontext) token = qcontext.get('token', None) token_infos = None if token: @@ -63,8 +63,8 @@ class AuthSignup(openerp.addons.web.controllers.main.Home): qcontext.update(config) if 'error' in qcontext or mode not in ('reset', 'signup') or (not token and not config[mode]): - if isinstance(super_response, LazyResponse): - super_response.params['values'].update(config) + if super_response.is_qweb: + super_response.qcontext.update(config) return super_response if request.httprequest.method == 'GET': diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 7bc701edde1..eee8b9f5073 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -19,7 +19,7 @@ import openerp from openerp.osv import fields from openerp.addons.website.models import website from openerp.addons.web import http -from openerp.addons.web.http import request, LazyResponse +from openerp.http import request, Response logger = logging.getLogger(__name__) @@ -46,9 +46,7 @@ class Website(openerp.addons.web.controllers.main.Home): @http.route(website=True, auth="public", multilang=True) def web_login(self, *args, **kw): response = super(Website, self).web_login(*args, **kw) - if isinstance(response, LazyResponse): - values = dict(response.params['values'], disable_footer=True) - response = request.website.render(response.params['template'], values) + response.qcontext['disable_footer'] = True return response @http.route('/page/', type='http', auth="public", website=True, multilang=True) @@ -69,27 +67,27 @@ class Website(openerp.addons.web.controllers.main.Home): else: return request.registry['ir.http']._handle_exception(e, 404) - return request.website.render(page, values) + return request.render(page, values) @http.route(['/robots.txt'], type='http', auth="public", website=True) def robots(self): - response = request.website.render('website.robots', {'url_root': request.httprequest.url_root}) - response.mimetype = 'text/plain' - return response + return request.render('website.robots', {'url_root': request.httprequest.url_root}, mimetype='text/plain') @http.route('/sitemap', type='http', auth='public', website=True, multilang=True) def sitemap(self): - return request.website.render('website.sitemap', { + return request.render('website.sitemap', { 'pages': request.website.enumerate_pages() }) @http.route('/sitemap.xml', type='http', auth="public", website=True) def sitemap_xml(self): - response = request.website.render('website.sitemap_xml', { + values = { 'pages': request.website.enumerate_pages() - }) - response.headers['Content-Type'] = 'application/xml;charset=utf-8' - return response + } + headers = { + 'Content-Type': 'application/xml;charset=utf-8', + } + return request.render('website.sitemap_xml', values, headers=headers) #------------------------------------------------------ # Edit @@ -122,7 +120,7 @@ class Website(openerp.addons.web.controllers.main.Home): view.write(request.cr, request.uid, [view_id], {'inherit_id': view_option_id}, context=request.context) - return request.website.render('website.themes', {'theme_changed': True}) + return request.render('website.themes', {'theme_changed': True}) @http.route(['/website/snippets'], type='json', auth="public", website=True) def snippets(self): @@ -401,12 +399,12 @@ class Website(openerp.addons.web.controllers.main.Home): if action_id: action_ids = ServerActions.exists(cr, uid, [action_id], context=context) action_id = action_ids and action_ids[0] or None - # run it, return only LazyResponse that are templates to be rendered + # run it, return only if we got a Response object if action_id: action = ServerActions.browse(cr, uid, action_id, context=context) if action.state == 'code' and action.website_published: action_res = ServerActions.run(cr, uid, [action_id], context=context) - if isinstance(action_res, LazyResponse): + if isinstance(action_res, Response): res = action_res if res: return res diff --git a/addons/website/data/website_demo.xml b/addons/website/data/website_demo.xml index 6f37b871100..8abf901fd89 100644 --- a/addons/website/data/website_demo.xml +++ b/addons/website/data/website_demo.xml @@ -127,7 +127,7 @@ partners = pool['res.partner'].browse(cr, uid, partner_ids, context=context) values = { 'partners': partners, } -response = request.website.render("website.template_partner_comment", values) +response = request.render("website.template_partner_comment", values) code ir.actions.server diff --git a/addons/website/models/website.py b/addons/website/models/website.py index c73de9d10a7..3af29208627 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -18,7 +18,7 @@ except ImportError: import openerp from openerp.osv import orm, osv, fields from openerp.tools.safe_eval import safe_eval -from openerp.addons.web.http import request, LazyResponse +from openerp.addons.web.http import request logger = logging.getLogger(__name__) @@ -231,11 +231,8 @@ class website(osv.osv): return self.pool['ir.ui.view'].render(cr, uid, template, values=values, context=context) def render(self, cr, uid, ids, template, values=None, status_code=None, context=None): - def callback(template, values, context): - return self._render(cr, uid, ids, template, values, context) - if values is None: - values = {} - return LazyResponse(callback, status_code=status_code, template=template, values=values, context=context) + # TODO: remove this. (just kept for backward api compatibility for saas-3) + return request.render(template, values, uid=uid) def pager(self, cr, uid, ids, url, total, page=1, step=30, scope=5, url_args=None, context=None): # Compute Pager