summaryrefslogtreecommitdiff
path: root/addons/web
diff options
context:
space:
mode:
authorDenis Ledoux <dle@odoo.com>2015-01-29 12:47:29 +0100
committerDenis Ledoux <dle@odoo.com>2015-01-29 12:51:47 +0100
commit4c2706d6858c4b7ec6db4b647dc2e3559f650cd8 (patch)
treed53f2bd6228a0912ff76f79bab7297645d3d7b32 /addons/web
parenta4597fe34fcfa8dae28b156410080346bb33af33 (diff)
[FIX] web: saveas_ajax, correct filename when data passed directly
In cases where data is directly given to the saveas_ajax controller, the filename was not correctly set, as no read method was performed. (The read call is useless as the data is already avaiable in such a case) In such cases, the filename must be given in advance opw-626707
Diffstat (limited to 'addons/web')
-rw-r--r--addons/web/controllers/main.py2
-rw-r--r--addons/web/static/src/js/view_form.js5
2 files changed, 5 insertions, 2 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 6206d1fa4d4..b3acbbe5119 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -1309,7 +1309,7 @@ class Binary(openerpweb.Controller):
if filename_field:
fields.append(filename_field)
if data:
- res = { field: data }
+ res = {field: data, filename_field: jdata.get('filename', None)}
elif id:
res = Model.read([int(id)], fields, context)[0]
else:
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 5581ca7b0ae..d4cf85a59f2 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -5087,14 +5087,17 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.
} else {
instance.web.blockUI();
var c = instance.webclient.crashmanager;
+ var filename_fieldname = this.node.attrs.filename;
+ var filename_field = this.view.fields && this.view.fields[filename_fieldname];
this.session.get_file({
url: '/web/binary/saveas_ajax',
data: {data: JSON.stringify({
model: this.view.dataset.model,
id: (this.view.datarecord.id || ''),
field: this.name,
- filename_field: (this.node.attrs.filename || ''),
+ filename_field: (filename_fieldname || ''),
data: instance.web.form.is_bin_size(value) ? null : value,
+ filename: filename_field ? filename_field.get('value') : null,
context: this.view.dataset.get_context()
})},
complete: instance.web.unblockUI,