Merge lp:~openerp-dev/openerp-web/trunk-request-response-fme into lp:openerp-web

Proposed by Fabien Meghazi (OpenERP)
Status: Merged
Merged at revision: 3948
Proposed branch: lp:~openerp-dev/openerp-web/trunk-request-response-fme
Merge into: lp:openerp-web
Diff against target: 69 lines (+12/-16)
1 file modified
addons/web/controllers/main.py (+12/-16)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/trunk-request-response-fme
Reviewer Review Type Date Requested Status
Christophe Simonis (OpenERP) Pending
Review via email: mp+208112@code.launchpad.net

Description of the change

Improvement/changes to the http request/response API.

- Get rid of LazyResponse
- change webclient#render_bootstrap_template() api

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/controllers/main.py'
2--- addons/web/controllers/main.py 2014-02-20 16:17:53 +0000
3+++ addons/web/controllers/main.py 2014-02-25 11:23:11 +0000
4@@ -33,7 +33,7 @@
5 from openerp.tools.translate import _
6 from openerp import http
7
8-from openerp.http import request, serialize_exception as _serialize_exception, LazyResponse
9+from openerp.http import request, serialize_exception as _serialize_exception
10
11 _logger = logging.getLogger(__name__)
12
13@@ -591,12 +591,13 @@
14 </html>
15 """
16
17-def render_bootstrap_template(db, template, values=None, debug=False, lazy=False, **kw):
18- if request and request.debug:
19+def render_bootstrap_template(template, values=None, debug=False, db=None, **kw):
20+ if not db:
21+ db = request.db
22+ if request.debug:
23 debug = True
24 if values is None:
25 values = {}
26- values.update(kw)
27 values['debug'] = debug
28 values['current_db'] = db
29 try:
30@@ -612,15 +613,7 @@
31 values['modules'] = module_boot(db=db)
32 values['modules'] = simplejson.dumps(values['modules'])
33
34- def callback(template, values):
35- registry = openerp.modules.registry.RegistryManager.get(db)
36- with registry.cursor() as cr:
37- view_obj = registry["ir.ui.view"]
38- return view_obj.render(cr, openerp.SUPERUSER_ID, template, values)
39- if lazy:
40- return LazyResponse(callback, template=template, values=values)
41- else:
42- return callback(template, values)
43+ return request.render(template, values, **kw)
44
45 class Home(http.Controller):
46
47@@ -633,8 +626,11 @@
48 ensure_db()
49
50 if request.session.uid:
51- html = render_bootstrap_template(request.session.db, "web.webclient_bootstrap")
52- return request.make_response(html, {'Cache-Control': 'no-cache', 'Content-Type': 'text/html; charset=utf-8'})
53+ headers = {
54+ 'Cache-Control': 'no-cache',
55+ 'Content-Type': 'text/html; charset=utf-8',
56+ }
57+ return render_bootstrap_template("web.webclient_bootstrap", headers=headers)
58 else:
59 return http.local_redirect('/web/login', query=request.params)
60
61@@ -651,7 +647,7 @@
62 if uid is not False:
63 return http.redirect_with_hash(redirect)
64 values['error'] = "Wrong login/password"
65- return render_bootstrap_template(request.session.db, 'web.login', values, lazy=True)
66+ return render_bootstrap_template('web.login', values)
67
68 @http.route('/login', type='http', auth="none")
69 def login(self, db, login, key, redirect="/web", **kw):