[FIX] the full name building of analytic accounts
authorAntonin Bourguignon <abo@openerp.com>
Wed, 24 Oct 2012 17:06:01 +0000 (19:06 +0200)
committerAntonin Bourguignon <abo@openerp.com>
Wed, 24 Oct 2012 17:06:01 +0000 (19:06 +0200)
bzr revid: abo@openerp.com-20121024170601-ccjc2mrhmgn8ydxy

addons/analytic/analytic.py

index 5ea8c59..11634dc 100644 (file)
@@ -96,9 +96,22 @@ class account_analytic_account(osv.osv):
                 res[row['id']][field] = row[field]
         return self._compute_level_tree(cr, uid, ids, child_ids, res, fields, context)
 
-    def _complete_name_calc(self, cr, uid, ids, prop, unknow_none, unknow_dict):
-        res = self.name_get(cr, uid, ids)
-        return dict(res)
+    def _get_full_name(self, cr, uid, ids, name=None, args=None, context=None):
+        if context == None:
+            context = {}
+        res = {}
+        for m in self.browse(cr, uid, ids, context=context):
+            res[m.id] = self._get_one_full_name(m)
+        return res
+
+    def _get_one_full_name(self, menu, level=6):
+        if level<=0:
+            return '...'
+        if menu.parent_id:
+            parent_path = self._get_one_full_name(menu.parent_id, level-1) + "/"
+        else:
+            parent_path = ''
+        return parent_path + menu.name
 
     def _child_compute(self, cr, uid, ids, name, arg, context=None):
         result = {}
@@ -139,7 +152,7 @@ class account_analytic_account(osv.osv):
 
     _columns = {
         'name': fields.char('Account/Contract Name', size=128, required=True),
-        'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
+        'complete_name': fields.function(_get_full_name, type='char', string='Full Account Name'),
         'code': fields.char('Reference', size=24, select=True),
         'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Project')], 'Type of Account', required=True,
                                  help="If you select the View Type, it means you won\'t allow to create journal entries using that account.\n"\