diff --git a/sao/CHANGELOG b/sao/CHANGELOG index 082b682668..fa2b6a0a78 100644 --- a/sao/CHANGELOG +++ b/sao/CHANGELOG @@ -1,3 +1,4 @@ +* Use record name as fallback for filename of Binary field * Support filters attribute for binary and image widgets * Use search window to delete/remove records from xxx2Many widgets diff --git a/sao/src/view/form.js b/sao/src/view/form.js index da96ae44a0..251710bb01 100644 --- a/sao/src/view/form.js +++ b/sao/src/view/form.js @@ -4641,13 +4641,21 @@ function eval_pyson(value){ } else { prm = jQuery.when(field.get(record)); } - prm.done(data => { + prm.then(data => { var name; var field = this.filename_field; if (field) { name = field.get(this.record); } - Sao.common.download_file(data, name); + let prm; + if (!name) { + prm = this.record.rec_name(); + } else { + prm = jQuery.when(name); + } + return prm.then(name => { + Sao.common.download_file(data, name); + }); }); }, clear: function() { diff --git a/tryton/CHANGELOG b/tryton/CHANGELOG index 6ca07b4c93..d7102e542e 100644 --- a/tryton/CHANGELOG +++ b/tryton/CHANGELOG @@ -1,3 +1,4 @@ +* Use record name as fallback for filename of Binary field * Support filters attribute for binary and image widgets * Use search window to delete/remove records from xxx2Many widgets diff --git a/tryton/tryton/gui/window/view_form/view/form_gtk/binary.py b/tryton/tryton/gui/window/view_form/view/form_gtk/binary.py index 7c228934b2..25396ae9e1 100644 --- a/tryton/tryton/gui/window/view_form/view/form_gtk/binary.py +++ b/tryton/tryton/gui/window/view_form/view/form_gtk/binary.py @@ -139,9 +139,11 @@ class BinaryMixin(Widget): file_open(file_path, type_) def save_as(self, widget=None): - filename = '' + filename = None if self.filename_field: filename = self.filename_field.get(self.record) + if not filename: + filename = self.record.rec_name() filename = file_selection(_('Save As...'), filename=filename, action=Gtk.FileChooserAction.SAVE) if filename: