Files
tryton/trytond/tests/modelview.py
T
2019-11-16 14:34:29 +01:00

156 lines
4.2 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.pool import Pool
class ModelViewChangedValues(ModelView):
'ModelView Changed Values'
__name__ = 'test.modelview.changed_values'
name = fields.Char('Name')
target = fields.Many2One('test.modelview.changed_values.target', 'Target')
stored_target = fields.Many2One(
'test.modelview.changed_values.stored_target', "Stored Target")
ref_target = fields.Reference('Target Reference', [
('test.modelview.changed_values.target', 'Target'),
])
targets = fields.One2Many('test.modelview.changed_values.target', 'parent',
'Targets')
m2m_targets = fields.Many2Many('test.modelview.changed_values.target',
None, None, 'Targets')
class ModelViewChangedValuesTarget(ModelView):
'ModelView Changed Values Target'
__name__ = 'test.modelview.changed_values.target'
name = fields.Char('Name')
parent = fields.Many2One('test.modelview.changed_values', 'Parent')
class ModelViewChangedValuesStoredTarget(ModelSQL):
"ModelSQL Changed Values Target"
__name__ = 'test.modelview.changed_values.stored_target'
name = fields.Char("Name")
class ModelViewButton(ModelView):
'ModelView Button'
__name__ = 'test.modelview.button'
value = fields.Integer("Value")
@classmethod
def __setup__(cls):
super(ModelViewButton, cls).__setup__()
cls._buttons = {
'test': {},
}
@classmethod
@ModelView.button
def test(cls, records):
cls.test_non_decorated(records)
@classmethod
def test_non_decorated(cls, records):
pass
class ModelViewButtonDepends(ModelView):
'ModelView Button Depends'
__name__ = 'test.modelview.button_depends'
value = fields.Integer("Value")
@classmethod
def __setup__(cls):
super(ModelViewButtonDepends, cls).__setup__()
cls._buttons = {
'test': {
'depends': ['value'],
},
}
@classmethod
@ModelView.button
def test(cls, records):
pass
class ModelViewRPC(ModelView):
'ModelView RPC'
__name__ = 'test.modelview.rpc'
selection = fields.Selection([('a', 'A')], 'Selection')
computed_selection = fields.Selection(
'get_selection', 'Computed Selection')
function_selection = fields.Function(
fields.Selection('get_function_selection', 'Function Selection'),
'function_selection_getter')
reference = fields.Reference('Reference', selection=[('a', 'A')])
computed_reference = fields.Reference(
'Computed reference', selection='get_reference')
function_reference = fields.Function(
fields.Reference('Function Reference',
selection='get_function_reference'),
'function_reference_getter')
integer = fields.Integer('Integer')
float = fields.Float('Float')
char = fields.Char('Char')
@fields.depends('selection')
def on_change_with_integer(self):
pass
@fields.depends('reference')
def on_change_float(self):
pass
@fields.depends('integer')
def autocomplete_char(self):
pass
@classmethod
def get_selection(cls):
pass
@classmethod
def get_function_selection(cls):
pass
@classmethod
def get_reference(cls):
pass
@classmethod
def get_function_reference(cls):
pass
class ModelViewEmptyPage(ModelView):
'ModelView Empty Page'
__name__ = 'test.modelview.empty_page'
class ModelViewCircularDepends(ModelView):
'ModelView Circular Depends'
__name__ = 'test.modelview.circular_depends'
foo = fields.Char("Char", depends=['bar'])
bar = fields.Char("Char", depends=['foobar'])
foobar = fields.Char("Char", depends=['foo'])
def register(module):
Pool.register(
ModelViewChangedValues,
ModelViewChangedValuesTarget,
ModelViewChangedValuesStoredTarget,
ModelViewButton,
ModelViewButtonDepends,
ModelViewRPC,
ModelViewEmptyPage,
ModelViewCircularDepends,
module=module, type_='model')