odoo connector

Connector 有4个不同的addons:

  • quenue_job
  • component
  • component_event
  • connector

Migrating Jobs:

job现在变得更加完整,可以被认为是在models中的methods来使用而不在是以前那种单独存在的方法。另一个改变是python路径改变了因为jobs被放在单独的addon中了

odoo connector_第1张图片
image.png
观察结论:
  • 可以从实例中看到现在的@job跟@related_action装饰器可以在models中使用。
  • 由于job能定义在models中,可加api装饰器所以使用self能替代以前的session,model_name,bindling_id
  • 新版本的import_record可以直接传入参数作为records
  • the action of a related action is now the name of a method on the queue.job model
  • 如果需要在多个models中共享一个job。可以通过使用AbstractModel,并且添加利用_inherit继承来共享

invocation of a job(调用job)

odoo connector_第2张图片
image.png
观察结论
  • 不需要再进行import
  • ConnectorSession 被丢弃了
  • job的参数不在跟method参数混合起来
  • 当一个job被browse使用时,这个job会被这个记录的一个实例执行

Migrating Events(迁移事件)

事件现在被component_event addon处理

Triggering(触发) an event

odoo connector_第3张图片
image.png
观察结论
  • imports不再被需要。调用参数只需要把参数传入odoo.addons.component_event.component_event.components.event.CollectedEvents.notify()
  • event 的名字必须以'on_'作为开头

Listening to an event

odoo connector_第4张图片
image.png
观察结论
  • listerners 现在变为 components
  • 一个listener Component 可能包含多个listener methods
  • 必须继承'base.event.listener'或者一个它的子类
  • 检查context中是否存在key 'connector_no_export' 能被装饰器odoo.addons.component_event.skip_if()来代替

Listening to an event only for some Models

odoo connector_第5张图片
image.png
观察结论
  • 通过加入_apply_on 列表 来添加需要监听的Models名称

Migrating Components (迁移组件)

Backends

odoo connector_第6张图片
image.png

odoo connector_第7张图片
image.png
观察结论
  • Backend Models中版本是可选的
  • Backend Models 是基于Component's Collections的

Inheritance

odoo connector_第8张图片
image.png

odoo connector_第9张图片
image.png
观察结论
  • 现在的继承与odoo中的继承类似(没有_inherits 这个继承方式)
  • 所有的组件都需要用过python中的类的继承方式继承AbstractComponent或者Component
  • 需要在名字前加上前缀(因为是全局的名字)
  • the name of the classes has no effect
  • 类似Odoo的Models,一个组件能继承多个组件通过 _inherit 一个list列表
  • 所有的组件都继承了base组件

Entrypoint for working with components (组件工作的入口点)

odoo connector_第10张图片
image.png

odoo connector_第11张图片
image.png
观察结论
  • And when you are already in a Component, refer to Find a component

Find a component

odoo connector_第12张图片
image.png
  • model 通过_apply_on属性来进行对比
  • Backend 通过_collection属性进行比较
  • _usage 指明来组件的目的,可以理解为被用来进行查找
  • 通常,_usage跟_collection 是会通过_inherit直接从父类组件中获取。所以不需要对每个组件都进行重写
  • 一个很好的方法是写一个接口(抽象类) 。


    odoo connector_第13张图片
    image.png

你可能感兴趣的:(odoo connector)