禁用在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中的看板列视图上拖动和排序功能的主要内容,如果未能解决你的问题,请参考以下文章

odoo14和Odoo15的区别

jQuery UI Draggable:克隆项目并禁用相同(原始项目)的第二次拖动

如何在回收站视图上启用和禁用拖放

怎么把datagridview中的自动排序功能禁用

是否可以在颤动的可重新排序的列表视图中禁用对单个项目的重新排序?

如何禁用对数据表中的列进行排序