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方可使用

results matching ""

    No results matching ""