实现目标
实现后效果如图所示,增加了范围类型、范围开始日期、范围结束日期和一个生成按钮
开发步骤
1、开发前找到修改目标
首先激活开发者模式,通过菜单Settings | Technical | Sequences
进入序列编辑界面,通过菜单Open Developer Tools | Edit View: Form
查看表单视图,得到需要修改的模型为ir.sequence
,视图为base.sequence_view
(为了排除翻译导致的名称不一致,这里菜单名和截图使用英文的)
2、创建模块
进入自己的模块目录中,使用脚手架生成模块结构
cd C:/Project/odoo12-x64/source\odoo\custom-addons
C:\Project\venv\odoo12\Scripts\python.exe C:/Project/odoo12-x64/source/odoo-bin scaffold myapp_sequence
3、继承序列模型,添加设置日期范围的字段
1 | #models/models.py |
4、继承序列表单视图,添加字段和按钮
1 | <!-- views/views.xml --> |
其中
class="oe_edit_only oe_highlight"
表示按钮编辑时可见
attrs="{'invisible': [('use_date_range', '=', False)]}"
表示字段use_date_range
为False时隐藏
5、为按钮添加事件函数
1 | #models/models.py |
6、安装并使用模块
从应用中安装这个模块,进入序列号编辑表单,选择范围类型,范围开始日期和结束日期,点击创建日期范围,将清除之前的日期范围,按照规则重新创建日期范围