summaryrefslogtreecommitdiff
path: root/addons/document/static/src
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2018-08-07 17:19:57 +0200
committerNicolas Lempereur <nle@odoo.com>2018-08-17 15:33:40 +0200
commitac1e187eea33266095f49a9e1e1ea6b0698be865 (patch)
tree74d7fed6ac1b388f1875abc363a130a35f27f55c /addons/document/static/src
parent80118dd8a24249e5e008eae1178fccfc9ba68fb4 (diff)
[FIX] document: no query attachment out of form view
Since cce70fd4 the attachment menu is only displayed for form view. But if in another view there is active_ids (eg. selecting record in a list view), we will still make a query to ir.attachment without using the result. Without the code change, the added test would fail when doing a search_read RPC call to ir.attachment model. related to #26213
Diffstat (limited to 'addons/document/static/src')
-rw-r--r--addons/document/static/src/js/document.js33
1 files changed, 22 insertions, 11 deletions
diff --git a/addons/document/static/src/js/document.js b/addons/document/static/src/js/document.js
index 0af85179b49..98bfe4e5ef3 100644
--- a/addons/document/static/src/js/document.js
+++ b/addons/document/static/src/js/document.js
@@ -15,12 +15,13 @@ Sidebar.include({
*/
init : function (parent, options) {
this._super.apply(this, arguments);
- if (options.viewType === "form") {
+ this.hasAttachments = options.viewType === "form";
+ if (this.hasAttachments) {
this.sections.splice(1, 0, { 'name' : 'files', 'label' : _t('Attachment(s)'), });
this.items.files = [];
+ this.fileuploadId = _.uniqueId('oe_fileupload');
+ $(window).on(this.fileuploadId, this._onFileUploaded.bind(this));
}
- this.fileuploadId = _.uniqueId('oe_fileupload');
- $(window).on(this.fileuploadId, this._onFileUploaded.bind(this));
},
/**
* Get the attachment linked to the record when the toolbar started
@@ -29,13 +30,16 @@ Sidebar.include({
*/
start: function () {
var _super = this._super.bind(this);
- this._updateAttachments().then(_super);
+ var def = this.hasAttachments ? this._updateAttachments() : $.when();
+ return def.then(_super);
},
/**
* @override
*/
destroy: function () {
- $(window).off(this.fileuploadId);
+ if (this.hasAttachments) {
+ $(window).off(this.fileuploadId);
+ }
this._super.apply(this, arguments);
},
@@ -46,8 +50,10 @@ Sidebar.include({
* @override
*/
updateEnv: function (env) {
- this.env = env;
- this._updateAttachments().then(this._redraw.bind(this));
+ if (this.hasAttachments) {
+ this.env = env;
+ this._updateAttachments().then(this._redraw.bind(this));
+ }
},
//--------------------------------------------------------------------------
@@ -90,10 +96,12 @@ Sidebar.include({
*/
_redraw: function () {
this._super.apply(this, arguments);
- this.$('.o_sidebar_add_attachment .o_form_binary_form')
- .change(this._onAddAttachment.bind(this));
- this.$('.o_sidebar_delete_attachment')
- .click(this._onDeleteAttachment.bind(this));
+ if (this.hasAttachments) {
+ this.$('.o_sidebar_add_attachment .o_form_binary_form')
+ .change(this._onAddAttachment.bind(this));
+ this.$('.o_sidebar_delete_attachment')
+ .click(this._onDeleteAttachment.bind(this));
+ }
},
/**
* Update the attachments to be displayed in the attachment section
@@ -102,6 +110,9 @@ Sidebar.include({
* @private
*/
_updateAttachments: function () {
+ if (this.items.files === undefined) {
+ return $.when();
+ }
var activeId = this.env.activeIds[0];
if (!activeId) {
this.items.files = [];