Add header parameter on export data

issue9301
review439151003
This commit is contained in:
Sergi Almacellas Abellana
2022-07-01 12:45:31 +02:00
parent 3e6f93d38c
commit 3881a006a7
2 changed files with 11 additions and 14 deletions
+1 -2
View File
@@ -443,7 +443,7 @@ class Form(TabContent):
paths = self.screen.selected_paths
fields = [f['name'] for f in export['export_fields.']]
data = RPCExecute(
'model', self.model, 'export_data', ids, fields,
'model', self.model, 'export_data', ids, fields, export['header'],
context=self.screen.context)
delimiter = ','
if os.name == 'nt' and ',' == locale.localeconv()['decimal_point']:
@@ -452,7 +452,6 @@ class Form(TabContent):
'.csv', common.slugify(export['name']) + '_')
with open(fname, 'w') as fp:
writer = csv.writer(fp, delimiter=delimiter)
writer.writerow(fields)
for row, path in zip_longest(data, paths or []):
indent = len(path) - 1 if path else 0
if row:
+10 -12
View File
@@ -163,7 +163,7 @@ class WinExport(WinCSV):
items.insert(0, ('%s.translated' % name, field,
_('%s (model name)') % string_))
items.insert(0, ('%s/rec_name' % name, field,
_("%s (record name)") % string_))
_("%s/Record Name") % string_))
for name, field, string_ in items:
path = prefix_field + name
@@ -257,6 +257,7 @@ class WinExport(WinCSV):
pref_id, = RPCExecute('model', 'ir.export', 'create', [{
'name': name,
'resource': self.model,
'header': self.add_field_names.get_active(),
'export_fields': [('create', [{
'name': x,
} for x in fields])],
@@ -324,12 +325,11 @@ class WinExport(WinCSV):
def response(self, dialog, response):
if response == Gtk.ResponseType.OK:
fields = []
fields2 = []
iter = self.model2.get_iter_first()
while iter:
fields.append(self.model2.get_value(iter, 1))
fields2.append(self.model2.get_value(iter, 0))
iter = self.model2.iter_next(iter)
header = self.add_field_names.get_active()
if self.selected_records.get_active():
ids = [r.id for r in self.screen.selected_records]
@@ -337,7 +337,7 @@ class WinExport(WinCSV):
try:
data = RPCExecute(
'model', self.model, 'export_data',
ids, fields,
ids, fields, header,
context=self.context)
except RPCException:
data = []
@@ -347,7 +347,7 @@ class WinExport(WinCSV):
try:
data = RPCExecute(
'model', self.model, 'export_data',
ids, fields,
ids, fields, header,
context=self.context)
except RPCException:
data = []
@@ -362,8 +362,8 @@ class WinExport(WinCSV):
try:
data = RPCExecute(
'model', self.model, 'export_data_domain',
domain, fields, offset, limit, self.screen.order,
context=self.context)
domain, fields, header, offset, limit,
self.screen.order, context=self.context)
except RPCException:
data = []
@@ -371,18 +371,18 @@ class WinExport(WinCSV):
fname = common.file_selection(_('Save As...'),
action=Gtk.FileChooserAction.SAVE)
if fname:
self.export_csv(fname, fields2, data, paths)
self.export_csv(fname, data, paths)
else:
fileno, fname = tempfile.mkstemp(
'.csv', common.slugify(self.name) + '_')
if self.export_csv(fname, fields2, data, paths, popup=False):
if self.export_csv(fname, data, paths, popup=False):
os.close(fileno)
common.file_open(fname, 'csv')
else:
os.close(fileno)
self.destroy()
def export_csv(self, fname, fields, data, paths, popup=True):
def export_csv(self, fname, data, paths, popup=True):
encoding = self.csv_enc.get_active_text() or 'utf_8_sig'
locale_format = self.csv_locale.get_active()
@@ -391,8 +391,6 @@ class WinExport(WinCSV):
open(fname, 'w', encoding=encoding, newline=''),
quotechar=self.get_quotechar(),
delimiter=self.get_delimiter())
if self.add_field_names.get_active():
writer.writerow(fields)
for row, path in zip_longest(data, paths or []):
indent = len(path) - 1 if path else 0
if row: