106 lines
2.8 KiB
Python
Executable File
106 lines
2.8 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 DeactivableMixin, ModelSQL, ModelStorage, fields
|
|
from trytond.pool import Pool
|
|
from trytond.transaction import Transaction
|
|
|
|
|
|
class Many2OneTarget(DeactivableMixin, ModelSQL):
|
|
"Many2One Domain Validation Target"
|
|
__name__ = 'test.many2one_target'
|
|
_order_name = 'value'
|
|
|
|
value = fields.Integer('Value')
|
|
|
|
|
|
class Many2One(ModelSQL):
|
|
"Many2One"
|
|
__name__ = 'test.many2one'
|
|
many2one = fields.Many2One('test.many2one_target', 'many2one')
|
|
|
|
|
|
class Many2OneDomainValidation(ModelSQL):
|
|
"Many2One Domain Validation"
|
|
__name__ = 'test.many2one_domainvalidation'
|
|
many2one = fields.Many2One('test.many2one_target',
|
|
'many2one',
|
|
domain=[
|
|
('value', '>', 5),
|
|
])
|
|
dummy = fields.Char('Dummy')
|
|
|
|
|
|
class Many2OneNoForeignKey(ModelSQL):
|
|
"Many2One No Foreign Key"
|
|
__name__ = 'test.many2one_no_foreign_key'
|
|
many2one = fields.Many2One('test.many2one_target_storage', 'many2one')
|
|
|
|
|
|
class Many2OneTargetStorage(ModelStorage):
|
|
"Many2One Target Storage"
|
|
__name__ = 'test.many2one_target_storage'
|
|
|
|
|
|
class Many2OneTree(ModelSQL):
|
|
'Many2One Tree'
|
|
__name__ = 'test.many2one_tree'
|
|
many2one = fields.Many2One('test.many2one_tree', 'many2one')
|
|
|
|
|
|
class Many2OneMPTT(ModelSQL):
|
|
'Many2One MPTT'
|
|
__name__ = 'test.many2one_mptt'
|
|
many2one = fields.Many2One('test.many2one_mptt', 'many2one',
|
|
left='left', right='right')
|
|
left = fields.Integer('Left', required=True)
|
|
right = fields.Integer('Right', required=True)
|
|
|
|
@classmethod
|
|
def default_left(cls):
|
|
return 0
|
|
|
|
@classmethod
|
|
def default_right(cls):
|
|
return 0
|
|
|
|
|
|
class Many2OnePath(ModelSQL):
|
|
"Many2One Path"
|
|
__name__ = 'test.many2one_path'
|
|
many2one = fields.Many2One('test.many2one_path', 'many2one', path='path')
|
|
path = fields.Char("Path")
|
|
|
|
|
|
class Many2OneContext(ModelSQL):
|
|
"Many2One Context"
|
|
__name__ = 'test.many2one_context'
|
|
target = fields.Many2One(
|
|
'test.many2one_context.target', "target",
|
|
context={'test': 'foo'})
|
|
|
|
|
|
class Many2OneTargetContext(ModelSQL):
|
|
"Many2One Target Context"
|
|
__name__ = 'test.many2one_context.target'
|
|
context = fields.Function(fields.Char("context"), 'get_context')
|
|
|
|
def get_context(self, name):
|
|
context = Transaction().context
|
|
return context.get('test')
|
|
|
|
|
|
def register(module):
|
|
Pool.register(
|
|
Many2OneTarget,
|
|
Many2One,
|
|
Many2OneDomainValidation,
|
|
Many2OneNoForeignKey,
|
|
Many2OneTargetStorage,
|
|
Many2OneTree,
|
|
Many2OneMPTT,
|
|
Many2OnePath,
|
|
Many2OneContext,
|
|
Many2OneTargetContext,
|
|
module=module, type_='model')
|