Files
tradon/tests/mptt.py
2025-12-26 13:11:43 +00:00

38 lines
1.1 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.
"Test for Tree"
from sql import Null
from sql.conditionals import Case
from trytond.model import DeactivableMixin, ModelSQL, ModelView, fields, tree
from trytond.pool import Pool
class MPTT(DeactivableMixin, tree(), ModelSQL, ModelView):
'Modified Preorder Tree Traversal'
__name__ = 'test.mptt'
name = fields.Char('Name', required=True)
parent = fields.Many2One('test.mptt', "Parent", left="left", right="right")
left = fields.Integer('Left', required=True)
right = fields.Integer('Right', required=True)
childs = fields.One2Many('test.mptt', 'parent', 'Children')
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
return [Case((table.sequence == Null, 0), else_=1), table.sequence]
@staticmethod
def default_left():
return 0
@staticmethod
def default_right():
return 0
def register(module):
Pool.register(
MPTT,
module=module, type_='model')