`
radzhang
  • 浏览: 310278 次
  • 性别: 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批注有问题,现已改善。

    odoo14 企业版源码

    6. **自动化工作流**: 工作流引擎得到增强,支持更复杂的业务逻辑和自动化操作。 **学习Odoo 14企业版源码** 深入研究Odoo 14企业版源码,你需要对以下几个方面有深入理解: 1. **Python编程基础**: Odoo的核心...

    Odoo开发手册第五版,odoo14开发手册,Python

    7. **自动化(Workflows and Triggers)**:Odoo支持工作流和触发器,允许在特定条件下自动执行任务,如审批流程。 8. **报告与打印(Reporting and Printing)**:Odoo支持多种报告格式,包括HTML、PDF等,可以...

    odoo13 企业版源码

    5. **自动化工作流**:工作流引擎得到了强化,支持更复杂的业务流程,如审批流、定时任务等,使得业务流程自动化程度更高。 6. **报告和分析**:报表和数据分析工具进一步加强,提供了丰富的图表类型和自定义选项,...

    odoo-13.0源码.zip

    1. **openerp**:这是Odoo的核心引擎,包含了数据库管理、模型定义、视图构建、工作流引擎等多个关键模块。通过阅读`openerp/model.py`,我们可以了解到Odoo如何定义和操作数据模型;`openerp/views.py`则展示了视图...

    odoo8中文教程

    工作流设计在Odoo中也是一个重要的概念,它涉及到了业务流程的自动化和管理。控制器操作部分则教会开发者如何处理HTTP请求和响应,这是实现Web界面功能的核心。 在扩展API方面,教程教会开发者如何创建API接口以供...

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

    Odoo8开发教程

    此外,还涉及了Odoo模型层的详细分析,如_name属性、模型间的关系以及工作流的介绍。 Odoo视图层详解内容涵盖了Odoo中的视图技术,例如XML视图文件的结构和如何继承修改视图元素。这对于希望深入了解Odoo前端设计和...

    Odoo的相关中文开发手册

    5. **业务逻辑**:讲解如何编写Python代码实现业务逻辑,包括模型方法、信号处理和工作流。 6. **报表与打印**:涵盖如何设计和生成PDF或HTML格式的报表。 7. **API与接口**:介绍Odoo的RESTful API,以及与其他系统...

    odoo12e.tar.gz

    1. **高级CRM**:更强大的客户关系管理工具,包括销售预测、自动化工作流等。 2. **项目管理**:支持复杂的项目跟踪和协作,包括时间追踪、资源分配和成本控制。 3. **电子商务**:集成的网上商店功能,包括多语言、...

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

    Odoo12 Development Essential(中文增强版)

    7. **业务逻辑开发**:讲解以文档为中心的工作流阶段,使用ORM方法装饰器,内置方法,创建向导,以及如何使用日志消息和抛出异常。此外,强调单元测试的重要性,并介绍如何添加和执行单元测试。 8. **外部API集成**...

    odoo相关教程

    3. **Packt.Odoo.10.Development.Essentials.pdf**:这是一本专业书籍,通常会深入讲解Odoo开发的核心概念和技术,如模型、视图、控制器、报表、工作流、安全设置等。 4. **Ubuntu 14.04下安装Odoo 8正式版**:这份...

    Odoo功能加强模块.zip

    这可能是一个特定的Odoo模块,用于处理时间相关的更改或事件,比如工时追踪、任务调度或工作流自动化。 【标签】"odoo"明确了这个话题与Odoo软件相关,表明这些模块是为Odoo环境设计的。 关于压缩包内的文件: 1....

    Odoo 12开发手册_VLZH-20190123.doc

    最后,创建新应用通常涉及定义模型、视图、菜单和工作流,这些都是Odoo应用的基础元素。 总的来说,《Odoo 12开发手册》为开发者提供了一条清晰的学习路径,从理解Odoo的开发者模式到设置开发环境,再到动手创建...

    odoo11源码

    1. **odoo** 主目录:包含Odoo框架的基础组件,如数据库操作、HTTP服务、工作流引擎等。 2. **addons** 目录:存放官方及社区开发的模块,每个模块对应企业中的一个具体功能,如销售、采购、库存等。 3. **openerp-...

    odoo rest_api

    在"rest_api"这个压缩包文件中,可能包含的是与Odoo 10 REST API相关的示例代码、教程文档或者工具,可以帮助开发者更快速地理解和使用这个功能,减少手动编写接口代码的工作量,从而提高开发效率。通过学习和实践...

    企业版odoo-13.0+e.20200126.zip

    此外,Odoo还集成了CRM(客户关系管理),通过自动化的工作流和营销工具,帮助销售团队更好地管理潜在客户,提升转化率。 值得注意的是,Odoo 13.0+e.20200126的“e”代表“Enterprise Edition”,即企业版,这意味...

    Odoo安装与建账-Windows版本.pdf

    由于Odoo功能丰富,掌握正确的使用方法能有效提高工作效率并确保数据的准确性。 总结以上,Odoo作为一款强大的开源ERP软件,在Windows平台上安装和使用需要经过下载官方版本、安装设置、创建数据库以及登录配置等...

    odoo10公司系统可发送邮件,学习使用

    4. **邮件自动化**:通过工作流和定时任务(Cron Jobs),Odoo 10可以设定邮件自动发送,比如定期发送报告、提醒或者确认信息。 二、邮件触发器 1. **事件触发**:Odoo中的邮件触发器可以基于特定事件(如新订单、...

Global site tag (gtag.js) - Google Analytics