odoo升级16至18-17业务与开发大全-后台py-界面xml-前端owl.js升级总结

​本文档持续更新。

     odoo18已于2024年10月1日发布alpha版本,而odoo17从2023年10月发布至今已完全成熟商用,细节都基本完善,就我们在官方及中文应用商店的销售情况来看,Odoo18的增强模块已有数百用户,odoo17的模块下载购买已占据了约1/3强,可以新版本已经有了不错的应用,广为客户接受。

​我司3百多个模块基本已都升级到了odoo17版,最受欢迎的增强模块及中国化模块也已有大量odoo18用户下载,以下我们从开发者角度,总结下从odoo16升级Odoo18或17的关键要点,主要包括模块定义,后台.py文件,界面xml文件,前端owl开发等几大方面。业务逻辑变化也比较多,主要集中在电商网站及门店POS等,后续起新文详述。

     如需查看早期版本升级,请查阅 :
如何升级到odoo13-15-16,模块从odoo12到13以上版本的开发对比及注意要点

​先给个odoo18-17模块升级的脑图总结

业务层上升级至Odoo18-17

业务层上升级至Odoo18-17

后端开发升级至Odoo18-17

后端开发升级至Odoo18-17

前端开发升级至Odoo18-17

后端开发升级至Odoo18-17

业务层功能升级等

增加行业方式模式
更多专注电商、各种线下门店
每行业有服务包,大量为saas的企业版服务模式
财务
会计科目表可以更方便的更换,且是增量变换
独立的期初余额处理功能,更方便入门
实收实付是由account多态继承处理
更强的账期管理,账龄报告
增强的应收实收,应付实付对账
全局科目增加预收预付的处理,更适合交付后才收入支出确认的暂估财务模式
增加贷款处理,并能自动生成凭证,自动计算利息并计入相关科目
增加锁账功能,但只能指定一个时间点,不能按月
增加会计年度管理,但无会计月管理
销售折扣等设置更方便,可配置处理入费用or成本
供应链stock/sale/purchase
销售增加提成功能,但只能基于team
销售可以直接生成全单采购计划,purchase_requisition_sale
采购增加从生产采购补原材料逻辑purchase_mrp
采购增加矩阵选产品功能
取消stock.inventory
直接用quant改
批次从stock.production.lot改为stock.lot
增加库容管理stock.storage.category
所有的补货增加补货单,在安全库存模型中实现
门店功能增加线上下单,线下取货
门店增加餐饮支持
stock.move.line
完成数量从 qty_done 改quantity
生产mrp
bom.line
每bom工序独立,不再存在标准工序
部份生产模式改为数量处理与仓储统一,即欠单模式
往来res.partner
barcode改为公司级字段
信用限额优化,显示往来单位分类账余额
res.partner的客户/供应商由 customer_rank/ supplier_rank处理
基础product等
产品中增加设置辅助核算逻辑
增加Ai对接,只处理了chatgpt,在对话中使用


odoo后端py升级

__manifest__
版本号:17不再支持4位版本号,精简掉最开头的大版本号,格式只能为`x.y`, `x.y.z`。比如原来为 16.24.03.30,现在要将大版本号去掉,使用 24.03.30   
版本号:18又改回来,可使用 18.xx 的形式
hook变化,post_init_hook等主参数改用env
核心模型变更,如mail.channel 改为 discuss.channel
name_get方法改为  _compute_display_name
Fields定义不再支持 states 处理只读与否,一般放到 xml 中处理特殊的只读属性
selection
要增加 ondelete处理
data文件中function写法,eval换search
chromeheadless 即将取代 wkhtmltopdf
多用 active_ids 取代 active_id
cli指令增加参数 upgrade-path,default_productivity_apps

odoo视图xml升级

主界面
导出放到收藏
无需定义 <xml xx>
搜索重构成多级功能组
更多的延迟加载比如全局菜单点击,owl处理dom
search增加日期参数
后端开发升级至Odoo18-17

取消attrs,改直接用invisible或required等
后端开发升级至Odoo18-17
views 增加参数 import, optional, expand
不在root级别支持 groups标签,可直接删除,在xml内部fields等定义中处理
widget提级:widget提级,可以不绑定在field直接使用,比如 tree中直接与数据无关的使用
tree视图调整
tree views 的汇总增加 avg
tree中<groupby>中可放<button>标签
增加 open_form_view,可以特殊处理查看详情
可以直接挂载widget,不被field包裹
calendar视图:quick_add 变为 quick_create 且可以通过quick_create_view_id指定视图
graph视图:柱图增加处理 cumulated_start
Only18
根节点取消tree,用list代替


odoo前端js升级

主要方式为用继承改原生的 import patch
少用rpc方法,多用use_state,use_service等内置js方法
js中默认不带jquery,尽量不要用jq,用原生js都成
路由变化,后台/web 换成 /odoo
引用变化,如
router
browser
owl的template中不用dataset处理,都用 attrs
对象变化,user_menu中不再有user
菜单组件由桌面 burger_menu 改为 sidebar,移动端仍是_menu
session中不再有uid,相关用户信息使用user对象
增加了多种图文widget,如m2m_avatar等


odoo升级16至18-17业务与开发大全-后台py-界面xml-前端owl.js升级总结
odooAi广州欧度, 欧度超管
2024年10月9日
2024年12月3日
10,759
评论:
0
分享这篇文章
存档
odoo17对接企业微信最新2024版-实现服务商多公司SAAS