Javascript 从odoo'中移除下载按钮;s pdf_查看器小部件

Javascript 从odoo'中移除下载按钮;s pdf_查看器小部件,javascript,python,widget,odoo,pdf-viewer,Javascript,Python,Widget,Odoo,Pdf Viewer,我正在尝试禁用位于Odoo(Pdf_viewer)附件预览小部件中的下载按钮,您可以在下面的代码中看到: <field name="preview" attrs="{'readonly': [('preview', '=', True)]}" widget="pdf_viewer" /> PS:我试图将字段设置为只读,但仍然为阅读器提供了整个文件 我从一个朋友那里得到了一点帮助,他建议我修改包含这个按钮模板的JS文

我正在尝试禁用位于Odoo(Pdf_viewer)附件预览小部件中的下载按钮,您可以在下面的代码中看到:

 <field name="preview" attrs="{'readonly': [('preview', '=', True)]}" widget="pdf_viewer" />

PS:我试图将字段设置为只读,但仍然为阅读器提供了整个文件

我从一个朋友那里得到了一点帮助,他建议我修改包含这个按钮模板的JS文件,但我不知道该怎么做! 感谢您的帮助。

您可以覆盖该功能并隐藏下载按钮

示例

如果需要使用上下文属性控制下载按钮的可见性,请尝试以下代码:

var basic_fields = require('web.basic_fields');
var Context = require('web.Context');

basic_fields.FieldPdfViewer.include({
    _disableButtons: function (iframe) {
        var self = this;
        if (self.attrs.context) {
            var context = new Context(self.attrs.context).eval();
            if(!context.download) {
                $(iframe).contents().find('button#download').hide();
                // $(iframe).contents().find('button#secondaryDownload').hide();
            }
        }
        this._super(iframe);
    },
});
编辑:

创建一个包含以下内容的XML文件,并将其添加到清单文件中的
data
条目中:


static/src/js
下创建
pdf_viewser.js
,并添加上述代码:

odoo.define('module_name.PDFViewer',函数(require){
“严格使用”;
var basic_fields=require('web.basic_fields');
基本字段.FieldPdfViewer.include({
_禁用按钮:功能(iframe){
$(iframe).contents().find('button#download').hide();
//$(iframe).contents().find('button#secondary download').hide();
这个._super(iframe);
},
});
});

该部分列出了这些步骤。有关更多详细信息,请查看文档。

非常感谢@kenly,我只是将该行添加到现有的_disableButtons函数中,如下所示:_disableButtons:
function(iframe){$(iframe).contents().find('button#openFile').hide();$(iframe).contents().find('button#download').hide()},
而且它是有效的问题是,如果我想使用overide方法,我应该将您的代码放在
var FieldPdfViewer=FieldBinaryFile.e..
下还是放在cote之外?您想在不编辑原始文件的情况下应用您的修改吗?是的,如此链接所示:检查我的编辑。我还添加了一个到官方文档的链接。
var basic_fields = require('web.basic_fields');
var Context = require('web.Context');

basic_fields.FieldPdfViewer.include({
    _disableButtons: function (iframe) {
        var self = this;
        if (self.attrs.context) {
            var context = new Context(self.attrs.context).eval();
            if(!context.download) {
                $(iframe).contents().find('button#download').hide();
                // $(iframe).contents().find('button#secondaryDownload').hide();
            }
        }
        this._super(iframe);
    },
});