diff --git a/trytond/ir/configuration.py b/trytond/ir/configuration.py index 2dd408e93f..ecdda9b23b 100644 --- a/trytond/ir/configuration.py +++ b/trytond/ir/configuration.py @@ -31,3 +31,19 @@ class Configuration(ModelSingleton, ModelSQL): 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() diff --git a/trytond/tests/test_modelsql.py b/trytond/tests/test_modelsql.py index cccc8174e4..cadda219aa 100644 --- a/trytond/tests/test_modelsql.py +++ b/trytond/tests/test_modelsql.py @@ -555,6 +555,32 @@ class ModelSQLTranslationTestCase(unittest.TestCase): Transaction().commit() + @classmethod + def tearDownClass(cls): + super().tearDownClass() + cls.restore_language() + + @classmethod + @with_transaction() + def restore_language(cls): + pool = Pool() + Language = pool.get('ir.lang') + Configuration = pool.get('ir.configuration') + + english, = Language.search([('code', '=', 'en')]) + english.translatable = True + english.save() + + config = Configuration(1) + config.language = 'en' + config.save() + + Language.write(Language.search([('code', '!=', 'en')]), { + 'translatable': False, + }) + + Transaction().commit() + @with_transaction() def test_create_default_language(self): "Test create default language"