我想通过拖放在Odoo中订购看板物品。我有自己的整数字段'k_order',并将此字段用于模型_order =“ k_order”。
看板项根据k_order字段正确显示(排序)。但是,当我(垂直)更改订单时,它不会保存。刷新浏览器后,它将转到旧位置。
如何实现上述行为(排序)?我还对字段k_order使用了widget =“ handel”。
这种在树状视图中的排序可以按需工作。
答案 0 :(得分:0)
看板窗口小部件重新排序似乎仅与sequence
字段一起使用,这是odoo模型的默认排序字段。
您可以看到部分here -> module web_kanban
resequence: function (ids) {
if ((ids.length <= 1) || !this.relation) {
return;
}
new data.DataSet(this, this.relation).resequence(ids).done(function (r) {
if (!r) {
console.warn('Resequence could not be complete. ' +
'Maybe the model does not have a "sequence" field?');
}
});
},
resequence_column: function (col) {
if (_.indexOf(this.fields_keys, 'sequence') > -1) {
this.dataset.resequence(col.get_ids());
}
},
答案 1 :(得分:0)
感谢小费。我已经做了一个变通办法,并在此处发布,因为它可能对其他人有用。我已经将“序列”字段映射到自己的具有“逆函数”的字段“顺序”,如下所示;
my_order = fields.Integer(string="My order field", compute='_compute_order', inverse='_inverse_order',store=True )
@api.depends('sequence')
def _compute_order(self):
for rec in self:
rec.my_order =rec.sequence
def _inverse_order(self):
for rec in self:
rec.sequence = rec.my_order