[IMP] Improvement/changes to the http request/response API.
- Get rid of LazyResponses - Made website.render() an alias to request.render() [just kept in case this is merged in saas-3 but should be removed completely in favor of request.render()] Need server/trunk's rev#5102 bzr revid: fme@openerp.com-20140226164448-ad7mjzgg5aw66erq
This commit is contained in:
commit
71537320c5
|
@ -33,7 +33,7 @@ import openerp.modules.registry
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
from openerp import http
|
from openerp import http
|
||||||
|
|
||||||
from openerp.http import request, serialize_exception as _serialize_exception, LazyResponse
|
from openerp.http import request, serialize_exception as _serialize_exception
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -591,12 +591,13 @@ html_template = """<!DOCTYPE html>
|
||||||
</html>
|
</html>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def render_bootstrap_template(db, template, values=None, debug=False, lazy=False, **kw):
|
def render_bootstrap_template(template, values=None, debug=False, db=None, **kw):
|
||||||
if request and request.debug:
|
if not db:
|
||||||
|
db = request.db
|
||||||
|
if request.debug:
|
||||||
debug = True
|
debug = True
|
||||||
if values is None:
|
if values is None:
|
||||||
values = {}
|
values = {}
|
||||||
values.update(kw)
|
|
||||||
values['debug'] = debug
|
values['debug'] = debug
|
||||||
values['current_db'] = db
|
values['current_db'] = db
|
||||||
try:
|
try:
|
||||||
|
@ -612,15 +613,7 @@ def render_bootstrap_template(db, template, values=None, debug=False, lazy=False
|
||||||
values['modules'] = module_boot(db=db)
|
values['modules'] = module_boot(db=db)
|
||||||
values['modules'] = simplejson.dumps(values['modules'])
|
values['modules'] = simplejson.dumps(values['modules'])
|
||||||
|
|
||||||
def callback(template, values):
|
return request.render(template, values, **kw)
|
||||||
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):
|
class Home(http.Controller):
|
||||||
|
|
||||||
|
@ -633,8 +626,11 @@ class Home(http.Controller):
|
||||||
ensure_db()
|
ensure_db()
|
||||||
|
|
||||||
if request.session.uid:
|
if request.session.uid:
|
||||||
html = render_bootstrap_template(request.session.db, "web.webclient_bootstrap")
|
headers = {
|
||||||
return request.make_response(html, {'Cache-Control': 'no-cache', 'Content-Type': 'text/html; charset=utf-8'})
|
'Cache-Control': 'no-cache',
|
||||||
|
'Content-Type': 'text/html; charset=utf-8',
|
||||||
|
}
|
||||||
|
return render_bootstrap_template("web.webclient_bootstrap", headers=headers)
|
||||||
else:
|
else:
|
||||||
return http.local_redirect('/web/login', query=request.params)
|
return http.local_redirect('/web/login', query=request.params)
|
||||||
|
|
||||||
|
@ -651,7 +647,7 @@ class Home(http.Controller):
|
||||||
if uid is not False:
|
if uid is not False:
|
||||||
return http.redirect_with_hash(redirect)
|
return http.redirect_with_hash(redirect)
|
||||||
values['error'] = "Wrong login/password"
|
values['error'] = "Wrong login/password"
|
||||||
return render_bootstrap_template(request.session.db, 'web.login', values, lazy=True)
|
return render_bootstrap_template('web.login', values)
|
||||||
|
|
||||||
@http.route('/login', type='http', auth="none")
|
@http.route('/login', type='http', auth="none")
|
||||||
def login(self, db, login, key, redirect="/web", **kw):
|
def login(self, db, login, key, redirect="/web", **kw):
|
||||||
|
|
Loading…
Reference in New Issue