工作流是业务对象描述其动态的模型。工作流程也用来跟踪过程,随着时间的推移发展。
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批注有问题,现已改善。
Odoo 15是Odoo开源企业资源规划(ERP)软件的一个版本,它引入了许多新功能和改进。根据Cybrosys的Odoo V15书籍¹,一些新功能包括: - 高级用户界面:为了完美处理CRM平台中的每个操作,建立了一个高度发展的高级...
Odoo V11引入了全局快捷键和全局搜索功能,使Odoo导航比以往任何时候都更快捷。Odoo 的开源模式让我们可利用无数开发人员和业务专家,在短短数年内,打造数百款应用。 具有强大的技术基础,Odoo 的结构非常独特。其...
2.提高工作效率:Odoo 16电子发票功能的自动化处理功能,可以实现发票的自动匹配、自动开票等操作,提高工作效率和准确度。 3.环保节能:电子发票不需要印刷、存储等传统的纸质发票过程,有利于环保节能,符合国家
Odoo的界面主题资源是一种可以改变Odoo系统界面外观的资源,提供了多种不同的风格和颜色方案,让用户可以根据自己的需求和喜好来选择和使用。 以下是一些Odoo界面主题资源的介绍: Odoo官方主题:Odoo官方主题是...
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_...
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 ...
Odoo12, 社区版源代码,Ubuntu + Python 官方下载比较慢,可下载这里的附件。 官方下载方式: sudo git clone https://github.com/odoo/odoo.git (最新版) sudo git clone ...
odoo17 企业版源码
odoo开发必看, 非常详细, 非常适合开发人员使用,最新
Odoo 10 Implementation Cookbook Odoo 10 Implementation CookbookOdoo 10 Implementation Cookbook
基于odoo12社区版制作 无需安装配置 一键启动运行odoo
珍藏,odoo实施指南,经典版本,看完不亏!odoo实施指南,经典版本,看完不亏!ODOO 应用基础 珍藏,odoo实施指南,经典版本,看完不亏!odoo实施指南,经典版本,看完不亏!ODOO 应用基础 珍藏,odoo实施指南,...
Odoo 企业微信(企业号)应用对接模块,实现Oauth2网页授权登录,自定义odoo业务消息推送。 for odoo10, odoo11 特性 oauth登录与odoo用户登陆互不影响。 无需安装额外python模块依赖,开箱即用。 一键同步企业微信...
Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块。Odoo适用于各种规模的企业应用。 Odoo功能模块涵盖...
odoo中的py文件加密
odoo源码安装方法,Odoo 是一个现代化的商业应用套件,使用 AGPL 许可证,并具有客户关系管理(CRM),人力资源,销售,采购,会计,制造,仓库管理,项目管理,以及众多社区模块。
odoo14 附件预览图片及pdf
odoo定时任务task的实现方式,通过文档分享帮助您了解并实现odoo中的定时任务
odoo培训PPT odoo入门培训PPT ·