Use tree mixin

issue7383
This commit is contained in:
Raimon Esteve 2019-05-03 13:19:21 +02:00
parent f7fc4c9c96
commit bb36fe7364
1 changed files with 2 additions and 29 deletions

31
menu.py
View File

@ -1,17 +1,16 @@
# This file is part product_esale module for 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
from trytond.pool import Pool
from .tools import slugify
from trytond.i18n import gettext
from trytond.exceptions import UserError
__all__ = ['CatalogMenu']
class CatalogMenu(ModelSQL, ModelView):
class CatalogMenu(tree(separator=' / '), ModelSQL, ModelView):
"eSale Catalog Menu"
__name__ = 'esale.catalog.menu'
@ -57,11 +56,6 @@ class CatalogMenu(ModelSQL, ModelView):
super(CatalogMenu, cls).__setup__()
cls._order.insert(0, ('name', 'ASC'))
@classmethod
def validate(cls, menus):
super(CatalogMenu, cls).validate(menus)
cls.check_recursion(menus, rec_name='name')
@classmethod
def copy(cls, menus, default=None):
raise UserError(gettext('product_esale.not_copy'))
@ -72,27 +66,6 @@ class CatalogMenu(ModelSQL, ModelView):
else:
return self.slug
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)]
@classmethod
def get_topmenu(cls, parent):
"""Get Top Menu