[FIX] browse()/browse_record: use iterables instead of forcing lists when constructing browse_lists
This allows iterable list_class implementations bzr revid: odo@openerp.com-20140407105740-elbz311w5u9e8eos
This commit is contained in:
parent
5be8fc620e
commit
5be9e5612f
|
@ -466,7 +466,12 @@ class browse_record(object):
|
||||||
else:
|
else:
|
||||||
new_data[field_name] = browse_null()
|
new_data[field_name] = browse_null()
|
||||||
elif field_column._type in ('one2many', 'many2many') and len(result_line[field_name]):
|
elif field_column._type in ('one2many', 'many2many') and len(result_line[field_name]):
|
||||||
new_data[field_name] = self._list_class([browse_record(self._cr, self._uid, id, self._table.pool.get(field_column._obj), self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process) for id in result_line[field_name]], self._context)
|
new_data[field_name] = self._list_class(
|
||||||
|
(browse_record(self._cr, self._uid, id, self._table.pool.get(field_column._obj),
|
||||||
|
self._cache, context=self._context, list_class=self._list_class,
|
||||||
|
fields_process=self._fields_process)
|
||||||
|
for id in result_line[field_name]),
|
||||||
|
context=self._context)
|
||||||
elif field_column._type == 'reference':
|
elif field_column._type == 'reference':
|
||||||
if result_line[field_name]:
|
if result_line[field_name]:
|
||||||
if isinstance(result_line[field_name], browse_record):
|
if isinstance(result_line[field_name], browse_record):
|
||||||
|
@ -4579,7 +4584,7 @@ class BaseModel(object):
|
||||||
if isinstance(select, (int, long)):
|
if isinstance(select, (int, long)):
|
||||||
return browse_record(cr, uid, select, self, cache, context=context, list_class=self._list_class, fields_process=fields_process)
|
return browse_record(cr, uid, select, self, cache, context=context, list_class=self._list_class, fields_process=fields_process)
|
||||||
elif isinstance(select, list):
|
elif isinstance(select, list):
|
||||||
return self._list_class([browse_record(cr, uid, id, self, cache, context=context, list_class=self._list_class, fields_process=fields_process) for id in select], context=context)
|
return self._list_class((browse_record(cr, uid, id, self, cache, context=context, list_class=self._list_class, fields_process=fields_process) for id in select), context=context)
|
||||||
else:
|
else:
|
||||||
return browse_null()
|
return browse_null()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue