diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index 53a6ffd5462..5a22240abac 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 08b67108c3f..f6c466b7123 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 @@ -40,9 +40,9 @@ class AuthSignup(openerp.addons.web.controllers.main.Home): if request.httprequest.method != 'POST' or mode not in ('reset', 'signup'): # Default behavior is to try to login, which in reset or signup mode in a non-sense. 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: @@ -66,8 +66,8 @@ class AuthSignup(openerp.addons.web.controllers.main.Home): qcontext.update(config) if 'error' in request.params 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 a39a1a73e7a..6eb9ebc591e 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 @@ -129,7 +127,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): @@ -408,12 +406,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 796e50721dc..16566f5a5c3 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__) @@ -229,11 +229,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