Source code for import_validation

from openerp.osv import orm
import logging
import psycopg2

_logger = logging.getLogger(__name__)


[docs]class ir_import_extension(orm.TransientModel): _name = 'base_import.import' _inherit = 'base_import.import'
[docs] def do(self, cr, uid, id, fields, options, dryrun=False, context=None): cr.execute('SAVEPOINT import') (record,) = self.browse(cr, uid, [id], context=context) try: data, import_fields = self._convert_import_data( record, fields, options, context=context) except ValueError, e: return [{ 'type': 'error', 'message': unicode(e), 'record': False, }] _logger.info('importing %d rows...', len(data)) context['dateformat'] = options.get('dateformat') import_result = self.pool[record.res_model].load( cr, uid, import_fields, data, context=context) _logger.info('done') try: if dryrun: cr.execute('ROLLBACK TO SAVEPOINT import') else: cr.execute('RELEASE SAVEPOINT import') except psycopg2.InternalError: pass return import_result['messages']