diff options
| author | Darshan Kalola (OpenERP) <dka@tinyerp.com> | 2014-03-31 15:02:50 +0530 |
|---|---|---|
| committer | Darshan Kalola (OpenERP) <dka@tinyerp.com> | 2014-03-31 15:02:50 +0530 |
| commit | ad99e8cfaebd2d686d48f6d7928ebefaa852d547 (patch) | |
| tree | 28f6b719c4c250b7397c6a39db260d8e91f5c023 /addons/web/controllers | |
| parent | 48388c9ad4d338050b065bdc0904a2a09ec225af (diff) | |
| parent | fc760dd0d03a07bf0c5833d93b3bcd7566a12e66 (diff) | |
[MERGE]sync with trunk.
bzr revid: dka@tinyerp.com-20140331093250-wq0tgglwqvlgyw53
Diffstat (limited to 'addons/web/controllers')
| -rw-r--r-- | addons/web/controllers/main.py | 43 | ||||
| -rw-r--r-- | addons/web/controllers/testing.py | 7 |
2 files changed, 32 insertions, 18 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index a9f56a2099c..fb6cded7c2d 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -14,6 +14,7 @@ import hashlib import os import re import simplejson +import sys import time import urllib2 import zlib @@ -37,10 +38,14 @@ from openerp.http import request, serialize_exception as _serialize_exception _logger = logging.getLogger(__name__) -env = jinja2.Environment( - loader=jinja2.PackageLoader('openerp.addons.web', "views"), - autoescape=True -) +if hasattr(sys, 'frozen'): + # When running on compiled windows binary, we don't have access to package loader. + path = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', 'views')) + loader = jinja2.FileSystemLoader(path) +else: + loader = jinja2.PackageLoader('openerp.addons.web', "views") + +env = jinja2.Environment(loader=loader, autoescape=True) env.filters["json"] = simplejson.dumps #---------------------------------------------------------- @@ -359,7 +364,13 @@ def manifest_glob(extension, addons=None, db=None, include_remotes=False): r.append((None, pattern)) else: for path in glob.glob(os.path.normpath(os.path.join(addons_path, addon, pattern))): - r.append((path, fs2web(path[len(addons_path):]))) + # Hack for IE, who limit 288Ko, 4095 rules, 31 sheets + # http://support.microsoft.com/kb/262161/en + if pattern == "static/lib/bootstrap/css/bootstrap.css": + if include_remotes: + r.insert(0, (None, fs2web(path[len(addons_path):]))) + else: + r.append((path, fs2web(path[len(addons_path):]))) return r def manifest_list(extension, mods=None, db=None, debug=False): @@ -424,6 +435,15 @@ def set_cookie_and_redirect(redirect_url): redirect.autocorrect_location_header = False return redirect +def login_redirect(): + url = '/web/login?' + if request.debug: + url += 'debug&' + return """<html><head><script> + window.location = '%sredirect=' + encodeURIComponent(window.location); + </script></head></html> + """ % (url,) + def load_actions_from_ir_values(key, key2, models, meta): Values = request.session.model('ir.values') actions = Values.get(key, key2, models, meta, request.context) @@ -622,7 +642,7 @@ class Home(http.Controller): @http.route('/', type='http', auth="none") def index(self, s_action=None, db=None, **kw): - return http.local_redirect('/web', query=request.params) + return http.local_redirect('/web', query=request.params, keep_hash=True) @http.route('/web', type='http', auth="none") def web_client(self, s_action=None, **kw): @@ -635,7 +655,7 @@ class Home(http.Controller): } return render_bootstrap_template("web.webclient_bootstrap", headers=headers) else: - return http.local_redirect('/web/login', query=request.params) + return login_redirect() @http.route('/web/login', type='http', auth="none") def web_login(self, redirect=None, **kw): @@ -930,10 +950,11 @@ class Database(http.Controller): return simplejson.dumps([[],[{'error': openerp.tools.ustr(e), 'title': _('Backup Database')}]]) @http.route('/web/database/restore', type='http', auth="none") - def restore(self, db_file, restore_pwd, new_db): + def restore(self, db_file, restore_pwd, new_db, mode): try: + copy = mode == 'copy' data = base64.b64encode(db_file.read()) - request.session.proxy("db").restore(restore_pwd, new_db, data) + request.session.proxy("db").restore(restore_pwd, new_db, data, copy) return '' except openerp.exceptions.AccessDenied, e: raise Exception("AccessDenied") @@ -1598,8 +1619,8 @@ class Export(http.Controller): model, map(operator.itemgetter('name'), export_fields_list)) return [ - {'name': field_name, 'label': fields_data[field_name]} - for field_name in fields_data.keys() + {'name': field['name'], 'label': fields_data[field['name']]} + for field in export_fields_list ] def fields_info(self, model, export_fields): diff --git a/addons/web/controllers/testing.py b/addons/web/controllers/testing.py index c99efed4294..a51b619d49f 100644 --- a/addons/web/controllers/testing.py +++ b/addons/web/controllers/testing.py @@ -157,10 +157,3 @@ class TestRunnerController(http.Controller): # replace OS path separators (from join & normpath) by URI ones yield path[len(root):].replace(os.path.sep, '/') - @http.route('/web/tests/set_session_value', type='json', auth="none") - def set_session_value(self, value): - request.session.some_test_value = value - - @http.route('/web/tests/get_session_value', type='json', auth="none") - def get_session_value(self): - return request.session.some_test_value |
