~credativ/openobject-server/7.0-csv-import-domain

« back to all changes in this revision

Viewing changes to openerp/addons/base/ir/ir_fields.py

  • Committer: Craig Gowing (credativ)
  • Date: 2014-04-23 09:43:19 UTC
  • Revision ID: craig.gowing@credativ.co.uk-20140423094319-k3kijf3ao4d04pwz
[IMP] Allow domain searches on CSV import

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
from openerp.tools.misc import DEFAULT_SERVER_DATE_FORMAT,\
14
14
                               DEFAULT_SERVER_DATETIME_FORMAT
15
15
from openerp.tools import html_sanitize
 
16
from openerp.tools.safe_eval import safe_eval as eval
16
17
 
17
 
REFERENCING_FIELDS = set([None, 'id', '.id'])
 
18
REFERENCING_FIELDS = set([None, 'id', '.id', '.domain'])
18
19
def only_ref_fields(record):
19
20
    return dict((k, v) for k, v in record.iteritems()
20
21
                if k in REFERENCING_FIELDS)
334
335
                        _(u"Found multiple matches for field '%%(field)s' (%d matches)")
335
336
                        % (len(ids))))
336
337
                id, _name = ids[0]
 
338
        elif subfield == '.domain':
 
339
            field_type = _(u"domain")
 
340
            try:
 
341
                ids = RelatedModel.search(cr, uid, eval(value), context=context)
 
342
                if ids:
 
343
                    id = ids[0]
 
344
            except ValueError:
 
345
                raise ValueError(
 
346
                    _(u"Invalid domain '%s'") % value, {'moreinfo': action})
337
347
        else:
338
348
            raise Exception(_(u"Unknown sub-field '%s'") % subfield)
339
349