64 lines
1.9 KiB
Python
Executable File
64 lines
1.9 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.model import ModelSQL, fields
|
|
from trytond.pool import Pool
|
|
|
|
|
|
class Selection(ModelSQL):
|
|
'Selection'
|
|
__name__ = 'test.selection'
|
|
select = fields.Selection([
|
|
('', ''), ('arabic', 'Arabic'), ('hexa', 'Hexadecimal')],
|
|
'Selection')
|
|
select_string = select.translated('select')
|
|
dyn_select = fields.Selection('get_selection',
|
|
'Instance Dynamic Selection')
|
|
dyn_select_string = dyn_select.translated('dyn_select')
|
|
dyn_select_static = fields.Selection('static_selection',
|
|
'Static Selection')
|
|
dyn_select_static_string = dyn_select_static.translated(
|
|
'dyn_select_static')
|
|
unsorted_select = fields.Selection([
|
|
(None, ""),
|
|
('first', "First"),
|
|
('second', "Second"),
|
|
('last', "Last"),
|
|
], "Unsorted Selection", sort=False)
|
|
|
|
@fields.depends('select')
|
|
def get_selection(self):
|
|
if self.select == 'arabic':
|
|
return [('', '')] + [(str(i), str(i)) for i in range(1, 11)]
|
|
else:
|
|
return [('', '')] + [(hex(i), hex(i)) for i in range(1, 11)]
|
|
|
|
@staticmethod
|
|
def static_selection():
|
|
return [('', '')] + [(str(i), str(i)) for i in range(1, 11)]
|
|
|
|
|
|
class SelectionRequired(ModelSQL):
|
|
'Selection Required'
|
|
__name__ = 'test.selection_required'
|
|
select = fields.Selection([('arabic', 'Arabic'), ('latin', 'Latin')],
|
|
'Selection', required=True)
|
|
|
|
|
|
class SelectionLabel(ModelSQL):
|
|
"Selection with different label"
|
|
__name__ = 'test.selection_label'
|
|
select = fields.Selection([
|
|
('a', "Z"),
|
|
('b', "Y"),
|
|
('c', "X"),
|
|
], "Selection")
|
|
|
|
|
|
def register(module):
|
|
Pool.register(
|
|
Selection,
|
|
SelectionRequired,
|
|
SelectionLabel,
|
|
module=module, type_='model')
|