Javascript 如何在特定对象的树状视图中隐藏“创建”按钮。因为此对象的所有字段都是只读的
如何在特定对象的树状视图中隐藏“创建”按钮?由于此对象的所有字段都是只读的。此对象没有内置功能。编辑/删除/etc按钮始终处于适当位置,即使您无权访问它们后面的操作,但Javascript 如何在特定对象的树状视图中隐藏“创建”按钮。因为此对象的所有字段都是只读的,javascript,jquery,openerp,Javascript,Jquery,Openerp,如何在特定对象的树状视图中隐藏“创建”按钮?由于此对象的所有字段都是只读的。此对象没有内置功能。编辑/删除/etc按钮始终处于适当位置,即使您无权访问它们后面的操作,但 无论如何,您可以进行javascript攻击,并执行$('button.oe_form_button_edit').hide()之类的操作。关于如何开始开发web插件。您可以在树状视图中这样写 <tree string="String" create="false"> 谢谢这取决于您使用的OpenERP版本,如
无论如何,您可以进行javascript攻击,并执行$('button.oe_form_button_edit').hide()之类的操作。关于如何开始开发web插件。您可以在树状视图中这样写
<tree string="String" create="false">
谢谢这取决于您使用的OpenERP版本,如果您想要更具体的答案,请提及。如果您要问这个问题,您可能还没有使用7.0,但是知道这一点可能会有用 OpenERP7.0 从OpenERP 7.0开始,系统将自动为您执行以下每个可能的操作:创建、编辑、删除:如果当前用户没有访问权限(基于访问权限配置),相应的标志将添加到视图定义的根节点,从而有效地在UI中隐藏该选项。 这些标志分别对应于以下访问权限:
创建
,写入
,取消链接
正如user1576199所提到的,也可以在视图定义中手动设置此标志,但只有当访问权限与要显示的选项不对应时,才需要此标志。您可以通过以下方式,以任意组合进行操作:
<tree create="false" delete="false">
....
</tree>
or
<kanban create="false" edit="false">
....
</kanban>
etc..
....
或
....
等
OpenERP 6.1及更早版本
没有隐藏这些按钮的选项,因此如果您想具体实现这一点,您需要自定义OpenERP客户端。simahawk的回答为web客户端6.1提供了一些起点,这可能是您想要定制的。在v6上实现这一点的另一种方法是使用CSS隐藏它(这比@simahawk的建议更简单)。可以通过将CSS添加到包含树的表单视图xml中来实现这一点。例如:
<html>
<style>
.openerp button.oe_form_button_edit { display:none }
</style>
</html>
<tree ...
.openerp button.oe_表单_按钮_编辑{显示:无}
我不知道这个解决方案是否正确,但我尝试将下面的代码放在核心的javascript中,它实际上可以工作
openerp.web.ListView.include({
start: function() {
var self = this;
var ret = this._super.apply(this, arguments);
var res_model = this.dataset.model;
if ($.inArray(res_model, MODELS_TO_HIDE) != -1) {
self.options.addable = false; /* for create button */
self.options.deletable= false; /* for delete button */
};
return ret;
},
});
或者您可以参考此链接:
谢谢odony,这正是我所需要的,我也遇到过类似的问题,但使用这种解决方案,问题就不同了。问题是我需要从一个对象中隐藏“打印”按钮,该对象上存在要打印的报告,但它们是使用向导从窗体上的另一个按钮打印的。我想对特定对象隐藏“全局打印”按钮。@StackUP:很高兴提供帮助。如果答案适合您,StackOverflow的过程是将其标记为已接受:-)至于打印菜单中项目的可见性,它由“ir.tables”值中的操作绑定驱动。查找带有model=''和key2='client\u print\u multi'
的条目。这些绑定主要是由模块数据文件中的
XML元素建立的。@odny:非常感谢。在哪里可以点击接受?如果你在“这篇文章对你有用吗?”上说马克“是的”,那么我已经做了。如果还有其他问题,请告诉我。@odony:我没有询问“打印”菜单下项目的可见性,我想从对象“A”中删除标准的“打印”按钮,因为我没有使用“打印”按钮打印任何东西,但它在这里可用,因为我使用向导在此对象上生成了一些pdf报告。单击不同的按钮打印。@StackUP:要接受答案,只需单击左侧答案分数下的复选标记图标。这里解释了整个过程:有趣的解决方案@timothy这在表单视图中有效,但如何嵌入到树视图中。它抛出了一个错误。很抱歉,我应该提到,您需要将html标记添加到包含树的表单视图中。但这不会从树视图中隐藏。@StackUP您将无法在树“页面”上使用此技巧。该场景中的另一种选择是将css硬编码为base.css样式(这不是一个好主意)。