110 lines
3.2 KiB
Python
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
|