工作流是业务对象描述其动态的模型。工作流程也用来跟踪过程,随着时间的推移发展。
1。简单的工作流
在model里定义一个状态,然后重写相应的几个状态改变的函数
state = fields.Selection([
('draft', "Draft"),
('confirmed', "Confirmed"),
('done', "Done"),
], default='draft')
@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'
然后在视图里定义一个header,分别是按钮动作以及状态显示的bar,按钮名字就是动作函数的名字。
<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>
2.使用odoo的workflow
这样的话,得把 state = fields.Selection([
('draft', "Draft"),
('confirmed', "Confirmed"),
('done', "Done"),
], default='draft')的default='draft'去掉变成
state = fields.Selection([
('draft', "Draft"),
('confirmed', "Confirmed"),
('done', "Done"),
])
然后视图里的header的按钮的type不是object了,改成workflow,按钮的name改成workflow里的activity的id
<header>
<button name="draft" type="workflow"
string="Reset to draft"
states="confirmed,done"/>
<button name="confirm" type="workflow"
string="Confirm" states="draft"
class="oe_highlight"/>
<button name="done" type="workflow"
string="Mark as done" states="confirmed"
class="oe_highlight"/>
<field name="state" widget="statusbar"/>
</header>
然后定义workflow的datafile,工作流,活动,和迁移
<openerp>
<data>
<record model="workflow" id="wkf_session">
<field name="name">OpenAcademy sessions workflow</field>
<field name="osv">openacademy.session</field>
<field name="on_create">True</field>
</record>
<record model="workflow.activity" id="draft">
<field name="name">Draft</field>
<field name="wkf_id" ref="wkf_session"/>
<field name="flow_start" eval="True"/>
<field name="kind">function</field>
<field name="action">action_draft()</field>
</record>
<record model="workflow.activity" id="confirmed">
<field name="name">Confirmed</field>
<field name="wkf_id" ref="wkf_session"/>
<field name="kind">function</field>
<field name="action">action_confirm()</field>
</record>
<record model="workflow.activity" id="done">
<field name="name">Done</field>
<field name="wkf_id" ref="wkf_session"/>
<field name="kind">function</field>
<field name="action">action_done()</field>
</record>
<record model="workflow.transition" id="session_draft_to_confirmed">
<field name="act_from" ref="draft"/>
<field name="act_to" ref="confirmed"/>
<field name="signal">confirm</field>
</record>
<record model="workflow.transition" id="session_confirmed_to_draft">
<field name="act_from" ref="confirmed"/>
<field name="act_to" ref="draft"/>
<field name="signal">draft</field>
</record>
<record model="workflow.transition" id="session_done_to_draft">
<field name="act_from" ref="done"/>
<field name="act_to" ref="draft"/>
<field name="signal">draft</field>
</record>
<record model="workflow.transition" id="session_confirmed_to_done">
<field name="act_from" ref="confirmed"/>
<field name="act_to" ref="done"/>
<field name="signal">done</field>
</record>
</data>
</openerp>
特别注意的是,工作流关联的model只有在记录创建的时候才会创建工作流,所以,定义工作流之前的记录对于工作流来说是失效的。
服务器端action
可以创建一个服务器端的命令来执行python等同于上面的直接调用python
model.search([('id', 'in', context['active_ids'])]).action_draft() active_ids??要调查
相关推荐
这个是一个Odoo工作流的改善批注模块,因7批注有问题,现已改善。
6. **自动化工作流**: 工作流引擎得到增强,支持更复杂的业务逻辑和自动化操作。 **学习Odoo 14企业版源码** 深入研究Odoo 14企业版源码,你需要对以下几个方面有深入理解: 1. **Python编程基础**: Odoo的核心...
7. **自动化(Workflows and Triggers)**:Odoo支持工作流和触发器,允许在特定条件下自动执行任务,如审批流程。 8. **报告与打印(Reporting and Printing)**:Odoo支持多种报告格式,包括HTML、PDF等,可以...
5. **自动化工作流**:工作流引擎得到了强化,支持更复杂的业务流程,如审批流、定时任务等,使得业务流程自动化程度更高。 6. **报告和分析**:报表和数据分析工具进一步加强,提供了丰富的图表类型和自定义选项,...
1. **openerp**:这是Odoo的核心引擎,包含了数据库管理、模型定义、视图构建、工作流引擎等多个关键模块。通过阅读`openerp/model.py`,我们可以了解到Odoo如何定义和操作数据模型;`openerp/views.py`则展示了视图...
工作流设计在Odoo中也是一个重要的概念,它涉及到了业务流程的自动化和管理。控制器操作部分则教会开发者如何处理HTTP请求和响应,这是实现Web界面功能的核心。 在扩展API方面,教程教会开发者如何创建API接口以供...
odoo审批流程实例 1.1 qc_inspection_view.py审批header ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200216151306802.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_...
此外,还涉及了Odoo模型层的详细分析,如_name属性、模型间的关系以及工作流的介绍。 Odoo视图层详解内容涵盖了Odoo中的视图技术,例如XML视图文件的结构和如何继承修改视图元素。这对于希望深入了解Odoo前端设计和...
5. **业务逻辑**:讲解如何编写Python代码实现业务逻辑,包括模型方法、信号处理和工作流。 6. **报表与打印**:涵盖如何设计和生成PDF或HTML格式的报表。 7. **API与接口**:介绍Odoo的RESTful API,以及与其他系统...
1. **高级CRM**:更强大的客户关系管理工具,包括销售预测、自动化工作流等。 2. **项目管理**:支持复杂的项目跟踪和协作,包括时间追踪、资源分配和成本控制。 3. **电子商务**:集成的网上商店功能,包括多语言、...
10.2.1 定义工作流对象 90 10.2.2 创建节点 91 10.2.3 创建连接 91 11 Odoo 模型层详解 93 11.1 _name 93 11.2 各个表头属性 93 11.3 name 字段 94 11.4 具体模型的数据 94 11.5 模型间的关系 95 11.6 工作流 95 12 ...
7. **业务逻辑开发**:讲解以文档为中心的工作流阶段,使用ORM方法装饰器,内置方法,创建向导,以及如何使用日志消息和抛出异常。此外,强调单元测试的重要性,并介绍如何添加和执行单元测试。 8. **外部API集成**...
3. **Packt.Odoo.10.Development.Essentials.pdf**:这是一本专业书籍,通常会深入讲解Odoo开发的核心概念和技术,如模型、视图、控制器、报表、工作流、安全设置等。 4. **Ubuntu 14.04下安装Odoo 8正式版**:这份...
这可能是一个特定的Odoo模块,用于处理时间相关的更改或事件,比如工时追踪、任务调度或工作流自动化。 【标签】"odoo"明确了这个话题与Odoo软件相关,表明这些模块是为Odoo环境设计的。 关于压缩包内的文件: 1....
最后,创建新应用通常涉及定义模型、视图、菜单和工作流,这些都是Odoo应用的基础元素。 总的来说,《Odoo 12开发手册》为开发者提供了一条清晰的学习路径,从理解Odoo的开发者模式到设置开发环境,再到动手创建...
1. **odoo** 主目录:包含Odoo框架的基础组件,如数据库操作、HTTP服务、工作流引擎等。 2. **addons** 目录:存放官方及社区开发的模块,每个模块对应企业中的一个具体功能,如销售、采购、库存等。 3. **openerp-...
在"rest_api"这个压缩包文件中,可能包含的是与Odoo 10 REST API相关的示例代码、教程文档或者工具,可以帮助开发者更快速地理解和使用这个功能,减少手动编写接口代码的工作量,从而提高开发效率。通过学习和实践...
此外,Odoo还集成了CRM(客户关系管理),通过自动化的工作流和营销工具,帮助销售团队更好地管理潜在客户,提升转化率。 值得注意的是,Odoo 13.0+e.20200126的“e”代表“Enterprise Edition”,即企业版,这意味...
由于Odoo功能丰富,掌握正确的使用方法能有效提高工作效率并确保数据的准确性。 总结以上,Odoo作为一款强大的开源ERP软件,在Windows平台上安装和使用需要经过下载官方版本、安装设置、创建数据库以及登录配置等...
4. **邮件自动化**:通过工作流和定时任务(Cron Jobs),Odoo 10可以设定邮件自动发送,比如定期发送报告、提醒或者确认信息。 二、邮件触发器 1. **事件触发**:Odoo中的邮件触发器可以基于特定事件(如新订单、...