diff --git a/category.py b/category.py index da7a2ec30a..0c98371488 100644 --- a/category.py +++ b/category.py @@ -1,11 +1,11 @@ # 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.model import ModelView, ModelSQL, fields, tree __all__ = ['Category'] -class Category(ModelSQL, ModelView): +class Category(tree(separator=' / '), ModelSQL, ModelView): "Product Category" __name__ = "product.category" name = fields.Char('Name', required=True, translate=True) @@ -17,29 +17,3 @@ class Category(ModelSQL, ModelView): def __setup__(cls): super(Category, cls).__setup__() cls._order.insert(0, ('name', 'ASC')) - - @classmethod - def validate(cls, categories): - super(Category, cls).validate(categories) - cls.check_recursion(categories, rec_name='name') - - def get_rec_name(self, name): - if self.parent: - return self.parent.get_rec_name(name) + ' / ' + self.name - else: - return self.name - - @classmethod - def search_rec_name(cls, name, clause): - if isinstance(clause[2], basestring): - values = clause[2].split('/') - values.reverse() - domain = [] - field = 'name' - for name in values: - domain.append((field, clause[1], name.strip())) - field = 'parent.' + field - else: - domain = [('name',) + tuple(clause[1:])] - ids = [w.id for w in cls.search(domain, order=[])] - return [('parent', 'child_of', ids)]