Odoo 10 看板视图:通过拖放垂直排序看板项目
Odoo 10 Kanban View: Ordering Kanban Items vertically with drag and drop
我想通过拖放在 Odoo 中订购看板项目。我有自己的整数字段 'k_order' 并将此字段用于模型 _order="k_order".
看板项目根据 k_order 字段正确显示(排序)。但是当我改变顺序(垂直)时,它不会保存它。刷新浏览器后,回到原来的位置
如何实现上述行为(排序)?我还使用 widget="handel" 字段 k_order.
树视图中的这种排序符合需要。
似乎看板小部件重新排序仅适用于字段 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());
}
},
感谢您的提示。我已经做了一个解决方法并在这里发布,因为它可能对其他人有用。我已将 'sequence' 字段映射到我自己的字段 'order',其反函数如下;
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
我想通过拖放在 Odoo 中订购看板项目。我有自己的整数字段 'k_order' 并将此字段用于模型 _order="k_order".
看板项目根据 k_order 字段正确显示(排序)。但是当我改变顺序(垂直)时,它不会保存它。刷新浏览器后,回到原来的位置
如何实现上述行为(排序)?我还使用 widget="handel" 字段 k_order.
树视图中的这种排序符合需要。
似乎看板小部件重新排序仅适用于字段 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());
}
},
感谢您的提示。我已经做了一个解决方法并在这里发布,因为它可能对其他人有用。我已将 'sequence' 字段映射到我自己的字段 'order',其反函数如下;
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