Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
2 ตอบกลับ
4848 มุมมอง

How to show/hide menu item based on system parameter?


I've this code to create menu item, and it working fine, but i need to hide it depends on system parameter.


Does anyone know how to do that? Thanks.


<!-- this is for test, remove this after testing -->
<record id="check_qty_and_move_from_internal_customer_to_customer" model="ir.actions.server" style="color:#e8bf6a;">>
<field name="name">Cron Run Directly 2</field>
<field name="model_id" ref="model_kiotviet_cron"/>
<field name="binding_model_id" ref="onnet_kiotviet.model_kiotviet_cron"/>
<field name="state">code</field>
<!-- function called -->
<field name="code">model.check_qty_and_move_from_internal_customer_to_customer()</field>
</record>

<!-- this is for test, remove this after testing -->
<menuitem id="check_qty_and_move_from_internal_customer_to_customer" name="Cron Run Directly 2" parent="kiotviet_menu_root"
action="check_qty_and_move_from_internal_customer_to_customer" sequence="6"/>

อวตาร
ละทิ้ง
ผู้เขียน คำตอบที่ดีที่สุด

After followed Niyas Raphy answer, i've solved my problem, and here's the code:


from odoo import models, api, tools, _


class Menu(models.Model):
_inherit = 'ir.ui.menu'

@api.model
@tools.ormcache('frozenset(self.env.user.groups_id.ids)', 'debug')
def _visible_menu_ids(self, debug=False):
menus = super(Menu, self)._visible_menu_ids(debug)
# get system parameter
if not self.env['ir.config_parameter'].sudo().get_param('your_module.your_config_name'):
# get menu item id
menu_item_id = self.env.ref('your_module.menu_item_id').id
# remove it from menus
menus.discard(menu_item_id)
return menus

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hi,

You can inherit the _visible_menu_ids function from the ir.ui.menu model and filter the menus based on the configuration in the system parameters.

An use case can be found in this module: https://apps.odoo.com/apps/modules/15.0/kg_hide_menu/


Thanks

อวตาร
ละทิ้ง
ผู้เขียน

thanks you sir, i will try this and will update the result on this post.

ผู้เขียน

i've followed your answer and found the answer for my self, thanks you sir.

Related Posts ตอบกลับ มุมมอง กิจกรรม
1
ส.ค. 22
2860
1
ก.พ. 25
7301
2
เม.ย. 24
8381
2
พ.ย. 22
3242
1
มิ.ย. 25
1674