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