diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index e18abc56d1e459708b5522ca937646c0fd484209..a833250829cc335717a7bb2a3de00f54ddac1533 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -1094,7 +1094,7 @@ class Export(View): fields = {} else: 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(), key=lambda field: field[1].get('string', '')) @@ -1109,16 +1109,18 @@ class Export(View): id = prefix + (prefix and '/'or '') + field_name 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'), 'required': field.get('required')} records.append(record) if len(name.split('/')) < 3 and 'relation' in field: ref = field.pop('relation') + record['value'] += '/id' 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 record['children'] = True diff --git a/addons/base/static/src/js/data_export.js b/addons/base/static/src/js/data_export.js index 0a89b996de3add6ebfbf9d76e57128bd3eedd0bb..63f7af20cd7c9499569115e353cb6b14a03f661c 100644 --- a/addons/base/static/src/js/data_export.js +++ b/addons/base/static/src/js/data_export.js @@ -4,6 +4,7 @@ openerp.base.DataExport = openerp.base.Dialog.extend({ dialog_title: 'Export Data', init: function(parent, dataset) { this._super(parent); + this.records = {}; this.dataset = dataset; this.exports = new openerp.base.DataSetSearch( 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})); } _.each(result, function(record) { + self.records[record.id] = record.value; if ((record.field_type == "one2many") && imp_cmpt) { var o2m_fld = self.$element.find("tr[id='treerow-" + record.id + "']").find('#tree-column'); o2m_fld.addClass("oe_export_readonlyfield"); @@ -362,9 +364,10 @@ openerp.base.DataExport = openerp.base.Dialog.extend({ }, on_click_export_data: function() { $.blockUI(this.$element); - var exported_fields = []; + var exported_fields = [], self = this; 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)) { alert('Please select fields to export...');