diff --git a/addons/idea/idea.py b/addons/idea/idea.py index deda3ab1350..04ae4dff5df 100644 --- a/addons/idea/idea.py +++ b/addons/idea/idea.py @@ -31,11 +31,28 @@ DefaultVoteValue = '50' class idea_category(osv.osv): """ Category of Idea """ + def name_get(self, cr, uid, ids, context=None): + if not len(ids): + return [] + reads = self.read(cr, uid, ids, ['name','parent_id'], context=context) + res = [] + for record in reads: + name = record['name'] + if record['parent_id']: + name = record['parent_id'][1]+' / '+name + res.append((record['id'], name)) + return res + + def _categ_name_get_fnc(self, cr, uid, ids, prop, unknow_none, context=None): + res = self.name_get(cr, uid, ids, context=context) + return dict(res) + _name = "idea.category" _description = "Idea Category" _columns = { 'name': fields.char('Category', size=64, required=True), + 'complete_name': fields.function(_categ_name_get_fnc, method=True, type="char", string='Name'), 'summary': fields.text('Summary'), 'parent_id': fields.many2one('idea.category', 'Parent Categories', ondelete='set null'), 'child_ids': fields.one2many('idea.category', 'parent_id', 'Child Categories'), @@ -46,6 +63,10 @@ class idea_category(osv.osv): ] _order = 'parent_id,name asc' + _constraints = [ + (osv.osv._check_recursion, 'Error ! You can not create recursive categories.', ['parent_id']) + ] + idea_category() class idea_idea(osv.osv): diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml index 493fda2c01f..e4cfa4efbe7 100644 --- a/addons/idea/idea_view.xml +++ b/addons/idea/idea_view.xml @@ -46,7 +46,7 @@ child_ids - + @@ -234,11 +234,11 @@ - + - +