[FIX] models: improve implementation of _compute_display_name()
authorRaphael Collet <rco@openerp.com>
Mon, 15 Sep 2014 15:30:41 +0000 (17:30 +0200)
committerRaphael Collet <rco@openerp.com>
Tue, 16 Sep 2014 07:36:58 +0000 (09:36 +0200)
The method was expecting that name_get() returns complete and in-order values.
Because of this, some records in the recordset could end up without a value.

openerp/models.py

index f9a0ee3..31e9515 100644 (file)
@@ -1679,8 +1679,9 @@ class BaseModel(object):
 
     @api.depends(lambda self: (self._rec_name,) if self._rec_name else ())
     def _compute_display_name(self):
-        for i, got_name in enumerate(self.name_get()):
-            self[i].display_name = got_name[1]
+        names = dict(self.name_get())
+        for record in self:
+            record.display_name = names.get(record.id, False)
 
     @api.multi
     def name_get(self):