[FIX] correctly pass context to import_data so e.g. defaults from the action can reach write/update

lp bug: https://launchpad.net/bugs/997025 fixed

bzr revid: xmo@openerp.com-20120803142226-22jqmy65i9v478mf
This commit is contained in:
Xavier Morel
2012-08-03 16:22:26 +02:00
parent 6f002dddd6
commit 003f450530
2 changed files with 12 additions and 9 deletions
+5 -5
View File
@@ -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 '<script>window.top.%s(%s);</script>' % (
+7 -4
View File
@@ -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);