odoo17 常见升级问题

通用问题

模型名变更

字段变更

方法名变更

方法参数变更

xml数据结构定义变化

xml的id变更

view视图变化,导致xpath路径出差

template结构变化,,导致xpath路径出差,或者id不存在

升16问题

前端owl的架构变化

升17问题

前端

标签弃置、改动:

attrs弃置

attrs="{'invisible': ['|', '&', ('is_company','=', True),('parent_id', '=', False),('company_name', '!=', False),('company_name', '!=', '')]}"

可变为

 invisible="((is_company and not parent_id) or company_name) and company_name != ''"

【原attrs内的'='在新逻辑里为==:'a','=','123'   a=='123'】

states弃置

states="pending,error"

可变为

 invisible=“state not in ['pending','error'] ”

<attribute>标签改动

<attribute name="attrs">{'invisible': [('is_system', '=', False)]}</attribute>

可变为

<attribute name="invisible">not is_system</attribute>

res.partner模块删除gender性别字段

stock库存模块有问题,安装之后有时候打开设置会报错

运行当中会莫名报错NameError: name 'GEOIP_EMPTY_COUNTRY' is not defined

mail.template 去掉了字段report_template,report_name

看板视图取消了quick_add属性

web/views/graph/colors.js 改到了web/core/colors/colors.js

ir.ui.view模型取消了field_parent字段

odoo.exceptions 去掉了Warning异常处理

模版 id=“portal_layout”中去掉了<div class="o_portal_my_security mt-3">这个div

原div<div class="row justify-content-between mt-4">下的布局移动到了 模版id=“side_content

”下面

<button icon="fa-code">按钮需加入title以及class="oe_stat_button" 否则日志会报提醒

<button icon="fa-code" type="object"  title="导出 xml 源" class="oe_stat_button" name="export_xml_source" />

设置 res_config_settings_view_form试图 新增设置视图逻辑变更

(源码搜索 ref="base.res_config_settings_view_form" 可查看新设置视图逻辑)

例:

<div class="..." data-string="Anodoo Develop" string="Anodoo Develop" >

<div id="develop_setting">

<h2>开发设置</h2>

<div class="row mt16 o_settings_container">

<div class="col-12 col-lg-6 o_setting_box" id="default_is_replace" title=" 默认是否替换开发目录">

...........

</div>

</div>

</div>

</div>

变为

<app data-string="Anodoo Develop" string="开发设置" name="Anodoo" groups="base.group_system"  >

<block title="开发设置" name="develop_setting">

<setting string="默认是否替换开发目录"  help="默认是否替换开发目录"          id="default_is_replace">

..........

</setting>

</block>

</app>

Manifest文件

  • 版本:不再支持4位版本号,精简掉最开头的大版本号,格式只能为`x.y`, `x.y.z`。比如原来为 16.24.03.30,现在要将大版本号去掉,使用 24.03.30
  • hook变化,只有一个env参数
def post_init_hook(env)
def pre_init_hook(env)
def uninstall_hook(env)

.py后台python开发文件

  • Fields定义:不再支持 states 处理只读与否,一般放到 xml 中处理特殊的只读属性
  • name_get: 改为  _compute_display_name
  • 模型变更:具体业务模块中比较。核心的如 
mail.channel 改为 discuss.channel

.xml界面文件升级,可在rng中查看

  • 关键属性: Since 17.0, the "attrs" and "states" attributes are no longer used. 直接使用py表达式 invisible="is_mega_menu != True"

  • 设置Block中的中调整:多用app,setting标签

  • 不在root级别支持 groups标签,可直接删除,在xml内部fields等定义中处理
  • widget提级:widget提级,可以不绑定在field直接使用,比如 tree中直接与数据无关的使用
  • tree视图: 增加 open_form_view,可以特殊处理查看详情。可以直接挂载widget,不被field包裹。不可见调整为 column_invisible。
  • graph视图:柱图增加处理 cumulated_start
  • calendar视图:quick_add 变为 quick_create 且可以通过quick_create_view_id指定视图
  • pivot视图:无变化
  • search视图:无变化

.js前端升级owl2

详情参考 官方文档 Framework Overview — Odoo 17.0 documentation

细节较多,可参考官方市场 app_web_widget_ztree 模块,基本全面应用新 js 规范

Many2One Hierarchy Parent Child M2o Selector, zTree 树状下拉选择器 | Odoo Apps Store

  • web端全面使用owl2,es规范
  • website端可使用旧snippets,同时可以使用owl
  • 取消registerPatch,统一用类的 patch处理。如: patch(类.prototype, {xxx})
  • patch原类无需给新命名,但要自行处理相关依赖级别

Odoo Attrs 替代品

由于 Odoo 在 v17 中将 attrs 更改为(不再有 attrs),我创建了这个小脚本来帮助您直接将 XML 文件中的所有 attrs 替换为 XML 中的相应属性。

依赖关系

只需安装

pip install beautifulsoup4 lxml

或者

pip install -r requirements.txt

用法

启动Python脚本

python3 replace_attrs.py

它会询问您根目录以检查XML文件。您可以给出项目的绝对路径。

如果没有给出参数,它将使用当前目录。

对于每个文件,脚本将询问您是否要将所有attrs=and替换为标签中states=的相关attrs(invisible,readonly,required,column_invisible) - (不可见串联或创建)(对于每个标签的所有实例)。states

除非您在开头选择“y”进行自动替换(不要询问每个文件)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么,有狗快跑!慢着,这次手把手教你怎么过安全狗!(sql注入篇)

前言 在记忆里上次绕安全狗还是在上次&#xff0c;开开心心把自己之前绕过狗的payload拿出来&#xff0c;发现全部被拦截了&#xff0c;事情一下子就严肃起来了&#xff0c;这就开整。 环境 本次环境如下sqli-lab的sql注入靶场 网站安全狗APACHE版V4.0版本的最高防护等级绕过…

秋招Java后端开发冲刺——并发篇2(ThreadLocal、Future接口)

本文对ThreadLocal类和Future接口进行了总结概括&#xff0c;包括ThreadLocal类的原理、内存泄露等问题&#xff0c;和Future接口的使用等问题。 一、ThreadLocal 1. 介绍 ThreadLocal&#xff08;线程局部变量&#xff09;是Java中的一个类&#xff0c;线程通过维护一个本地…

一文带你彻底搞懂什么是责任链模式!!

文章目录 什么是责任链模式&#xff1f;详细示例SpingMVC 中的责任链模式使用总结 什么是责任链模式&#xff1f; 在我们日常生活中&#xff0c;经常会出现一种场景&#xff1a;一个请求需要经过多个对象的处理才能得到最终的结果。比如&#xff0c;一个请假申请&#xff0c;需…

STM32智能仓库管理系统教程

目录 引言环境准备智能仓库管理系统基础代码实现&#xff1a;实现智能仓库管理系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;仓库管理与优化问题解决方案与优化收尾与总结 1. 引言 智能仓库管理系统通…

藏汉翻译通作为翻译软件的优势有哪些?

藏汉翻译通作为一款专业的藏汉双语翻译软件&#xff0c;具有以下优势&#xff1a; 人工智能技术应用&#xff1a;藏汉翻译通利用了人工智能翻译和语音识别合成技术&#xff0c;提供智能藏文翻译服务。 高准确率&#xff1a;文字识别准确率可达90%&#xff0c;语音识别转化文字…

苍穹外卖--导入分类模块功能代码

把各层代码拷贝到所需文件夹下&#xff0c; 进行编译 在运行 提交和推送仓库

解锁AI大模型潜能:预训练、迁移学习与中间件编程的协同艺术

在人工智能的浩瀚星空中&#xff0c;大型预训练模型&#xff08;Large Language Models, LLMs&#xff09;犹如璀璨的星辰&#xff0c;引领着技术革新的浪潮。这些模型通过海量数据的滋养&#xff0c;学会了理解语言、生成文本乃至执行复杂任务的能力。然而&#xff0c;要让这些…

【正点原子i.MX93开发板试用连载体验】项目计划和开箱体验

本文最早发表于电子发烧友&#xff1a;【   】【正点原子i.MX93开发板试用连载体验】基于深度学习的语音本地控制 - 正点原子学习小组 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com)https://bbs.elecfans.com/jishu_2438354_1_1.html 有一段时间没有参加电子发…

Pyspider WebUI 未授权访问致远程代码执行漏洞复现

0x01 产品简介 Pyspider是由国人binux编写的强大的网络爬虫系统,它带有强大的WebUI(Web用户界面),为用户提供了可视化的编写、调试和管理爬虫的能力。这一特点使得Pyspider在爬虫框架中脱颖而出,尤其适合那些希望快速上手并高效开发爬虫的用户。允许用户直接在网页上编写…

Linux--线程的控制

目录 0.前言 1.pthread库 2.关于控制线程的接口 2.1.创建线程&#xff08;pthread_create&#xff09; 2.2.线程等待&#xff08;pthread_join&#xff09; 代码示例1&#xff1a; ​编辑 ***一些问题*** 2. 3.创建多线程 3.线程的终止 &#xff08;pthread_exit /…

给数组/对象添加一个(key-value)对象

需要将一个value值前面加上key值&#xff0c;放进数组/对象中 this.$set(res.data[0],type,1) this.$set( target, key, value ) target&#xff1a;要更改的数据源(可以是对象或者数组) key&#xff1a;要更改的具体数据 value &#xff1a;重新赋的值。 结果&#xff1a;…

文华财经盘立方多空变色波段趋势线指标公式源码

文华财经盘立方多空变色波段趋势线指标公式源码&#xff1a; N1:20; N2:ROUND(N1/2,1); N3:ROUND(SQRT(N1),1); N4:2*EMA2(C,N2)-EMA2(C,N1); 尊重市场:EMA2(N4,N3),COLORRED,LINETHICK2; 尊重市场1:IF(尊重市场<REF(尊重市场,1), 尊重市场,NULL),COLORGREEN,LINETHIC…

C++之List模拟实现

目录 list的逻辑结构 构造函数 拷贝构造函数 赋值运算符重载 返回迭代器的初始位置 返回迭代器的最终位置 元素的插入 头插 尾插 删除元素 头删 尾删 清空整个链表 析构函数 正向迭代器 反向迭代器 整体代码 上期我们学写了list的基本操作&#xff0c;本期我…

苏东坡传-读书笔记十一

苏东坡对写作与风格所表示的意见最为清楚。他说做文章“大略如行云流水&#xff0c;初无定质&#xff0c;但常行于所当行&#xff0c;常止于所不可不止。文理自然&#xff0c;姿态横生。孔子曰&#xff1a;‘言之不文&#xff0c;行而不远。’又曰&#xff1a;‘辞达而已矣。’…

STC32G/F/8H通用无刷电机驱动板

STC32G/F/8H通用无刷电机驱动板 &#x1f4cc;相关篇《低成本STC32G8K64驱动控制BLDC开源入门学习方案》 ✨该驱动板是在上一版的基础上改版而来。这里的STC32G/F/8H所指的是封装型号为-LQFP48的STC32G8K64、STC32G12K128、STC32F12K54、STC8H8K64U。是一款兼容有感和无感设计的…

【Java算法】二分查找 下

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【算法工作坊】算法实战揭秘 一.山脉数组的峰顶索引 题目链接&#xff1a;852.山脉数组的峰顶 ​ 算法原理 这段代码实现了一个查找山峰数组中峰值索引的算法。山峰数组是一个先递增后递减的数组&…

玩具营销是如何拿捏成年人钱包?

好像现在的成年人逐渐热衷于偏向年轻化&#xff0c;问问题会好奇“尊嘟假嘟”&#xff0c;饭量上的“儿童套餐”&#xff0c;娃娃机前排长队......而最突出的莫过于各类各式的玩具不断收割当代年轻人&#xff0c;除去常给大朋友们小朋友们送去玩具福利的“麦、肯”双门&#xf…

激光干涉仪可以完成哪些测量:全面应用解析

在高端制造领域&#xff0c;精度是衡量产品质量的关键指标之一。激光干涉仪作为一项高精度测量技术&#xff0c;其应用广泛&#xff0c;对于提升产品制造精度具有重要意义。 线性测量&#xff1a;精确定位的基础 激光干涉仪采用迈克尔逊干涉原理&#xff0c;实现线性测量。该…

卷积神经网络之ResNet50迁移学习

数据准备 下载狗与狼分类数据集&#xff0c;数据来自ImageNet&#xff0c;每个分类有大约120张训练图像与30张验证图像。使用download接口下载数据集&#xff0c;并自动解压到当前目录。 全是小狗的图片 另一边全是狼的图片 加载数据集 狼狗数据集提取自ImageNet分类数据集&a…

2-3个月的幼猫能吃主食冻干吗?第一次吃哪款主食冻干比较好

2-3个月的幼猫能吃冻干吗&#xff1f;一般来说&#xff0c;幼猫在2-3个月左右的离乳期就可以吃冻干了。需要注意的&#xff0c;一个是要认准主食冻干&#xff0c;零食冻干会让猫猫从小就挑食&#xff0c;以后就更不好纠正了。而且离乳期的猫猫没有了母乳的保护&#xff0c;免疫…