Initial import from Docker volume
This commit is contained in:
67
ir/calendar_.py
Executable file
67
ir/calendar_.py
Executable file
@@ -0,0 +1,67 @@
|
||||
# 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.model import ModelSQL, Unique, fields
|
||||
from trytond.rpc import RPC
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
|
||||
class _Calendar(ModelSQL):
|
||||
_order_name = 'index'
|
||||
index = fields.Integer("Index", required=True)
|
||||
name = fields.Char("Name", required=True, translate=True)
|
||||
abbreviation = fields.Char("Abbreviation", required=True, translate=True)
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
t = cls.__table__()
|
||||
cls.__rpc__.update({
|
||||
'read': RPC(),
|
||||
'search': RPC(),
|
||||
'search_count': RPC(),
|
||||
'search_read': RPC(),
|
||||
})
|
||||
cls.index.domain = [
|
||||
('index', '>=', cls._min_index),
|
||||
('index', '<=', cls._max_index),
|
||||
]
|
||||
cls._order = [('index', 'ASC')]
|
||||
cls._sql_constraints = [
|
||||
('index_unique', Unique(t, t.index),
|
||||
"The index must by unique.")
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def locale(cls, language=None, field='name'):
|
||||
transaction = Transaction()
|
||||
if language is None:
|
||||
language = transaction.language
|
||||
elif isinstance(language, ModelSQL):
|
||||
language = language.code
|
||||
key = (language, field)
|
||||
result = cls._cache_locale.get(key)
|
||||
if not result:
|
||||
with transaction.set_context(language=language):
|
||||
records = cls.search([])
|
||||
result = [None] * cls._min_index
|
||||
result += [getattr(r, field) for r in records]
|
||||
cls._cache_locale.set(key, result)
|
||||
return result
|
||||
|
||||
|
||||
class Month(_Calendar):
|
||||
"Month"
|
||||
__name__ = 'ir.calendar.month'
|
||||
_min_index = 1
|
||||
_max_index = 12
|
||||
_cache_locale = Cache('ir.calendar.month')
|
||||
|
||||
|
||||
class Day(_Calendar):
|
||||
"Day"
|
||||
__name__ = 'ir.calendar.day'
|
||||
_min_index = 0
|
||||
_max_index = 6
|
||||
_cache_locale = Cache('ir.calendar.day')
|
||||
Reference in New Issue
Block a user