禁用在Odoo中的看板列视图上拖动和排序功能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了禁用在Odoo中的看板列视图上拖动和排序功能相关的知识,希望对你有一定的参考价值。
我在Odoo 9中制作看板视图,以基于Many2one字段的列显示我的模型。
我创建了我的看板视图:
<kanban create="false" edit="false" delete="false" quick_create="false" default_group_by="resource_id">
我只希望这个视图是只读的,我不想编辑或创建,因为我有另一个视图来做它。它就像一个仪表板。
问题是我想禁用列的拖放和排序功能。我看到kanban_view.js
文件在render_grouped
函数中默认设置了可排序和可拖动的选项。
有谁知道如何禁用列的这些功能?或者,还有其他方法可以在看板视图中按列显示我的记录吗?
答案
要禁用Kanban View记录的拖放,我们需要在web_kanban模块中进行修改。
路径:web_kanban / static / src / js文件:kanban_view.js修改:搜索下面的代码
var record_options = _.extend(this.record_options,
draggable: draggable,
);
然后加
draggable = false
就在上面给出的代码块之上,
draggable = false [Note : This is the newly added line]
var record_options = _.extend(this.record_options,
draggable: draggable,
);
另一答案
到目前为止,没有参数可以做到这一点。所以在你的新模块中,在KanbanView上创建一个JS扩展,覆盖render()并在那里禁用可排序。这是Odoo 10的完整.js代码,对于v9应该是类似的:
odoo.define('my_module.board', function(require)
"use strict";
var core = require('web.core');
var KanbanView = require('web_kanban.KanbanView');
var MyBoard = KanbanView.extend(
render: function()
this._super.apply(this, arguments);
this.$el.sortable('option', 'disabled', true);
this.$('.o_kanban_header').css('cursor', 'auto');
);
return MyBoard;
);
P.S。:我强烈建议不要修改Odoo基本代码,除非您不打算更新。
另一答案
对于旧版本edit="false"
就足够了。对于较新的版本,请直接在字段<field name="resource_id" readonly="1">
上设置只读
以上是关于禁用在Odoo中的看板列视图上拖动和排序功能的主要内容,如果未能解决你的问题,请参考以下文章
jQuery UI Draggable:克隆项目并禁用相同(原始项目)的第二次拖动