[IMP] in export, selecting name yields the xml/external id

bzr revid: xmo@openerp.com-20110901064259-7j4z0upta98f6sqj
This commit is contained in:
Xavier Morel 2011-09-01 08:42:59 +02:00
parent 36182e9580
commit 003d85bc8a
2 changed files with 10 additions and 5 deletions

View File

@ -1094,7 +1094,7 @@ class Export(View):
fields = {} fields = {}
else: else:
fields = self.fields_get(req, model) fields = self.fields_get(req, model)
fields.update({'id': {'string': 'ID'}, '.id': {'string': 'Database ID'}}) fields.update({'.id': {'string': 'ID'}})
fields_sequence = sorted(fields.iteritems(), fields_sequence = sorted(fields.iteritems(),
key=lambda field: field[1].get('string', '')) key=lambda field: field[1].get('string', ''))
@ -1109,16 +1109,18 @@ class Export(View):
id = prefix + (prefix and '/'or '') + field_name id = prefix + (prefix and '/'or '') + field_name
name = parent_name + (parent_name and '/' or '') + field['string'] name = parent_name + (parent_name and '/' or '') + field['string']
record = {'id': id, 'string': name, 'children': False, record = {'id': id, 'string': name,
'value': id, 'children': False,
'field_type': field.get('type'), 'field_type': field.get('type'),
'required': field.get('required')} 'required': field.get('required')}
records.append(record) records.append(record)
if len(name.split('/')) < 3 and 'relation' in field: if len(name.split('/')) < 3 and 'relation' in field:
ref = field.pop('relation') ref = field.pop('relation')
record['value'] += '/id'
record['params'] = {'model': ref, 'prefix': id, 'name': name} record['params'] = {'model': ref, 'prefix': id, 'name': name}
if not (import_compat and field['type'] == 'many2many'): if not import_compat or field['type'] == 'one2many':
# m2m field in import_compat is childless # m2m field in import_compat is childless
record['children'] = True record['children'] = True

View File

@ -4,6 +4,7 @@ openerp.base.DataExport = openerp.base.Dialog.extend({
dialog_title: 'Export Data', dialog_title: 'Export Data',
init: function(parent, dataset) { init: function(parent, dataset) {
this._super(parent); this._super(parent);
this.records = {};
this.dataset = dataset; this.dataset = dataset;
this.exports = new openerp.base.DataSetSearch( this.exports = new openerp.base.DataSetSearch(
this, 'ir.exports', this.dataset.get_context()); this, 'ir.exports', this.dataset.get_context());
@ -198,6 +199,7 @@ openerp.base.DataExport = openerp.base.Dialog.extend({
self.$element.find('#left_field_panel').append(QWeb.render('ExportTreeView-Secondary', {'fields': result})); self.$element.find('#left_field_panel').append(QWeb.render('ExportTreeView-Secondary', {'fields': result}));
} }
_.each(result, function(record) { _.each(result, function(record) {
self.records[record.id] = record.value;
if ((record.field_type == "one2many") && imp_cmpt) { if ((record.field_type == "one2many") && imp_cmpt) {
var o2m_fld = self.$element.find("tr[id='treerow-" + record.id + "']").find('#tree-column'); var o2m_fld = self.$element.find("tr[id='treerow-" + record.id + "']").find('#tree-column');
o2m_fld.addClass("oe_export_readonlyfield"); o2m_fld.addClass("oe_export_readonlyfield");
@ -362,9 +364,10 @@ openerp.base.DataExport = openerp.base.Dialog.extend({
}, },
on_click_export_data: function() { on_click_export_data: function() {
$.blockUI(this.$element); $.blockUI(this.$element);
var exported_fields = []; var exported_fields = [], self = this;
this.$element.find("#fields_list option").each(function() { this.$element.find("#fields_list option").each(function() {
exported_fields.push({name: $(this).val(), label: $(this).text()}); var fieldname = self.records[$(this).val()];
exported_fields.push({name: fieldname, label: $(this).text()});
}); });
if (_.isEmpty(exported_fields)) { if (_.isEmpty(exported_fields)) {
alert('Please select fields to export...'); alert('Please select fields to export...');