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.
 
 
 
 
 

120 lines
5.5 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/>.
#
#############################################################################
from odoo import models
def float_to_time(time):
"""
Convert a floating-point number representing time in hours to a string
formatted as 'HH:MM'.
Parameters:
- time (float): The time in hours to be converted.
Returns:
- str: A string representing the time in the format 'HH:MM'.
"""
return '{0:02.0f}:{1:02.0f}'.format(*divmod(float(time) * 60, 60))
class IrHttp(models.AbstractModel):
"""
Extends the 'ir.http' model to customize session information for the
web client.
"""
_inherit = 'ir.http'
def session_info(self):
"""
Overrides the default session_info method to customize session
information based on user preferences.
Returns:
- dict: A dictionary containing session information customized for
the current user.
"""
res = super(IrHttp, self).session_info()
get_param = self.env['ir.config_parameter'].sudo().get_param
if self.env.user.has_group('base.group_user'):
user_edit = get_param(
'backend_theme_infinito.is_user_edit', default=False)
res['userEdit'] = user_edit
if user_edit:
res['sidebar'] = self.env.user.is_sidebar_enabled
res['fullscreen'] = self.env.user.is_fullscreen_enabled
res['sidebarIcon'] = self.env.user.is_sidebar_icon
res['sidebarName'] = self.env.user.is_sidebar_name
res['sidebarCompany'] = self.env.user.is_sidebar_company
res['sidebarUser'] = self.env.user.is_sidebar_user
res['recentApps'] = self.env.user.is_recent_apps
res['fullScreenApp'] = self.env.user.is_fullscreen_app
res['infinitoRtl'] = self.env.user.is_rtl
res['infinitoDark'] = self.env.user.is_dark
res['infinitoDarkMode'] = self.env.user.dark_mode
res['infinitoDarkStart'] = float_to_time(
self.env.user.dark_start)
res['infinitoDarkEnd'] = float_to_time(self.env.user.dark_end)
res['infinitoBookmark'] = self.env.user.is_menu_bookmark
res['loaderClass'] = self.env.user.loader_class
else:
res['sidebar'] = get_param(
'backend_theme_infinito.is_sidebar_enabled', default=False)
res['fullscreen'] = get_param(
'backend_theme_infinito.is_fullscreen_enabled',
default=False)
res['sidebarIcon'] = get_param(
'backend_theme_infinito.is_sidebar_icon', default=False)
res['sidebarName'] = get_param(
'backend_theme_infinito.is_sidebar_name', default=False)
res['sidebarCompany'] = get_param(
'backend_theme_infinito.is_sidebar_company', default=False)
res['sidebarUser'] = get_param(
'backend_theme_infinito.is_sidebar_user', default=False)
res['recentApps'] = get_param(
'backend_theme_infinito.is_recent_apps', default=False)
res['fullScreenApp'] = get_param(
'backend_theme_infinito.is_fullscreen_app', default=False)
res['infinitoRtl'] = get_param(
'backend_theme_infinito.is_rtl', default=False)
res['infinitoDark'] = get_param(
'backend_theme_infinito.is_dark', default=False)
res['infinitoDarkMode'] = get_param(
'backend_theme_infinito.dark_mode', default=False)
res['infinitoDarkStart'] = float_to_time(get_param(
'backend_theme_infinito.dark_start', default=19.0))
res['infinitoDarkEnd'] = float_to_time(get_param(
'backend_theme_infinito.dark_end', default=5.0))
res['infinitoBookmark'] = get_param(
'backend_theme_infinito.is_menu_bookmark', default=False)
res['loaderClass'] = get_param(
'backend_theme_infinito.loader_class', default=False)
menu_bookmark = self.env['infinito.menu.bookmark'].sudo(). \
search([('user_id', '=', self.env.user.id)])
list_bookmark = []
for bookmark in menu_bookmark:
bkm = bookmark.read(['action_id', 'url', 'name'])[0]
bkm['short_name'] = bkm['name'][:2].upper()
list_bookmark.append(bkm)
res['infinitoBookmarks'] = menu_bookmark.action_id.ids
res['infinitoMenuBookmarks'] = list_bookmark
return res