Odoo版本技术差异参考
17.0
1. Python版本要求
17.0 要求python版本大于3.10,因此旧版本的python需要升级后才可以使用。(Ubuntu 22.04)
2. autils
pip-23.3.1 安装autils会出现dateutil找不到的问题
3. OWL
* this._super(...arguments)不能再使用, 需要使用super.Fn()
4. deliver模块重命名
delivey模块命名变更 -> stock_delivery
5. message_post方法变更
body参数原来接收HTML格式的值,变更为默认接收str或Markdown的格式,如需使用旧格式需要配合body_is_html参数使用.
6. atts属性和states属性取消
直接使用属性 invisible="python表达式"等。
py文件中的states属性也不再支持使用。
7. settings页面写法改变
使用app标签开启一个新app
```xml
<app>
...
</app>
```
使用block替代app_setting_block
```xml
```
8. list视图中的invisbile属性失效
需要使用column_invisible替代
9. 支付模块
删除了payment.icon模型
post_init_hook, uninstall_hook参数形式发生变化
```py
def post_init_hook(cr, registry):
setup_provider(cr, registry, 'alipay')
def uninstall_hook(cr, registry):
reset_payment_provider(cr, registry, 'alipay')
```
17.0
```py
def post_init_hook(env):
setup_provider(env, 'alipay')
def uninstall_hook(env):
reset_payment_provider(env, 'alipay')
```
17.0 聊天模型重命名
mail.channel重命名为discuss.channel
18.0
1. company dependent实现机制改变
17.0及之前的版本通过ir.property对象来实现不同公司不同值的效果,18.0使用了jsonb类型的字段来存储不同公司间的值,因此ir.property在18.0中被删除掉了。
2. Tree视图变更为List
视图类型发生变化,tree类型被list取代。
3. Web RPC 调用方式变化
17.0版本时使用this.env.services.rpc, 18.0变为以下方式:
```javascript
import { rpc } from "@web/core/network/rpc";
rpc(...)
```
4. Chatter变化
17.0中如果要在Form中添加留言和附件控件,需要在form表单中添加如下代码:
```xml
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="activity_ids" widget="mail_activity"/>
<field name="message_ids" widget="mail_thread"/>
</div>
```
而18.0中则直接使用chatter替代:
```xml
<chatter/>
```
5. URL路径变化
在17.0之前URL的格式为:
```sh
http://odoohub.com.cn/web#action=584&model=sale.order&view_type=list&cids=1&menu_id=398
```
18.0则变成了:
```sh
http://odoohub.com.cn/odoo/customers/3?debug=1
```
变成了'/odoo/动作/id(new)'的模式,变得更加清晰简洁。
6. 动作新字段Path
在动作(ir.actions.action)对象中新增了Path字段,即前面我们讲到的URL格式中的动作显示字段,如果此字段为空则显示为action-Id的格式。
path字段只能是小写字母且以字母开头
7. ir.corn对象移除numbercall字段
ir.corn 对象移除了numbercall、doall字段
8. 模块依赖中的python包需要使用引用包名
例如17.0中可用的sf-sdk 要声明为sf方可使用