From 4c2706d6858c4b7ec6db4b647dc2e3559f650cd8 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Thu, 29 Jan 2015 12:47:29 +0100 Subject: [PATCH] [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 --- addons/web/controllers/main.py | 2 +- addons/web/static/src/js/view_form.js | 5 ++++- 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,