diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-04-01 12:59:20 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-04-01 13:22:11 +0200 |
| commit | f18b46fcded8a7bacda291436f1b60774cb4ba0c (patch) | |
| tree | 968877b695bd06804410ba0718324a4e975ee40f /addons/base_import/models.py | |
| parent | fe31451899ea84fbffe1bc17d7f41ec10a8d786a (diff) | |
[FIX] base_import: ignore stripped empty lines
Better fix for commit dab37df04d7f2ef1dc8ab6be491693294dea949b
Diffstat (limited to 'addons/base_import/models.py')
| -rw-r--r-- | addons/base_import/models.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/addons/base_import/models.py b/addons/base_import/models.py index 80ee8fef595..9778391521a 100644 --- a/addons/base_import/models.py +++ b/addons/base_import/models.py @@ -136,7 +136,11 @@ class ir_import(orm.TransientModel): StringIO(record.file), quotechar=str(options['quoting']), delimiter=str(options['separator'])) - csv_nonempty = itertools.ifilter(None, csv_iterator) + + def nonempty(row): + return any(x for x in row if x.strip()) + + csv_nonempty = itertools.ifilter(nonempty, csv_iterator) # TODO: guess encoding with chardet? Or https://github.com/aadsm/jschardet encoding = options.get('encoding', 'utf-8') return itertools.imap( @@ -280,13 +284,13 @@ class ir_import(orm.TransientModel): if options.get('headers'): rows_to_import = itertools.islice( rows_to_import, 1, None) - - data = [] - for row in rows_to_import: + data = [ + row for row in itertools.imap(mapper, rows_to_import) # don't try inserting completely empty rows (e.g. from - # filtering out o2m fields - if any(f.strip() for f in row): - data.append(mapper(row)) + # filtering out o2m fields) + if any(row) + ] + return data, import_fields def do(self, cr, uid, id, fields, options, dryrun=False, context=None): |
