在一个模块被安装以后,咱们可能会但愿它能够执行一些动做,例如打开某个菜单页面,打开某个网址,或者执行一些数据的初始化和处理等,咱们能够借助 Odoo 的 ir.actions.todo
类型的动做来实现这个需求。web
若是安装过 website
模块的话,应该会注意到在安装完毕以后页面跳转到了主题选择页面了,选择完主题后(主题也是一个模块,对应的主题模块会被安装)会跳转到网站首页,下面就是主题模块安装后跳转到首页的动做定义:服务器
<?xml version="1.0" encoding="utf-8"?> <odoo> <record id="action_website" model="ir.actions.act_url"> <field name="name">Website</field> <field name="url">/</field> <field name="target">self</field> </record> <record id="base.open_menu" model="ir.actions.todo"> <field name="action_id" ref="action_website"/> <field name="state">open</field> </record> </odoo>
首先定义了一个跳转到首页的 act_url
动做,而后定义了一个 todo
类型的动做,而且在该动做的定义中指定 action_id
(要执行的动做)为前面定义的动做。网站
在 todo
类型动做中所指定的动做是不限类型的,能够是窗口动做(act_window
),服务器动做(server
),也能够是客户端动做(client
)以及打开 URL 的动做(act_url
)。url
其中 state
为该动做的状态,当一个动做被执行后,会被置为 done
,以后便不会被触发。spa