Files
tryton/category.py
T
2008-03-07 15:47:43 +01:00

53 lines
1.6 KiB
Python

from trytond.osv import fields, OSV
STATES = {
'readonly': "active == False",
}
class Category(OSV):
"Partner Category"
_name = "partner.category"
_description = __doc__
_order = 'parent,name'
_parent_name = 'parent'
name = fields.Char('Category Name', required=True, size=64,
states=STATES)
parent = fields.Many2One('partner.category', 'Parent Category',
select=1, states=STATES)
complete_name = fields.Function('get_complete_name',
type="char", string='Name', states=STATES)
childs = fields.One2Many('partner.category', 'parent',
'Childs Category', states=STATES)
active = fields.Boolean('Active')
def __init__(self):
super(Category, self).__init__()
self._constraints += [
('check_recursion',
'Error! You can not create recursive categories.', ['parent'])
]
def default_active(self, cursor, user, context=None):
return 1
def get_complete_name(self, cursor, user, obj_id, name, value, arg,
context=None):
res = self.name_get(cursor, user, ids, context)
return dict(res)
def name_get(self, cursor, user, ids, context=None):
if not len(ids):
return []
categories = self.browse(cursor, user, ids, context=context)
res = []
for category in categories:
if category.parent:
name = category.parent.name+' / '+ category.name
else:
name = category.name
res.append((category.id, name))
return res
Category()