[IMP] Use LazyResponse for website.render()
bzr revid: fme@openerp.com-20131120202842-zethge8jykzlzjjy
This commit is contained in:
parent
2f0f411b43
commit
7d43b226ab
|
@ -261,8 +261,9 @@ class Website(openerp.addons.web.controllers.main.Home):
|
||||||
|
|
||||||
@website.route(['/robots.txt'], type='http', auth="public")
|
@website.route(['/robots.txt'], type='http', auth="public")
|
||||||
def robots(self):
|
def robots(self):
|
||||||
body = request.website.render('website.robots', {'url_root': request.httprequest.url_root})
|
response = request.website.render('website.robots', {'url_root': request.httprequest.url_root})
|
||||||
return request.make_response(body, headers=[('Content-Type', 'text/plain')])
|
response.mimetype = 'text/plain'
|
||||||
|
return response
|
||||||
|
|
||||||
@website.route('/sitemap', type='http', auth='public', multilang=True)
|
@website.route('/sitemap', type='http', auth='public', multilang=True)
|
||||||
def sitemap(self):
|
def sitemap(self):
|
||||||
|
@ -270,14 +271,11 @@ class Website(openerp.addons.web.controllers.main.Home):
|
||||||
|
|
||||||
@website.route('/sitemap.xml', type='http', auth="public")
|
@website.route('/sitemap.xml', type='http', auth="public")
|
||||||
def sitemap_xml(self):
|
def sitemap_xml(self):
|
||||||
body = request.website.render('website.sitemap_xml', {
|
response = request.website.render('website.sitemap_xml', {
|
||||||
'pages': request.website.enumerate_pages()
|
'pages': request.website.enumerate_pages()
|
||||||
})
|
})
|
||||||
|
response.headers['Content-Type'] = 'application/xml;charset=utf-8'
|
||||||
return request.make_response(body, [
|
return response
|
||||||
('Content-Type', 'application/xml;charset=utf-8')
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
class Images(http.Controller):
|
class Images(http.Controller):
|
||||||
def placeholder(self, response):
|
def placeholder(self, response):
|
||||||
|
|
|
@ -20,8 +20,7 @@ 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 import http
|
from openerp.addons.web import http
|
||||||
from openerp.addons.web.http import request
|
from openerp.addons.web.http import request, LazyResponse
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -157,7 +156,7 @@ class website(osv.osv):
|
||||||
'translatable': not is_public_user and not is_master_lang and request.multilang,
|
'translatable': not is_public_user and not is_master_lang and request.multilang,
|
||||||
})
|
})
|
||||||
|
|
||||||
def render(self, cr, uid, ids, template, values=None, context=None):
|
def _render(self, cr, uid, ids, template, values=None, context=None):
|
||||||
view = self.pool.get("ir.ui.view")
|
view = self.pool.get("ir.ui.view")
|
||||||
IMD = self.pool.get("ir.model.data")
|
IMD = self.pool.get("ir.model.data")
|
||||||
user = self.pool.get("res.users")
|
user = self.pool.get("res.users")
|
||||||
|
@ -221,6 +220,13 @@ class website(osv.osv):
|
||||||
return self.error(cr, uid, 500 if qweb_context['editable'] else 404,
|
return self.error(cr, uid, 500 if qweb_context['editable'] else 404,
|
||||||
qweb_context, context=context)
|
qweb_context, context=context)
|
||||||
|
|
||||||
|
def render(self, cr, uid, ids, template, values=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, template=template, values=values, context=context)
|
||||||
|
|
||||||
def error(self, cr, uid, code, qweb_context, context=None):
|
def error(self, cr, uid, code, qweb_context, context=None):
|
||||||
View = request.registry['ir.ui.view']
|
View = request.registry['ir.ui.view']
|
||||||
return werkzeug.wrappers.Response(
|
return werkzeug.wrappers.Response(
|
||||||
|
@ -478,7 +484,7 @@ class website(osv.osv):
|
||||||
object_ids = model_obj.search(cr, uid, domain, limit=step, offset=offset, order=orderby)
|
object_ids = model_obj.search(cr, uid, domain, limit=step, offset=offset, order=orderby)
|
||||||
object_ids = model_obj.browse(cr, uid, object_ids)
|
object_ids = model_obj.browse(cr, uid, object_ids)
|
||||||
for object_id in object_ids:
|
for object_id in object_ids:
|
||||||
html += request.website.render(template, {'object_id': object_id})
|
html += request.website._render(template, {'object_id': object_id})
|
||||||
return html
|
return html
|
||||||
|
|
||||||
def get_menu(self, cr, uid, ids, context=None):
|
def get_menu(self, cr, uid, ids, context=None):
|
||||||
|
|
Loading…
Reference in New Issue