`
radzhang
  • 浏览: 302669 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Odoo工作流

    博客分类:
  • ODOO
 
阅读更多

工作流是业务对象描述其动态的模型。工作流程也用来跟踪过程,随着时间的推移发展。

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??要调查

 

 

分享到:
评论

相关推荐

    工作流批注for odoo

    这个是一个Odoo工作流的改善批注模块,因7批注有问题,现已改善。

    odoo 15企业版资源分享

    Odoo 15是Odoo开源企业资源规划(ERP)软件的一个版本,它引入了许多新功能和改进。根据Cybrosys的Odoo V15书籍¹,一些新功能包括: - 高级用户界面:为了完美处理CRM平台中的每个操作,建立了一个高度发展的高级...

    odoo_11.0源文件

    Odoo V11引入了全局快捷键和全局搜索功能,使Odoo导航比以往任何时候都更快捷。Odoo 的开源模式让我们可利用无数开发人员和业务专家,在短短数年内,打造数百款应用。 具有强大的技术基础,Odoo 的结构非常独特。其...

    odoo16-电子发票

    2.提高工作效率:Odoo 16电子发票功能的自动化处理功能,可以实现发票的自动匹配、自动开票等操作,提高工作效率和准确度。 3.环保节能:电子发票不需要印刷、存储等传统的纸质发票过程,有利于环保节能,符合国家

    odoo16简洁好用的开源主题,安装即用

    Odoo的界面主题资源是一种可以改变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_...

    精通Odoo开发和使用

    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 ...

    odoo-12.0.zip

    Odoo12, 社区版源代码,Ubuntu + Python 官方下载比较慢,可下载这里的附件。 官方下载方式: sudo git clone https://github.com/odoo/odoo.git (最新版) sudo git clone ...

    odoo17 企业版源码

    odoo17 企业版源码

    odoo11.cookbook

    odoo开发必看, 非常详细, 非常适合开发人员使用,最新

    Odoo 10 Implementation Cookbook

    Odoo 10 Implementation Cookbook Odoo 10 Implementation CookbookOdoo 10 Implementation Cookbook

    debian_odoo12debian_odoo_

    基于odoo12社区版制作 无需安装配置 一键启动运行odoo

    Odoo实施指南.pdf

    珍藏,odoo实施指南,经典版本,看完不亏!odoo实施指南,经典版本,看完不亏!ODOO 应用基础 珍藏,odoo实施指南,经典版本,看完不亏!odoo实施指南,经典版本,看完不亏!ODOO 应用基础 珍藏,odoo实施指南,...

    Odoo 企业微信(企业号)应用对接模块,实现Oauth2网页授权登录,自定义odoo业务消息推送

    Odoo 企业微信(企业号)应用对接模块,实现Oauth2网页授权登录,自定义odoo业务消息推送。 for odoo10, odoo11 特性 oauth登录与odoo用户登陆互不影响。 无需安装额外python模块依赖,开箱即用。 一键同步企业微信...

    odoo-13.0.zip

    Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块。Odoo适用于各种规模的企业应用。 Odoo功能模块涵盖...

    odoo中的py文件加密

    odoo中的py文件加密

    odoo源码安装方法

    odoo源码安装方法,Odoo 是一个现代化的商业应用套件,使用 AGPL 许可证,并具有客户关系管理(CRM),人力资源,销售,采购,会计,制造,仓库管理,项目管理,以及众多社区模块。

    odoo14 附件预览图片及pdf

    odoo14 附件预览图片及pdf

    odoo定时任务task的实现方式

    odoo定时任务task的实现方式,通过文档分享帮助您了解并实现odoo中的定时任务

    Odoo培训PPT.pptx

    odoo培训PPT odoo入门培训PPT ·

Global site tag (gtag.js) - Google Analytics