Odoo8 - 如何对状态栏进行排序并将默认设置为新的?

Odoo8 - how can I sort status bar and set default as new?

我在 Odoo 中为帮助台创建了一个新模块,但我有 2 个问题似乎无法解决或无法找到相关信息,因此需要一些帮助。

我创建了一个状态栏(代码):

state = fields.Selection({('new','New'), ('open','In Progress'), ('closed','Closed')}, "Status")
_defaults = {
    'state': 'new'
}



<header>
<field name="state" widget="statusbar" statusbar_visible="new,open,closed" clickable="True"/>

即使我已经声明 "new, open, closed" 它在 Odoo 中显示为打开、新建、关闭。

我将状态默认设置为新状态,尽管我没有收到任何错误,但当我单击创建时它显示状态为空白。

关于如何解决这些问题有什么想法吗?

您的字段声明似乎是 Odoo-8 代码,在 V8 中没有 _defaults 您需要如下编写,

state = fields.Selection({('new','New'), ('open','In Progress'), ('closed','Closed')},"Status", default='new')

并且没有更多的逻辑来设置状态栏中的顺序但是也试试这个,

<form string="String" version="7.0">
    <header>
        <field name="state" widget="statusbar" statusbar_visible="new,open,closed" clickable="True"/>
    </header>
</form>

当你声明你的字段时,你给它一组选项而不是一个选项列表。 Python 中的集合不保留有关项目顺序的信息,但列表保留。为了尊重您声明的顺序,您只需要用列表文字替换集合文字:

state = fields.Selection(
    [('new','New'), ('open','In Progress'), ('closed','Closed')],
    "Status",
)

您可以从视图中删除 statusbar_visible


关于你的第二个问题(默认值)Emipro Technologies是正确的。您需要将默认值声明为字段的参数:

state = fields.Selection(
    [('new','New'), ('open','In Progress'), ('closed','Closed')],
    default='new',
    string="Status",
)