Files
test/web_enterprise/models/ir_ui_menu.py
2023-04-14 17:42:23 +08:00

36 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import re
from odoo import models
class IrUiMenu(models.Model):
_inherit = "ir.ui.menu"
def load_web_menus(self, debug):
menus = super(IrUiMenu, self).load_web_menus(debug)
for menu in menus.values():
# web icons for app root menus
if menu['id'] == menu['appID']:
webIcon = menu.get('webIcon', '')
webIconlist = webIcon and webIcon.split(',')
iconClass = color = backgroundColor = None
if webIconlist:
if len(webIconlist) >= 2:
iconClass, color = webIconlist[:2]
if len(webIconlist) == 3:
backgroundColor = webIconlist[2]
if menu.get('webIconData'):
imgtype = menu['webIconData'][0] == 80 and 'svg+xml' or 'png'
menu['webIconData'] = re.sub(r'\s/g', "", ('data:image/%s;base64,%s' % (imgtype, menu['webIconData'].decode('utf-8'))))
elif backgroundColor is not None: # Could split in three parts?
menu['webIcon'] = ",".join([iconClass or "", color or "", backgroundColor])
else:
menu['webIconData'] = '/web_enterprise/static/img/default_icon_app.png'
return menus