場景:在做財務(wù)的時候需要對一個model(account.move) 要有多個菜單,和多個form:
一個菜單系統(tǒng)默認(rèn)的菜單疙教。另外一個自己定義的菜單。
(可以直接替換源碼的菜單)
image.png
<record id="wg_account_move_form_inherit" model="ir.ui.view">
<field name="name">account.move.form</field>
<field name="model">account.move</field>
<field name="arch" type="xml">
<form string="Account Entry">
...
</form>
</field>
</record>
<record id="wg_account_account_move_tree" model="ir.ui.view">
<field name="name">account.move.tree</field>
<field name="model">account.move</field>
<field eval="90" name="priority"/>
<field name="arch" type="xml">
<tree>
...
</tree>
</field>
</record>
<record id="wg_account_move_inherited_action" model="ir.actions.act_window">
<field name="name">日記賬分錄</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.move</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('type', '=', 'entry')]</field>
<field name="context">{'default_type': 'entry'}</field>
<field name="view_id" ref="wg_account_account_move_tree"/>
</record>
<record id="account_move_form_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="wg_account_move_form_inherit"/>
<field name="act_window_id" ref="wg_account_move_inherited_action"/>
</record>
<record id="account_move_tree_view1" model="ir.actions.act_window.view">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="wg_account_account_move_tree"/>
<field name="act_window_id" ref="wg_account_move_inherited_action"/>
</record>
<menuitem name="日記賬分錄" id="account.menu_action_move_journal_line_form"
parent="account.menu_finance_entries_accounting_miscellaneous"
action="wg_account_move_inherited_action"/>
# act_window_id:對應(yīng)action視圖 ir.actions.act_window
# view_id:對應(yīng)form視圖和tree視圖
<menuitem name="日記賬分錄" id="account.menu_action_move_journal_line_form"
parent="account.menu_finance_entries_accounting_miscellaneous"
action="wg_account_move_inherited_action"/>
# 這里的 id="account.menu_action_move_journal_line_form" 是直接重寫了源碼里的菜單,相當(dāng)于直接替換,