You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							57 lines
						
					
					
						
							2.1 KiB
						
					
					
				| # -*- coding: utf-8 -*- | |
| ############################################################################# | |
| # | |
| #    Cybrosys Technologies Pvt. Ltd. | |
| # | |
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |
| #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | |
| # | |
| #    You can modify it under the terms of the GNU LESSER | |
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |
| # | |
| #    This program is distributed in the hope that it will be useful, | |
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |
| # | |
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |
| #    (LGPL v3) along with this program. | |
| #    If not, see <http://www.gnu.org/licenses/>. | |
| # | |
| ############################################################################# | |
| import base64 | |
| from odoo import tools | |
| 
 | |
| 
 | |
| def process_menu_item(menu): | |
|     """ | |
|        Process a menu item by updating its web_icon_data. | |
|        param: | |
|            menu (record): The menu item to process. | |
|        """ | |
|     menu_list = [ | |
|         'Contacts', 'Link Tracker', 'Dashboards', 'Sales', 'Invoicing', | |
|         'Inventory', 'Purchase', 'Calendar', 'Point of Sale', 'Website', | |
|         'Notes', 'CRM', 'Surveys', 'Project', 'SMS Marketing', | |
|         'Email Marketing', 'Repairs', 'Manufacturing', 'Timesheets', | |
|         'Fleet', 'Lunch', 'Live Chat', 'Maintenance', 'Expenses', 'Time Off', | |
|         'Attendances', 'Recruitment', 'Employees', 'Members', 'eLearning', | |
|         'Events' | |
|     ] | |
|     if menu.name not in menu_list: | |
|         return | |
|     img_path = tools.misc.file_path( | |
|         f'artify_backend_theme/static/src/img/icons/{menu.name}.png') | |
|     with open(img_path, "rb") as img_file: | |
|         menu.write({'web_icon_data': base64.b64encode(img_file.read())}) | |
| 
 | |
| 
 | |
| def init_hooks(env): | |
|     """ | |
|         Initialize hooks by updating the web_icon_data of certain menus. | |
|         param: | |
|             env (Environment): Odoo environment. | |
|         """ | |
|     menu_item = env['ir.ui.menu'].search([('parent_id', '=', False)]) | |
|     for menu in menu_item: | |
|         process_menu_item(menu)
 | |
| 
 |