odoo工作流

介绍

  • 新版本的odoo开始减少workflow的使用,推荐使用workflow-ish的方式来处理工作流过程

  • 很多模块中还是使用到工作流,这里我记录一个简单的实例,欢迎大家给出建议。

  • 在本实例中工作流可以分为两个部分,一部分是“view视图”,一部分是“model方法”和相关的“流程字段”

定义流程流转字段

state = fields.Selection([
('draft', '草稿'),
('read', '已阅'),
('write', '已写心得'),
('submit', '已上传心得')],
string='Status', default='draft', readonly=True, copy=False, track_visibility='onchange')
  • Selection 是一个多值选择的字段类型,里面可以定义一个数组集。

odoo工作流

  • String 是一个字段前台显示的值。

  • default 是一个默认的初始的状态新创建数据后会默认加载这个状态初始值。

  • track_visibility 流程变更可见性。

  • readonly 是定义改状态值是否只读。

定义工作流程的 def

@api.one
def button_done(self):
self.state = 'read'
self.message_post('变更——————草稿 ——> 已阅', subtype='mail.mt_note') @api.one
def button_confirm(self):
self.state = 'submit'
self.message_post('变更——————已写心得 ——> 已上传心得', subtype='mail.mt_note') for rel in self.employee_ids:
domain = [('id', '=', rel.id)]
employee = self.env['files.employee'].search(domain)
data = {
'name': employee.name,
'email': employee.work_email,
'event_id': self.id,
'wx_number': employee.wx_number,
}
self.env['activity.registration'].create(data)

定义页面的 View

<record model="ir.ui.view" id="view_activity_form">
<field name="name">activity.event.form</field>
<field name="model">activity.event</field>
<field name="arch" type="xml">
<form string="党员活动">
<header>
<button string="活动已阅" name="button_done" states="draft" type="object" class="oe_highlight" groups="base.group_user"/>
<button string="已上传活动心得" name="button_confirm" states="read" type="object" class="oe_highlight" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
</header>
<sheet>
  • states="draft" 是button显示与否的判断条件,如果值是这个值,则改button显示可见,即可用。

  • class="oe_highlight" 是引入的 button 的样式,可自定义样式并引入。

  • name="button_done" 是调用模型中的方法字段,如该方法调用后台 def button_done(self) 方法。

  • string="活动已阅" String是该状态按钮显示的值,最好定义为英文,然后进行国际化i18n翻译。

  • <field name="state"... 是工作流程流转的状态值显示,到哪个阶段显示到哪个阶段的值。

  • widget="statusbar" 样式效果展示。

odoo 工作流的更多相关文章

  1. Odoo工作流

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281264.html 一:工作流 工作流是与业务流程相关联的模型,可用于跟踪工序的动态演变过程. 工作流.活动 ...

  2. (09)odoo工作流

    --------------修订时间14:54 2016-09-18 星期日21:59 2016-06-12 星期日10:06 2016-02-24 星期三17:14 2016-01-29 星期五-- ...

  3. odoo开发笔记--工作流

    虽然odoo10里边取消了工作流 Odoo Workflow http://www.jeffzhang.cn/Odoo-Workflow-Notes/

  4. odoo 在原有工作流中添加审批流

    odoo 在原有工作流中添加审批流 步骤: 1.加入所需的工作流节点以及相连的线(即所添加的审批流),代码如下: <?xml version="1.0" encoding=& ...

  5. 【转】Odoo开发之:工作流 workflow

    在OpenERP中,工作流是管理一组“所做的事情”(与一些数据模型的记录关联)的人为现象.工作流提供了高级别的方式来组织记录要上做的事情. 具体地说,工作流是一个定向的路径,这里节点称为活动并且弧线称 ...

  6. Odoo Web Service API

    来自 Odoo Web服务暴露出相关的服务,路由分别是 /xmlrpc/ /xmlrpc/2/ /jsonrpc 根据 services 调用 后端对应服务的 方法method [定义 openerp ...

  7. odoo模块

    odoo模块包括 业务对象,web控制器,数据文件,前面2个是Python模块,而数据文件则是odoo特有的文件,例如,odoo数据文件,web数据.这些数据文件在 __odoo__.py 进行定义, ...

  8. 第三章 Odoo基本设置

    登录 正常访问http://localhost:8069后,登录的界面如下: 这是Odoo默认的认证方式,也是我们最常见最熟悉的认证方式,7.0以前,数据库中的密码都是以明文方式存储,可以很轻松地在r ...

  9. Odoo 开发者模式

    这里我们以Odoo V9介绍下Odoo的开发者模式: 进入开发者模式: 登录odoo系统后,点击右上角登陆账号下拉菜单,选择About,然后在弹出菜单里点击Activate the developer ...

随机推荐

  1. 借读:分布式锁和双写Redis

      本帖最后由 howtodown 于 2016-10-3 16:01 编辑问题导读1.为什么会产生分布式锁?2.使用分布式锁的方法有哪些?3.本文创造的分布式锁的双写Redis框架都包含哪些内容? ...

  2. kubernetes 的pod控制器

    转载于网络   pod是kubernetes的最小单元,自主式创建的pod删除就没有了,但是通过资源控制器创建的pod如果删除还会重建.pod控制器就是用于实现代替我们去管理pod的中间层,并帮我们确 ...

  3. SQL Server 事务与隔离级别实例讲解

    上班途中,你在一处ATM机前停了下来.正当你在敲入密码的时候,你的一位家人也正在镇上的另一处TAM机上输入密码.你打算从某个还有500元余额的账户上转出400元,而你的家人想从同一账户取走300元.倘 ...

  4. C#string与stringBuilder的区别

    string的缺点是每次字符串变量的内容发生了改变时,都必须重新分配内存.你想想,如果创建一个迭代100000次的循环,每次迭代都将一个字符连接到字符串,这样内存中就会有100000个字符串,每个字符 ...

  5. bzoj千题计划235:bzoj2448: 挖油

    http://www.lydsy.com/JudgeOnline/problem.php?id=2448 一遍过,嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎,O(∩_∩)O~ 题意是最小化最大值 设计区间dp dp[i ...

  6. android tools相关

    1.showin 在include 的根节点设置,可一预览效果

  7. 正则tips

    在啃Sizzle源码,被几个正则表达式给难住了,写了一下正则demo,记录一下 1,按照定义[]和(?:)里的内容不计入捕获组的数目 2,捕获组的计数顺序是,从大到小,同级从左到右 例如 var re ...

  8. NOIP2016-D2-T2 蚯蚓(单调队列)

    构建三个单调队列(用STL),分别储存未切的蚯蚓,切后的第一段,切后的第二段,即可简单证明其单调性. 证明:设$q$为单调队列$\because a_1 \geqslant a_2 \geqslant ...

  9. spring-boot-mybatis-多数据源

    sql 语句 DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT ...

  10. linux系统基本排查

    1.查看内存使用情况 free -g 当观察到free栏已为0的时候,表示内存基本被吃完了,那就释放内存吧. 释放内存: sync echo 3 > /proc/sys/vm/drop_cach ...