Files
tryton/trytond/ir/message.py
T
Cédric Krier e11a23deb2 Rationalize import path
We use absolute path when imported module is from a different context.
And we remove unnecessary __all__ definition.

issue9466
review323591002
2020-07-21 14:38:36 +02:00

47 lines
1.5 KiB
Python

# 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.model import ModelView, ModelSQL, fields
from trytond.cache import Cache
from trytond.pool import Pool
from trytond.transaction import Transaction
class Message(ModelSQL, ModelView):
"Message"
__name__ = "ir.message"
_message_cache = Cache('ir.message', size_limit=10240, context=False)
text = fields.Text("Text", required=True, translate=True)
@classmethod
def gettext(cls, *args, **variables):
pool = Pool()
ModelData = pool.get('ir.model.data')
module, message_id, language = args
key = (module, message_id, language)
text = cls._message_cache.get(key)
if text is None:
message_id = ModelData.get_id(module, message_id)
with Transaction().set_context(language=language):
message = cls(message_id)
text = message.text
cls._message_cache.set(key, text)
return text if not variables else text % variables
@classmethod
def write(cls, messages, values, *args):
super(Message, cls).write(messages, values, *args)
cls._message_cache.clear()
@classmethod
def delete(cls, messages):
super(Message, cls).delete(messages)
cls._message_cache.clear()
@classmethod
def search_rec_name(cls, name, clause):
return [('text',) + tuple(clause[1:])]