禁用在Odoo中的看板列视图上拖动和排序功能

问题描述 投票:2回答:3

我在Odoo 9中制作看板视图,以基于Many2one字段的列显示我的模型。

我创建了我的看板视图:

<kanban create="false" edit="false" delete="false" quick_create="false" default_group_by="resource_id">

我只希望这个视图是只读的,我不想编辑或创建,因为我有另一个视图来做它。它就像一个仪表板。

问题是我想禁用列的拖放和排序功能。我看到kanban_view.js文件在render_grouped函数中默认设置了可排序和可拖动的选项。

有谁知道如何禁用列的这些功能?或者,还有其他方法可以在看板视图中按列显示我的记录吗?

openerp odoo-8 odoo-9
3个回答
0
投票

要禁用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,
    });

0
投票

到目前为止,没有参数可以做到这一点。所以在你的新模块中,在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基本代码,除非您不打算更新。


-1
投票

对于旧版本edit="false"就足够了。对于较新的版本,请直接在字段<field name="resource_id" readonly="1">上设置只读

© www.soinside.com 2019 - 2024. All rights reserved.