def do_export(self, widget, export): if not self.modified_save(): return if (self.screen.current_view and self.screen.current_view.view_type == 'tree' and self.screen.current_view.children_field): ids = [r.id for r in self.screen.listed_records] paths = self.screen.listed_paths else: ids = [r.id for r in self.screen.selected_records] paths = self.screen.selected_paths fields = [f['name'] for f in export['export_fields.']] data = RPCExecute( 'model', self.model, 'export_data', ids, fields, context=self.screen.context) delimiter = ',' if os.name == 'nt' and ',' == locale.localeconv()['decimal_point']: delimiter = ';' fileno, fname = tempfile.mkstemp( '.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: writer.writerow(WinExport.format_row(row, indent=indent)) os.close(fileno) common.file_open(fname, 'csv')
def do_export(self, widget, export): if not self.modified_save(): return ids = [r.id for r in self.screen.selected_records] fields = [f['name'] for f in export['export_fields.']] data = RPCExecute( 'model', self.model, 'export_data', ids, fields, context=self.screen.context) delimiter = ',' if os.name == 'nt' and ',' == locale.localeconv()['decimal_point']: delimiter = ';' fileno, fname = tempfile.mkstemp( '.csv', common.slugify(export['name']) + '_') with open(fname, 'w') as fp: writer = csv.writer(fp, delimiter=delimiter) writer.writerow(fields) for row in data: writer.writerow(WinExport.format_row(row)) os.close(fileno) common.file_open(fname, 'csv')