~openerp-dev/openobject-server/7.0-mail_issues-adh-1168376

« back to all changes in this revision

Viewing changes to openerp/osv/orm.py

  • Committer: Olivier Dony
  • Date: 2014-04-07 10:57:40 UTC
  • Revision ID: odo@openerp.com-20140407105740-elbz311w5u9e8eos
[FIX] browse()/browse_record: use iterables instead of forcing lists when constructing browse_lists

This allows iterable list_class implementations

Show diffs side-by-side

added added

removed removed

Lines of Context:
466
466
                        else:
467
467
                            new_data[field_name] = browse_null()
468
468
                    elif field_column._type in ('one2many', 'many2many') and len(result_line[field_name]):
469
 
                        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)
 
469
                        new_data[field_name] = self._list_class(
 
470
                            (browse_record(self._cr, self._uid, id, self._table.pool.get(field_column._obj),
 
471
                                           self._cache, context=self._context, list_class=self._list_class,
 
472
                                           fields_process=self._fields_process)
 
473
                               for id in result_line[field_name]),
 
474
                            context=self._context)
470
475
                    elif field_column._type == 'reference':
471
476
                        if result_line[field_name]:
472
477
                            if isinstance(result_line[field_name], browse_record):
4579
4584
        if isinstance(select, (int, long)):
4580
4585
            return browse_record(cr, uid, select, self, cache, context=context, list_class=self._list_class, fields_process=fields_process)
4581
4586
        elif isinstance(select, list):
4582
 
            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)
 
4587
            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)
4583
4588
        else:
4584
4589
            return browse_null()
4585
4590