0

我在一个模块中创建了一个看板视图,
我在看板中设置了该字段的default_group_by属性。state该状态包含:

[('new','Waiting Queue'),('in_progress','In Progress'),('done','Finished')]

但是在特定状态下没有数据的地方,在我创建具有该状态的数据之前,该状态的列不会出现。
有什么办法可以解决这个问题吗?谢谢..

4

2 回答 2

0

您可以使用 _group_by_full 方法。如果在此字段上分组,此方法必须返回 (name_get of records, {id: fold}) 以包含在 _read_group 中。当然,您可以返回所需列的所有值,即使该列还没有数据。您可以在 project.py 和 crm_lead.py 中看到 _group_by_full 的清晰示例。

于 2014-05-05T12:42:25.097 回答
0

您可以使用 _group_by_full 字典来实现这一点,以添加到您的 osv.osv 类中。

例如检查我的示例代码:

def _read_group_state_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):

    stage_obj = self.pool.get('produce.book.stage')
    order = stage_obj._order

    if read_group_order == 'stage_id desc':
        order = "%s desc" % order
    # perform search
    stage_ids = stage_obj._search(cr, uid, [], order=order, access_rights_uid=access_rights_uid, context=context)
    result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context)
    # restore order of the search
    result.sort(lambda x, y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0])))

    fold = {}
    for stage in stage_obj.browse(cr, access_rights_uid, stage_ids, context=context):
        fold[stage.id] = stage.fold or False
    return result, fold

_group_by_full = {
    'stage_id': _read_group_state_ids
}

result 是包含 (id, name) 的元组列表, fold 是一对 {id: bool} 的字典,如果每个都为真,则该列将被折叠。

于 2014-11-13T05:08:37.833 回答