引言
课前准备
- 学员准备:能访问互联网的电脑,可安装应用程序
- 教学材料:课件、讲义、案例、视频等教学材料,后续更新至该链接
- 课题纪律:培训签到及随堂作业完成情况,工作群通报
预期成果
1、掌握Odoo系统二次开发,修改现有模块,增加菜单及页面
2、掌握工作流模块应用,实现图形化配置工作流
3、了解Odoo代码开发规范
Odoo二次开发课程
在demo模块中,修改维护模块,将部门增加到设备页面中
修改模块信息
addons_local/demo/__manifest__.py
# -*- coding: utf-8 -*-
{
# 修改集成关系
'depends': ['base', 'maintenance'],
}
新建model
addons_local/demo/models/maintenance_equipment.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class MaintenanceEquipment(models.Model):
_inherit = 'maintenance.equipment'
department_id = fields.Many2one('demo.department', string="部门", tracking=True)
def action_get_code(self):
# self.ensure_one()
self.serial_no = '123456'
修改addons_local/demo/models/__init__.py
# -*- coding: utf-8 -*-
from . import maintenance_equipment
新建视图信息
addons_local/demo/views/maintenance_equipment_views.xml
<odoo>
<data>
<record id="hr_equipment_view_form_inherit" model="ir.ui.view">
<field name="name">equipment.form.inherit</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_form" />
<field name="arch" type="xml">
<!-- <field name="owner_user_id" position="before">
<field name="department_id"/>
</field> -->
<field name="location" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="scrap_date" position="attributes">
<attribute name="required">1</attribute>
</field>
<page name="description" position="attributes">
<attribute name="invisible">1</attribute>
</page>
<xpath expr="//sheet" position="before">
<header>
<button name="action_get_code" string="获取编码" type="object" class="btn-primary" />
</header>
</xpath>
</field>
</record>
</data>
</odoo>
修改菜单信息
addons_local/demo/views/menu.xml
隐藏菜单
<odoo>
<data>
<record id="maintenance.menu_maintenance_stage_configuration" model="ir.ui.menu">
<field name="active" eval="False"/>
</record>
</data>
</odoo>
Odoo工作流配置
安装模块包
crnd_web_diagram_plus.7z
odoo_dynamic_workflow.7z
工作流功能
1、定义节点:草稿->班长确认->设备接修->维修完成->班长复核->完成
2、定义链接:提交->确认->处理->完成->确认
3、配置审批人
4、允许转发
5、设置字段必填
6、超时通知
7、增加物料问题->处理完成节点,条件判断
8、自定义按钮
9、按钮结束触发其他事件
Odoo开发规范
参照链接:https://blog.csdn.net/m0_62065137/article/details/138192385
评论区