如何使用 Odoo 12 中看板视图的 default_group_by 字段选择对位置阶段进行排序

问题描述

我通过选择字段定义看板视图的阶段, 像这样:

state = fields.Selection([
    ('draft','Draft'),('open','Open'),('pending','Pending'),('cancel','Cancelled'),('done','Done')],'State',default='draft'
)

所以我在 xml 中使用 default_group_by 来显示这个阶段:

<kanban string="Kanban Sprint" default_group_by="state">
            <field name="name"/>
            <field name="state"/>

我希望它排序草稿>打开>待定>取消>完成

但它按字母排序:Cancelled>Done>Draft>Open>PendingImage here

那么有没有办法对它们进行排序?

解决方法

可以使用 group_expand 方法来设置顺序:

state = fields.Selection([
    ('draft','Draft'),('open','Open'),('pending','Pending'),('cancel','Cancelled'),('done','Done')],'State',group_expand='_expand_groups',default='draft'
)

@api.model
def _expand_groups(self,states,domain,order):
    return ['draft','open','pending','cancel','done']