[REM] Removed lazy response usage

bzr revid: fme@openerp.com-20140219103032-5pc50taemkc6x0qo
This commit is contained in:
Fabien Meghazi 2014-02-19 11:30:32 +01:00
parent bb08d9aa3a
commit 6f670c58ce
5 changed files with 28 additions and 33 deletions

View File

@ -8,7 +8,7 @@ from werkzeug.exceptions import BadRequest
import openerp import openerp
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
from openerp import http 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.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect
from openerp.modules.registry import RegistryManager from openerp.modules.registry import RegistryManager
from openerp.tools.translate import _ from openerp.tools.translate import _
@ -71,7 +71,7 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
providers = self.list_providers() providers = self.list_providers()
response = super(OAuthLogin, self).web_login(*args, **kw) response = super(OAuthLogin, self).web_login(*args, **kw)
if isinstance(response, LazyResponse): if response.is_qweb:
error = request.params.get('oauth_error') error = request.params.get('oauth_error')
if error == '1': if error == '1':
error = _("Sign up is not allowed on this database.") error = _("Sign up is not allowed on this database.")
@ -82,9 +82,9 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
else: else:
error = None error = None
response.params['values']['providers'] = providers response.qcontext['providers'] = providers
if error: if error:
response.params['values']['error'] = error response.qcontext['error'] = error
return response return response

View File

@ -24,7 +24,7 @@ import openerp
import openerp.addons.web.controllers.main as webmain import openerp.addons.web.controllers.main as webmain
from openerp.addons.auth_signup.res_users import SignupError from openerp.addons.auth_signup.res_users import SignupError
from openerp import http from openerp import http
from openerp.http import request, LazyResponse from openerp.http import request
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp.tools import exception_to_unicode from openerp.tools import exception_to_unicode
@ -37,9 +37,9 @@ class AuthSignup(openerp.addons.web.controllers.main.Home):
mode = request.params.get('mode') mode = request.params.get('mode')
qcontext = request.params.copy() qcontext = request.params.copy()
super_response = super(AuthSignup, self).web_login(*args, **kw) super_response = super(AuthSignup, self).web_login(*args, **kw)
response = webmain.render_bootstrap_template(request.session.db, 'auth_signup.signup', qcontext, lazy=True) response = webmain.render_bootstrap_template('auth_signup.signup', qcontext)
if isinstance(super_response, LazyResponse): if super_response.is_qweb:
response.params['values'].update(super_response.params['values']) response.qcontext.update(super_response.qcontext)
token = qcontext.get('token', None) token = qcontext.get('token', None)
token_infos = None token_infos = None
if token: if token:
@ -63,8 +63,8 @@ class AuthSignup(openerp.addons.web.controllers.main.Home):
qcontext.update(config) qcontext.update(config)
if 'error' in qcontext or mode not in ('reset', 'signup') or (not token and not config[mode]): if 'error' in qcontext or mode not in ('reset', 'signup') or (not token and not config[mode]):
if isinstance(super_response, LazyResponse): if super_response.is_qweb:
super_response.params['values'].update(config) super_response.qcontext.update(config)
return super_response return super_response
if request.httprequest.method == 'GET': if request.httprequest.method == 'GET':

View File

@ -19,7 +19,7 @@ import openerp
from openerp.osv import fields from openerp.osv import fields
from openerp.addons.website.models import website from openerp.addons.website.models import website
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request, LazyResponse from openerp.http import request, Response
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -46,9 +46,7 @@ class Website(openerp.addons.web.controllers.main.Home):
@http.route(website=True, auth="public", multilang=True) @http.route(website=True, auth="public", multilang=True)
def web_login(self, *args, **kw): def web_login(self, *args, **kw):
response = super(Website, self).web_login(*args, **kw) response = super(Website, self).web_login(*args, **kw)
if isinstance(response, LazyResponse): response.qcontext['disable_footer'] = True
values = dict(response.params['values'], disable_footer=True)
response = request.website.render(response.params['template'], values)
return response return response
@http.route('/page/<page:page>', type='http', auth="public", website=True, multilang=True) @http.route('/page/<page:page>', type='http', auth="public", website=True, multilang=True)
@ -69,27 +67,27 @@ class Website(openerp.addons.web.controllers.main.Home):
else: else:
return request.registry['ir.http']._handle_exception(e, 404) 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) @http.route(['/robots.txt'], type='http', auth="public", website=True)
def robots(self): def robots(self):
response = request.website.render('website.robots', {'url_root': request.httprequest.url_root}) return request.render('website.robots', {'url_root': request.httprequest.url_root}, mimetype='text/plain')
response.mimetype = 'text/plain'
return response
@http.route('/sitemap', type='http', auth='public', website=True, multilang=True) @http.route('/sitemap', type='http', auth='public', website=True, multilang=True)
def sitemap(self): def sitemap(self):
return request.website.render('website.sitemap', { return request.render('website.sitemap', {
'pages': request.website.enumerate_pages() 'pages': request.website.enumerate_pages()
}) })
@http.route('/sitemap.xml', type='http', auth="public", website=True) @http.route('/sitemap.xml', type='http', auth="public", website=True)
def sitemap_xml(self): def sitemap_xml(self):
response = request.website.render('website.sitemap_xml', { values = {
'pages': request.website.enumerate_pages() 'pages': request.website.enumerate_pages()
}) }
response.headers['Content-Type'] = 'application/xml;charset=utf-8' headers = {
return response 'Content-Type': 'application/xml;charset=utf-8',
}
return request.render('website.sitemap_xml', values, headers=headers)
#------------------------------------------------------ #------------------------------------------------------
# Edit # Edit
@ -122,7 +120,7 @@ class Website(openerp.addons.web.controllers.main.Home):
view.write(request.cr, request.uid, [view_id], view.write(request.cr, request.uid, [view_id],
{'inherit_id': view_option_id}, context=request.context) {'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) @http.route(['/website/snippets'], type='json', auth="public", website=True)
def snippets(self): def snippets(self):
@ -401,12 +399,12 @@ class Website(openerp.addons.web.controllers.main.Home):
if action_id: if action_id:
action_ids = ServerActions.exists(cr, uid, [action_id], context=context) action_ids = ServerActions.exists(cr, uid, [action_id], context=context)
action_id = action_ids and action_ids[0] or None 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: if action_id:
action = ServerActions.browse(cr, uid, action_id, context=context) action = ServerActions.browse(cr, uid, action_id, context=context)
if action.state == 'code' and action.website_published: if action.state == 'code' and action.website_published:
action_res = ServerActions.run(cr, uid, [action_id], context=context) action_res = ServerActions.run(cr, uid, [action_id], context=context)
if isinstance(action_res, LazyResponse): if isinstance(action_res, Response):
res = action_res res = action_res
if res: if res:
return res return res

View File

@ -127,7 +127,7 @@ partners = pool['res.partner'].browse(cr, uid, partner_ids, context=context)
values = { values = {
'partners': partners, 'partners': partners,
} }
response = request.website.render("website.template_partner_comment", values) response = request.render("website.template_partner_comment", values)
</field> </field>
<field name="state">code</field> <field name="state">code</field>
<field name="type">ir.actions.server</field> <field name="type">ir.actions.server</field>

View File

@ -18,7 +18,7 @@ except ImportError:
import openerp import openerp
from openerp.osv import orm, osv, fields from openerp.osv import orm, osv, fields
from openerp.tools.safe_eval import safe_eval 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__) 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) 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 render(self, cr, uid, ids, template, values=None, status_code=None, context=None):
def callback(template, values, context): # TODO: remove this. (just kept for backward api compatibility for saas-3)
return self._render(cr, uid, ids, template, values, context) return request.render(template, values, uid=uid)
if values is None:
values = {}
return LazyResponse(callback, status_code=status_code, template=template, values=values, context=context)
def pager(self, cr, uid, ids, url, total, page=1, step=30, scope=5, url_args=None, context=None): def pager(self, cr, uid, ids, url, total, page=1, step=30, scope=5, url_args=None, context=None):
# Compute Pager # Compute Pager