Initial import from Docker volume
This commit is contained in:
89
tests/multivalue.py
Executable file
89
tests/multivalue.py
Executable file
@@ -0,0 +1,89 @@
|
||||
# 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, MultiValueMixin, ValueMixin, fields
|
||||
from trytond.pool import Pool
|
||||
|
||||
|
||||
class ModelMultiValue(ModelSQL, MultiValueMixin):
|
||||
"Model MultiValue"
|
||||
__name__ = 'test.model_multivalue'
|
||||
value = fields.MultiValue(fields.Char("Value"))
|
||||
value_default = fields.MultiValue(fields.Char("Value Default"))
|
||||
value_many2one = fields.MultiValue(
|
||||
fields.Many2One('test.model_multivalue.target', "Value Many2One"))
|
||||
value_multiselection = fields.MultiValue(
|
||||
fields.MultiSelection([
|
||||
('foo', "Foo"),
|
||||
('bar', "Bar"),
|
||||
], "Value Multi Selection"))
|
||||
value_reference = fields.MultiValue(
|
||||
fields.Reference(
|
||||
"Value Reference",
|
||||
selection=[
|
||||
(None, ""),
|
||||
('test.model_multivalue.target', "Target"),
|
||||
]))
|
||||
values = fields.One2Many(
|
||||
'test.model_multivalue.value', 'record', "Values")
|
||||
|
||||
@classmethod
|
||||
def multivalue_model(cls, field):
|
||||
pool = Pool()
|
||||
multivalue_fields = {
|
||||
'value',
|
||||
'value_default',
|
||||
'value_many2one',
|
||||
'value_multiselection',
|
||||
'value_reference'
|
||||
}
|
||||
if field in multivalue_fields:
|
||||
return pool.get('test.model_multivalue.value')
|
||||
return super().multivalue_model(field)
|
||||
|
||||
@classmethod
|
||||
def default_value(cls, **pattern):
|
||||
return "default"
|
||||
|
||||
@classmethod
|
||||
def default_value_default(cls, **pattern):
|
||||
return "other default"
|
||||
|
||||
@classmethod
|
||||
def default_value_multiselection(cls, **pattern):
|
||||
return ('foo',)
|
||||
|
||||
|
||||
class ModelValue(ModelSQL, ValueMixin):
|
||||
"Model Value"
|
||||
__name__ = 'test.model_multivalue.value'
|
||||
record = fields.Many2One(
|
||||
'test.model_multivalue', "Record")
|
||||
condition = fields.Char("Condition")
|
||||
value = fields.Char("Value")
|
||||
value_default = fields.Char("Value Default")
|
||||
value_many2one = fields.Many2One(
|
||||
'test.model_multivalue.target', "Value Many2One")
|
||||
value_multiselection = fields.MultiSelection([
|
||||
('foo', "Foo"),
|
||||
('bar', "Bar"),
|
||||
], "Value Multi Selection")
|
||||
value_reference = fields.Reference(
|
||||
"Value Reference",
|
||||
selection=[
|
||||
(None, ""),
|
||||
('test.model_multivalue.target', "Target"),
|
||||
])
|
||||
|
||||
|
||||
class ModelMultiValueTarget(ModelSQL):
|
||||
"Model MultiValue Target"
|
||||
__name__ = 'test.model_multivalue.target'
|
||||
name = fields.Char("Name")
|
||||
|
||||
|
||||
def register(module):
|
||||
Pool.register(
|
||||
ModelMultiValue,
|
||||
ModelValue,
|
||||
ModelMultiValueTarget,
|
||||
module=module, type_='model')
|
||||
Reference in New Issue
Block a user