1 今天看了阿飞的一篇日记,其中有一点本来有疑问。
现在理解了,记录下来。
1 菜单(其对象为ir.ui.menu),以 stock.picking 库存交易单据 为例:
select id,sequence,name from
ir_ui_menu where parent_id = 220 order by sequence
242;1;"Incoming Shipments"
入库单
243;2;"Internal Moves"
调拨单
241;3;"Delivery Orders"
出库单
2 菜单在ir_values里定义的action:(res_id字段就是model字段定义对象的id)
select id,name,key,key2,model,value,res_id,object from
ir_values where
res_id in (241,242,243) 216;"Menuitem";"action";"tree_but_open";"ir.ui.menu";"
ir.actions.act_window,292";241;t
217;"Menuitem";"action";"tree_but_open";"ir.ui.menu";"
ir.actions.act_window,293";242;t
218;"Menuitem";"action";"tree_but_open";"ir.ui.menu";"
ir.actions.act_window,294";243;t
3 根据上面value字段,查找action
select id,name,domain,search_view_id,context from
ir_act_window where
id in (292,293,294)
292;"Delivery Orders";"[('type','=','out')]";469;
293;"Incoming Shipments";"[('type','=','in')]";472;
294;"Internal Moves";"[('type','=','internal')]";473;
以上菜单动作定义的context:{'contact_display': 'partner_address',"search_default_available":1}"
当然
ir_act_window里面还定义了stock.picking对象其他的action,大家可以分析。
4 一个对象,有多个action,同时有多个同类型的视图时,需要指定具体的视图
select act_window_id,sequence,view_mode,view_idfrom ir_act_window_view where act_window_id in (292,293,294)
292;1;"tree";467
292;2;"form";468
292;3;"calendar";
293;1;"tree";470
293;2;"form";471
293;3;"calendar";
294;1;"tree";464
294;2;"form";465
OK,菜单的定义至此就清楚了。OpenERP对象的form视图右侧,常有一些链接或者报表,甚至视图上的button,如果定义了action,这在ir_values表中也有定义。
来源:苏州远鼎官网
相关标签 TAG : 视图 菜单 流程