在 Odoo 中隐藏菜单项?

Hiding menu item in Odoo?

我想在会计菜单中隐藏菜单项这是完整路径: Accounting/Charts/Chart 的税收。我想隐藏它,所以我创建了自定义 xml file.but 我无法隐藏它。我可以使用标签删除此菜单项吗?

有人可以帮我解决这个问题吗?谢谢

使用 xml 文件创建一组,必须首先在 __openerp__.py.

中添加
<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data noupdate="1">
    <record id="new_group_id" model="res.groups">
      <field name="name">New Group Name</field>
      <field name="category_id" ref="base.module_category_hidden"/>
      <field name="users" eval="[(4, ref('base.user_root'))]"/>
    </record>
  </data>
</openerp>

并创建另一个 xml 文件,在其中使用该 xml 代码更新该菜单项。

<record id="account.menu_action_tax_code_tree" model="ir.ui.menu">
  <field name="groups_id" eval="[(6, 0, [ref('new_group_id')] )]"/>
</record>

这足以隐藏菜单项。

您可以使用 fields_view_get 方法实现相同的效果

请尝试在操作的上下文中传递一些值 例如:

<record id="action_sample_record" model="ir.actions.act_window">
    <field name="name">student record</field>
    <field name="res_model">student.student</field>
    <field name="view_type">form</field>
    <field eval="False" name="view_id"/>
    <field name="view_mode">tree,form</field>
    <field name="context">{'student_master':True}</field>
</record>

现在覆盖 fields_view_get 方法

@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
    res = super(StudentStudent, self).fields_view_get(view_id, view_type, toolbar=toolbar, submenu=submenu)
    if 'student_master' in self._context.keys():
        res['toolbar'] = {'print': [], 'action': [], 'relate': []}
    return res

希望对您有所帮助。我的代码示例适用于新版本 api,但您也可以对旧版本执行相同的操作。

<record id="group_hide_menu"  model="res.groups">
    <field name="name">Hide Menus</field>
    <field name="category_id" ref="base.module_category_hidden"/>
    <field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>

<record id="hr_evaluation.menu_open_view_hr_evaluation_tree" model="ir.ui.menu">
    <field name="groups_id" eval="[(6,0,[ref('group_hide_menu')])]"/>
</record>
<record id="hr_evaluation.menu_open_hr_evaluation_interview_requests" model="ir.ui.menu">
    <field name="groups_id" eval="[(6,0,[ref('group_hide_menu')])]"/>
</record>