Odoo 请假单高级实施个性化定制演练
本节高级实施定制一个简单的请假申请功能,包括创建及编辑请假单,请假单查找。但暂不包括请假审批流程,审批流程将在后续章节开发。本节拟定的请假单包括如下信息:
- 申请人:申请人默认是当前登录用户,必填项。
- 请假天数:可以是小数,必填项。
- 开始日期:开始休假的日期,必填项。
- 请假事由:一段文本,描述请假事由,可以不填。
根据前一节的概念介绍,我们需要开发下述对象:
- 请假单对象:将请假单保存到数据库,以及从数据库查找请假单。
- 请假单视图:查找、编辑请假单的画面,包括列表和表单两个视图。
- 菜单:准备开发两级菜单,请假申请->请假单。点击“请假单”时,进入请假单列表视图,可以查找或创建请假单。
- 请假单动作(Action):请假单动作把对象、视图、菜单关联到一起。
创建请假单对象
点击菜单:设置->技术->数据库结构->模型,点击新建按钮,创建请假单对象。
对象名:请假单 对象:x_qingjd
字段:包括四个字段,申请人(x_shenqr),请假天数(x_tians),开始日期(x_kaisrq),请假事 由(x_shiyou)。
注意:从界面上创建对象时,对象及字段标识符必须是 x_开头,后面还会介绍编写代码来创建对象, 编写代码创建对象时,就没有这个限制。 创建请假单对象及创建字段的参考画面如下:
点击“保存”,然后点击“编辑”
点击“添加一个项目”逐个创建字段。
本画面中各个字段的含义,请参考后文中“Odoo对象”章节。
创建视图
点击菜单:设置 -> 技术-> 用户界面 -> 视图,依次创建请假单列表和请假单表单两个视图。
请假单列表
- 视图名称:请假单列表
- 视图类型:树形列表
- 对象: x_qingjd,即刚才创建的请假单对象,如果填写的对象标识符不正确的话,保存时会提示错误。
- 子栏位和继承视图不填。
- 优先级: 1 Action通常有多个视图,优先级表示多个视图的显示顺序,数字越小越先显示。通常列表
- 总是最先显示,其次是表 单。
- 视图结构:视图结构是视图中最重要的部分,也是最复杂的部分。视图结构定义要在视图中显示哪些
- 字段,及显示属性(如只读、必填、隐藏等)。 select=”1”表示,在列表视图中,可以按该字段查找资
- 源(记录)。
首先、从视图列表中选一个树形列表,复制之后修改成“请假单列表”视图。
点击“复制”,在原有基础上进行修改成我们需要的视图
本视图内容如下:
<?xml version="1.0"?>
<tree string="请假单">
<field name="x_shenqr" select="1"/>
<field name="x_tians" />
<field name="x_kaisrq" select="1"/>
<field name="x_shiyou" />
</tree>
同理创建“请假单表单”视图。
视图名称:请假单表单
视图类型:表单
对象:x_qingjd
优先级:2
视图结构:本视图内容如下:
<?xml version="1.0"?>
<form string="请假单">
<field name="x_shenqr"/>
<field name="x_tians"/>
<field name="x_kaisrq"/>
<field name="x_shiyou"/>
</form>
首先、从试图列表中选一个表单
点击“复制”,在原有基础上进行修改成我们需要的表单
创建菜单和Action
菜单 设置 -> 技术 -> 数据库结构 -> 模型 进去,查找刚才创建的“请假单”对象,点击打开,在表单的下方有个“创建菜单”的按钮,点击进去。
进去后,点击父菜单右边的查找按钮,在父菜单查找画面,新建一个“请假申请”的父菜单。
- 完整路径:不用填,系统自动生成。
- 菜单:请假申请,用于菜单显示的文字
- 序号:在菜单列表中的显示位置,数字越小越显示在上位。
- 上级菜单:由于本菜单是顶级菜单,不要父菜单。
- 菜单功能:点击菜单时将触发的 Action,本菜单仅仅是父菜单,不触发 Action,故不填。
- 组:只有这里定义的组 (group)才能看见本菜单,如果不填,表示任何组都可以看到。暂时不考虑菜单
- 权限,故而不填。
点击“保存”
父菜单建好后,按下图创建“请假单”菜单。点击“创建菜单”按钮,系统会自动创建菜单和菜单对应的Action。该Action访问请假单对象,依次调用请假单列表和请假单表单显示数据。
再点击“创建菜单”,创建下级菜单
测试
回到主菜单,画面上增加了菜单“请假申请 ->请假单->请假单1”。点击请假单,进入列表视图,点击新建按钮,进入创建请假单画面。
点击“创建”
点击“保存”
编辑:开源智造(OSCG) - 源自欧洲,业界领先的免费开源ERP Odoo亚太金牌服务机构