35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
from odoo import models, api
|
|
|
|
class IrUiMenu(models.Model):
|
|
_inherit = 'ir.ui.menu'
|
|
|
|
@api.model
|
|
def load_menus(self, debug):
|
|
"""
|
|
Override standard menu loading to hide unwanted root menus.
|
|
"""
|
|
menus = super(IrUiMenu, self).load_menus(debug)
|
|
|
|
user = self.env.user
|
|
is_admin = user.has_group('base.group_system')
|
|
|
|
allowed_menus = ['Online Orders', 'Website', 'Table Reservations', 'Uber Integration', 'Apps', 'Settings']
|
|
|
|
if 'root' in menus and 'children' in menus['root']:
|
|
new_children = []
|
|
for child_id in menus['root']['children']:
|
|
child_menu = menus.get(child_id)
|
|
if not child_menu:
|
|
continue
|
|
name = child_menu.get('name')
|
|
|
|
# Allow matching menus (with fallback for Table Reservation naming variations)
|
|
if name in allowed_menus or name == 'Table Reservation':
|
|
# Hide Apps and Settings for non-admins
|
|
if name in ['Apps', 'Settings'] and not is_admin:
|
|
continue
|
|
new_children.append(child_id)
|
|
menus['root']['children'] = new_children
|
|
|
|
return menus
|