From fa18530210fc1763ce7d20768cde1e640c5882b0 Mon Sep 17 00:00:00 2001 From: Sylvain Calador Date: Tue, 7 Apr 2015 16:58:15 +0200 Subject: [PATCH] [REF] Add a hook for import fake fields Used during records extraction phase of import (CSV) closes #6188 --- openerp/models.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openerp/models.py b/openerp/models.py index 65ab229ab8c..3be038d3dc7 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -1093,6 +1093,13 @@ class BaseModel(object): ids = False return {'ids': ids, 'messages': messages} + def _add_fake_fields(self, cr, uid, fields, context=None): + from openerp.fields import Char, Integer + fields[None] = Char('rec_name') + fields['id'] = Char('External ID') + fields['.id'] = Integer('Database ID') + return fields + def _extract_records(self, cr, uid, fields_, data, context=None, log=lambda a: None): """ Generates record dicts from the data sequence. @@ -1108,13 +1115,9 @@ class BaseModel(object): * "id" is the External ID for the record * ".id" is the Database ID for the record """ - from openerp.fields import Char, Integer fields = dict(self._fields) # Fake fields to avoid special cases in extractor - fields[None] = Char('rec_name') - fields['id'] = Char('External ID') - fields['.id'] = Integer('Database ID') - + fields = self._add_fake_fields(cr, uid, fields, context=context) # m2o fields can't be on multiple lines so exclude them from the # is_relational field rows filter, but special-case it later on to # be handled with relational fields (as it can have subfields)