1

我想将窗口操作与放置在 Odoo 界面左侧边栏中的菜单相关联。我在顶部菜单栏中有一个名为 Academy 的菜单,在左侧边栏中有另一个名为“Academy Content”的菜单。这是界面的图像。

图片链接:菜单 Odoo

“学院内容”菜单没有子菜单。我想将一个窗口操作(名为 action_academy_teachers)与“学院内容”菜单相关联。在视图(view.xml 文件)中,我定义了两个菜单。

<menuitem sequence="0" id="menu_academy" name="Academy"/>
<menuitem id="menu_academy_content" parent="menu_academy" name="Academy Content" action="action_academy_teachers"/>

问题是我无法点击“学院内容”菜单,它只是一个静态文本,而不是一个链接。但是,如果我将一个子菜单(名为“Academy Teachers”)添加到“Academy Content”菜单,并将窗口操作“action_academy_teachers”关联到“Academy Teachers”菜单,则当我单击此菜单时会触发此窗口操作。

<menuitem sequence="0" id="menu_academy" name="Academy"/>
<menuitem id="menu_academy_content" parent="menu_academy"
          name="Academy Content"/>
<menuitem id="menu_academy_content_teachers"
          parent="menu_academy_content"
          action="action_academy_teachers" name="Academy Teachers"/>

但是我想在单击“学院内容”菜单时触发“action_academy_teachers”动作。我不想创建另一个子菜单来执行此操作。

窗口动作代码:

<record id="action_academy_teachers" model="ir.actions.act_window">
  <field name="name">Academy teachers</field>
  <field name="res_model">academy.teachers</field>
</record>

附加信息
Odoo:版本 8
操作系统:Ubuntu 14.04 32 位

4

1 回答 1

1

Normaly 默认情况下它不起作用,因为菜单的体系结构及其结构。

因此,您需要通过覆盖“web”模块中的“web.menu_secondary”模板来修改菜单的显示方式,以添加指向您的操作的链接。

为此,只需将此部分添加到您的 XML 文件中(或创建一个依赖于“web”模块的新模块):

<template id="menu_secondary" inherit_id="web.menu_secondary">
        <div class="oe_secondary_menu_section" position="replace">
            <div class="oe_secondary_menu_section">
                <span t-if="not menu['action']">
                    <t t-raw="menu['name']"/>
                </span>
                <span t-if="menu['action']">
                    <t t-call="web.menu_link"/>
                </span>
            </div>
        </div>
</template>

希望这可以帮助!

于 2015-05-18T13:38:46.883 回答