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://xiahunao.cn/news/3223817.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

db期末复习自用[应试向 附习题]

第一章 数据库系统实现整体数据的结构化&#xff0c;主要特征之一&#xff0c;是db区别于文件系统的本质区别。 数据库系统三个阶段&#xff1a;人工、文件、数据库系统。 数据库管理系统的功能&#xff1a;数据库定义、操纵 、&#xff08;保护、存储、维护&#xff09;、数…

招投标信息采集系统:让您的企业始终站在行业前沿

一、为何招投标信息如此关键&#xff1f; 在经济全球化的大背景下&#xff0c;招投标活动日益频繁&#xff0c;成为企业获取项目、拓展市场的主流方式之一。招投标信息采集&#xff0c;作为企业战略决策的前置环节&#xff0c;其重要性不言而喻。它不仅关乎企业能否第一时间发…

Open3D 点对面的ICP算法配准(精配准)

目录 一、概述 1.1核心思想 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2配准后点云 3.3计算数据 一、概述 基于点对面的ICP&#xff08;Iterative Closest Point&#xff09;配准算法是ICP的一种变体&#xff0c;它通过最小化源…

昇思MindSpore学习总结十二 —— ShuffleNet图像分类

当前案例不支持在GPU设备上静态图模式运行&#xff0c;其他模式运行皆支持。 1、ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达…

数学建模中常用的数据处理方法

常用的数据处理方法 本文参考 B站西电数模协会的讲解视频 &#xff0c;只作笔记提纲&#xff0c;想要详细学习具体内容请观看 up 的学习视频。一般来说国赛的 C 题一般数据量比较大。 这里介绍以下两种方法&#xff1a; 数据预处理方法 数据分析方法 数据预处理方法 1. 数据…

【电脑应用技巧】如何寻找电脑应用的安装包华为电脑、平板和手机资源交换

电脑的初学者可能会直接用【百度】搜索电脑应用程序的安装包&#xff0c;但是这样找到的电脑应用程序安装包经常会被加入木马或者强制捆绑一些不需要的应用装入电脑。 今天告诉大家一个得到干净电脑应用程序安装包的方法&#xff0c;就是用【联想的应用商店】。联想电脑我是一点…

alibabacloud学习笔记11

讲解什么是配置中心及使用前后的好处 讲解Nacos作为配置中心面板介绍 官方文档 Nacos config alibaba/spring-cloud-alibaba Wiki GitHub 加入依赖&#xff1a; 订单服务和视频服务也加上这个依赖。 讲解Nacos作为配置中心实战 订单服务添加配置。 我们注释掉之前的配置。 …

现代化3D Web轻量引擎HOOPS Communicator:基于ESM的代码库转型!

HOOPS Communicator自2024.2.0版本起&#xff0c;向基于ECMAScript Modules (ESM)的系统迁移的决策和技术细节。文章分析了这一转型对代码组织、封装、依赖管理、性能以及与现代JavaScript开发实践兼容性的积极影响&#xff0c;并讨论了IIFE和UMD的兼容性支持。 引言 随着Jav…

Dynamics365 UCI下的高级查找(不要留恋Classic了)

UCI界面已经用了多年了&#xff0c;在Classic下的的高级查找按钮(漏斗icon)已不见踪影 但因为使用习惯问题&#xff0c;还是有人会通过右上角高级设置&#xff0c;进入Classic界面找到漏斗Icon来使用高级查找 但新的UCI风格下已经没了高级查找的概念&#xff0c;取而代之的是基…

C++代码编程学习:基于对象的编程风格——习题4.5(Essential C++ 第四章)

C中基于对象的编程风格的学习&#xff0c;非常有难度&#xff0c;概念很抽象&#xff0c;操作起来也比较费脑子&#xff0c;这里主要把一些知识点和习题给过一遍&#xff01; 一、前言 C中基于对象的编程风格的学习&#xff08;Essential C 第四章&#xff09;。 二、例题 -…

设计无缝体验:交互设计流程全解析

完整的产品交互设计流程是什么&#xff1f;完整的产品交互设计流程包括研究用户需求、指定信息架构、制作产品原型、进行用户测试和实时发布产品。交互设计就是从人与产品之间的关系入手&#xff0c;通过产品设计来满足大众的日常需求。随着网络技术的流行&#xff0c;产品交互…

快速将一个网址打包成一个exe可执行文件

一、电脑需要node环境 如果没有下面有安装教程&#xff1a; node.js安装及环境配置超详细教程【Windows系统安装包方式】 https://blog.csdn.net/weixin_44893902/article/details/121788104 我的版本是v16.13.1 二、安装nativefier 这是一个GitHub上的开源项目&#xff1a…

Codeforces Round 954 (Div. 3) F. Non-academic Problem

思路&#xff1a;考虑缩点&#xff0c;因为是无向图&#xff0c;所以双连通分量缩完点后是一棵树&#xff0c;我们去枚举删除每一条树边的答案&#xff0c;然后取最小值即可。 #include <bits/stdc.h>using namespace std; const int N 3e5 5; typedef long long ll; …

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片(Form_Vision部分代码)

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片(Form_Vision部分代码) 1 目标效果视频 CamManager 2 增加一个class IMG_BUFFER 用来管理采集的图片 // <summary> /// IMG_BUFFER 用来管理内存图片的抓取队列 /// </summary> public class IMG_BUFF…

AI赋能,全面筑牢防线:重点非煤矿山重大灾害风险防控系统探析

一、背景需求 随着工业化和现代化的快速发展&#xff0c;非煤矿山作为重要的资源开采基地&#xff0c;其安全生产问题日益受到社会各界的广泛关注。非煤矿山在开采过程中&#xff0c;面临着诸多重大灾害风险&#xff0c;如滑坡、坍塌、水害、火灾等&#xff0c;这些灾害一旦发…

前端面试题34(在移动应用中,通用的实时传输协议)

在移动应用中&#xff0c;选择实时传输协议时通常会考虑几个关键因素&#xff1a;网络效率、功耗、实时性、跨平台兼容性以及数据类型&#xff08;如文本、图像、视频&#xff09;。以下是几种常用的实时传输协议及其在移动应用中的适用性&#xff1a; 1. WebSocket WebSocke…

Java面试八股之MySQL中int(10)和bigint(10)能存储读的数据大小一样吗

MySQL中int(10)和bigint(10)能存储读的数据大小一样吗 在MySQL中&#xff0c;int(10)和bigint(10)的数据存储能力并不相同&#xff0c;尽管括号内的数字&#xff08;如10&#xff09;看起来似乎暗示着某种关联&#xff0c;但实际上这个数字代表的是显示宽度&#xff0c;而不是…

threejs基础入门案例研究——三维立体物体沿指定曲线循环移动

效果 代码展示 主要思路是先创建指定曲线路径,并将其分为1000个点,然后按照自定义路线从头遍历点的位置,然后修改物体位置以及朝向等,实现三维立体物体沿指定曲线循环移动的效果。这里以vue3代码为例,进行展示 <template><div class="threejs">&l…

web Worker学习笔记 | 浏览器切换标签,定时器失效的解决办法

文章目录 web Workerweb Worker介绍 - 多线程解决方案浏览器多进程架构 web workers 的使用关闭worker引用其他js文件 浏览器切换标签&#xff0c;定时器失效的解决办法窗口可见性 API解决定时器失效的方案 web Worker web Worker介绍 - 多线程解决方案 Web Workers 是Html5提…

考研数学什么时候开始强化?如何保证进度不掉队?

晚了。我是实在人&#xff0c;不给你胡乱吹&#xff0c;虽然晚了&#xff0c;但相信我&#xff0c;还有的救。 实话实说&#xff0c;从七月中旬考研数一复习完真的有点悬&#xff0c;需要超级高效快速... 数二的时间也有点紧张... 中间基本没有试错的时间&#xff0c;让你换…