Files
gzth/anita_theme_setting/models/anita_res_setting.py
T
2024-06-20 13:39:24 +08:00

110 lines
3.2 KiB
Python

# -*- coding: utf-8 -*-
from odoo import api, fields, models
import base64
from odoo.tools.mimetypes import guess_mimetype
from datetime import date, datetime
class AnitaUserSetting(models.TransientModel):
'''
anita user setting
'''
_inherit = 'res.config.settings'
theme_setting_mode = fields.Selection(
string="theme style mode",
config_parameter="anita_theme_setting.theme_setting_mode",
selection=[('system', 'system'),
('company', 'company'),
('user', 'user')],
default='system')
allow_debug = fields.Boolean(
string="allow debug",
config_parameter="anita_theme_setting.allow_debug",
default=False)
window_default_title = fields.Char(
string="login title",
config_parameter="anita_theme_setting.window_default_title",
default="Odoo")
powered_by = fields.Char(
string="powered by",
config_parameter="anita_theme_setting.powered_by",
default="Odoo")
@api.model
def get_theme_setting_mode(self):
'''
get theme setting mode
:return:
'''
config = self.env['ir.config_parameter'].sudo()
theme_setting_mode = config.get_param(
key='anita_theme_setting.theme_setting_mode', default='system')
return theme_setting_mode
def set_values_company_favicon(self):
'''
set the favicon of company
:return:
'''
company = self.sudo().env['res.company']
records = company.search([])
if len(records) > 0:
for record in records:
record.write({'favicon': self._set_web_favicon(original=True)})
return {
'type': 'ir.actions.client',
'tag': 'reload',
}
@api.model
def get_login_style(self):
'''
get login style
:return:
'''
ir_config = self.env['ir.config_parameter'].sudo()
login_style = ir_config.get_param(
key='anita_theme_setting.login_style', default='login_style1')
return login_style
def get_setting_record(self):
'''
get setting record
:return:
'''
record = self.env['anita_theme_setting.setting_base'].search([('owner', '=', False)], limit=1)
if not record:
record = self.env['anita_theme_setting.setting_base'].create({'owner': False})
return record
@api.model
def save_theme_setting(self, settings):
"""
save settings
"""
record = self.get_setting_record()
record.write(settings)
@api.model
def get_theme_setting(self):
"""
get theme settings
"""
record = self.get_setting_record()
result = record.read()[0]
result["current_theme_mode"] = record.current_theme_mode.id
result["current_theme_style"] = record.current_theme_style.id
for key, item in result.items():
if isinstance(item, datetime):
result[key] = fields.Datetime.to_string(item)
if isinstance(item, date):
result[key] = fields.Date.to_string(item)
return result