diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index d44ddc62153..485e740e237 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -1913,9 +1913,9 @@ class Import(View): @openerpweb.httprequest def import_data(self, req, model, csvfile, csvsep, csvdel, csvcode, jsonp, meta): - modle_obj = req.session.model(model) - skip, indices, fields = operator.itemgetter('skip', 'indices', 'fields')( - simplejson.loads(meta)) + skip, indices, fields, context = \ + operator.itemgetter('skip', 'indices', 'fields', 'context')( + simplejson.loads(meta, object_hook=common.nonliterals.non_literal_decoder)) error = None if not (csvdel and len(csvdel) == 1): @@ -1965,9 +1965,9 @@ class Import(View): jsonp, simplejson.dumps({'error': {'message': error}})) try: - (code, record, message, _nope) = modle_obj.import_data( + (code, record, message, _nope) = req.session.model(model).import_data( fields, data, 'init', '', False, - req.session.eval_context(req.context)) + req.session.eval_context(context)) except xmlrpclib.Fault, e: error = {"message": u"%s, %s" % (e.faultCode, e.faultString)} return '' % ( diff --git a/addons/web/static/src/js/data_import.js b/addons/web/static/src/js/data_import.js index 3c4225d4c78..bac8628f019 100644 --- a/addons/web/static/src/js/data_import.js +++ b/addons/web/static/src/js/data_import.js @@ -40,6 +40,7 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ this.all_fields = []; this.fields_with_defaults = []; this.required_fields = null; + this.context = dataset.get_context(); var convert_fields = function (root, prefix) { prefix = prefix || ''; @@ -80,7 +81,8 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ this.$element.delegate('fieldset legend', 'click', function() { $(this).parent().toggleClass('oe-closed'); }); - this.ready.push(new openerp.web.DataSet(this, this.model).call( + this.ready.push(new openerp.web.DataSet( + this, this.model, this.context).call( 'fields_get', [], function (fields) { self.graft_fields(fields); self.ready.push(new openerp.web.DataSet(self, self.model) @@ -136,7 +138,7 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ case 'many2one': // push a copy for the bare many2one field, to allow importing // using name_search too - even if we default to exporting the XML ID - var many2one_field = _.extend({}, f) + var many2one_field = _.extend({}, f); parent.fields.push(many2one_field); f.name += '/id'; break; @@ -145,7 +147,7 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ f.fields = []; // only fetch sub-fields to a depth of 2 levels if (level < 2) { - self.ready.push(new openerp.web.DataSet(self, field.relation).call( + self.ready.push(new openerp.web.DataSet(self, field.relation, self.context).call( 'fields_get', [], function (fields) { self.graft_fields(fields, f, level+1); })); @@ -184,7 +186,8 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ meta: JSON.stringify({ skip: lines_to_skip, indices: indices, - fields: fields + fields: fields, + context: this.context }) } }, this.on_import_results);