odoo-workflow

在 odoo 中,workflow 是关联到某个 model 的对象,用来动态管理记录的生命周期。 | 10.0 workflow

odoo后台设置激活开发者模式,技术>工作流

Activities定义一些由odoo服务器所要完成的任务,如果改变记录状态,发送邮件
Transitions定义了如何从一个Activity到另外Activity

example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 这部分代码加入到定义的 models class 中
state = fields.Selection([
('draft', "Draft"),
('confirmed', "Confirmed"),
('done', "Done"),
], default='draft') # default 默认字段

@api.multi
def action_draft(self):
self.state = 'draft'

@api.multi
def action_confirm(self):
self.state = 'confirmed'

@api.multi
def action_done(self):
self.state = 'done'

state 字段中元组的第0个元素是存储在数据库中的,第1元素是显示在页面上的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- xml -->
<header>
<button name="action_draft" type="object"
<!-- 按钮显示的名称 -->
string="Reset to draft"
<!-- 在哪些状态中显示 -->
states="confirmed,done"/>
<button name="action_confirm" type="object"
string="Confirm" states="draft"
class="oe_highlight"/>
<button name="action_done" type="object"
string="Mark as done" states="confirmed"
class="oe_highlight"/>
<!-- 显示在状态栏 -->
<field name="state" widget="statusbar"/>
</header>



参考