49 lines
1.4 KiB
Python
Executable File
49 lines
1.4 KiB
Python
Executable File
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
|
# this repository contains the full copyright notices and license terms.
|
|
from trytond.cache import Cache
|
|
from trytond.config import config
|
|
from trytond.model import ModelSingleton, ModelSQL, fields
|
|
|
|
|
|
class Configuration(ModelSingleton, ModelSQL):
|
|
'Configuration'
|
|
__name__ = 'ir.configuration'
|
|
language = fields.Char('language')
|
|
hostname = fields.Char("Hostname", strip=False)
|
|
_get_language_cache = Cache('ir_configuration.get_language')
|
|
|
|
@staticmethod
|
|
def default_language():
|
|
return config.get('database', 'language')
|
|
|
|
@classmethod
|
|
def get_language(cls):
|
|
language = cls._get_language_cache.get(None)
|
|
if language is not None:
|
|
return language
|
|
language = cls(1).language
|
|
if not language:
|
|
language = config.get('database', 'language')
|
|
cls._get_language_cache.set(None, language)
|
|
return language
|
|
|
|
def check(self):
|
|
"Check configuration coherence on pool initialisation"
|
|
pass
|
|
|
|
@classmethod
|
|
def create(cls, vlist):
|
|
records = super().create(vlist)
|
|
cls._get_language_cache.clear()
|
|
return records
|
|
|
|
@classmethod
|
|
def write(cls, *args):
|
|
super().write(*args)
|
|
cls._get_language_cache.clear()
|
|
|
|
@classmethod
|
|
def delete(cls, records):
|
|
super().delete(records)
|
|
cls._get_language_cache.clear()
|