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
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
|
|
|