summaryrefslogtreecommitdiff
path: root/addons/web/controllers
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2015-05-26 17:34:04 +0200
committerChristophe Simonis <chs@odoo.com>2015-05-28 14:27:38 +0200
commitfe2b5f35a40ca8df662130608b0f89427a196362 (patch)
tree0c7773f0599f3b1e6dbb869104fad0b04869b269 /addons/web/controllers
parentd4d8a2eae31e7a6a45029b84603e055300e3be36 (diff)
parentbf1e99964cdbc374f8a0c4cec1b338bf7c7c2930 (diff)
[MERGE] forward port of branch saas-6 up to bf1e999
Diffstat (limited to 'addons/web/controllers')
-rw-r--r--addons/web/controllers/main.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index e49af164971..b01e8ade9ff 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -35,6 +35,7 @@ from openerp.addons.base.ir.ir_qweb import AssetsBundle, QWebTemplateNotFound
from openerp.modules import get_module_resource
from openerp.tools import topological_sort
from openerp.tools.translate import _
+from openerp.tools import ustr
from openerp import http
from openerp.http import request, serialize_exception as _serialize_exception
@@ -444,14 +445,14 @@ def xml2json_from_elementtree(el, preserve_whitespaces=False):
return res
def content_disposition(filename):
- filename = filename.encode('utf8')
- escaped = urllib2.quote(filename)
+ filename = ustr(filename)
+ escaped = urllib2.quote(filename.encode('utf8'))
browser = request.httprequest.user_agent.browser
version = int((request.httprequest.user_agent.version or '0').split('.')[0])
if browser == 'msie' and version < 9:
return "attachment; filename=%s" % escaped
elif browser == 'safari':
- return "attachment; filename=%s" % filename
+ return u"attachment; filename=%s" % filename
else:
return "attachment; filename*=UTF-8''%s" % escaped
@@ -1182,6 +1183,7 @@ class Binary(http.Controller):
}
except Exception:
args = {'error': "Something horrible happened"}
+ _logger.exception("Fail to upload attachment %s" % ufile.filename)
return out % (simplejson.dumps(callback), simplejson.dumps(args))
@http.route([
@@ -1440,6 +1442,9 @@ class ExportFormat(object):
context = dict(request.context or {}, **params.get('context', {}))
ids = ids or Model.search(domain, 0, False, False, context)
+ if not request.env[model]._is_an_ordinary_table():
+ fields = [field for field in fields if field['name'] != 'id']
+
field_names = map(operator.itemgetter('name'), fields)
import_data = Model.export_data(ids, field_names, self.raw_data, context=context).get('datas',[])