From 003d85bc8a8250e53d95bb40e0094c88ceb019f2 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 1 Sep 2011 08:42:59 +0200 Subject: [PATCH] [IMP] in export, selecting name yields the xml/external id bzr revid: xmo@openerp.com-20110901064259-7j4z0upta98f6sqj --- addons/base/controllers/main.py | 8 +++++--- addons/base/static/src/js/data_export.js | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index e18abc56d1e..a833250829c 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 0a89b996de3..63f7af20cd7 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...');