在开发模块时,碰到的菜单项操作有三种:
1. 新建菜单项
<record id="action_qingjia_qingjd" model="ir.actions.act_window">
<field name="name">请假单</field>
<field name="res_model">qingjia.qingjd</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_qingjia" name=" 请假" sequence="0"></menuitem>
<menuitem id="menu_qingjia_qingjiadan" name=" 请假单" parent="menu_qingjia"</menuitem>
<menuitem id="menu_qingjia_qingjiadan_qingjiadan" parent="menu_qingjia_qingjiadan" action="action_qingjia_qingjd"></menuitem>
</data>
</openerp>
注意:一定要新建动作放在前面。只有先新建动作,菜单才能完成动作指定。**
2. 更新菜单项
利用(record id=”x” model=”y”)语句可以完成模型上的插入或更新操作。如果x不存在, 插入记录; 否则, 对其进行更新。
例如下面的代码修改菜单项, 将其添加到todo_user模块的todo_view.xml中:
#更新菜单语法:
<record id="外部完整ID" model="模型">
<field name="name">My To-Do</field>
</record>
#例如:
<record id="todo_app.menu_todo_task" model="ir.ui.menu">
<field name="name">My To-Do</field>
</record>
#更新动作:
<record model="ir.actions.act_window" id="todo_app.action_todo_task">
<field name="context"> {'search_default_filter_my_tasks': True}</field>
</record>
3. 删除菜单项
#语法:
<delete model="模型" search="[('id', '=',
ref('外部完整ID'))]" />
#外部完整ID为模块+"."+外部标识符
#例如:
<delete model="ir.rule" search="[('id', '=',
ref('todo_app.todo_task_user_rule'))]" />