diff --git a/sql_export/models/sql_export.py b/sql_export/models/sql_export.py
index 7be136f84..5463a328a 100644
--- a/sql_export/models/sql_export.py
+++ b/sql_export/models/sql_export.py
@@ -16,9 +16,14 @@ class SqlExport(models.Model):
_check_execution_enabled = False
copy_options = fields.Char(
- string='Copy Options', required=True,
+ string='Copy Options', required=False,
default="CSV HEADER DELIMITER ';'")
+ file_format = fields.Selection(
+ [('csv', 'CSV')],
+ default='csv',
+ required=True)
+
field_ids = fields.Many2many(
'ir.model.fields',
'fields_sqlquery_rel',
@@ -48,3 +53,18 @@ class SqlExport(models.Model):
'context': self.env.context,
'nodestroy': True,
}
+
+ def _get_file_extension(self):
+ self.ensure_one()
+ if self.file_format == 'csv':
+ return 'csv'
+
+ def csv_get_datas_from_query(self, variable_dict):
+ self.ensure_one()
+ # Execute Request
+ res = self._execute_sql_request(
+ params=variable_dict, mode='stdout',
+ copy_options=self.copy_options)
+ if self.encoding:
+ res = res.decode(self.encoding)
+ return res
diff --git a/sql_export/views/sql_export_view.xml b/sql_export/views/sql_export_view.xml
index 3bdc86b71..12b48e479 100644
--- a/sql_export/views/sql_export_view.xml
+++ b/sql_export/views/sql_export_view.xml
@@ -21,7 +21,8 @@
-
+
+
diff --git a/sql_export/wizard/wizard_file.py b/sql_export/wizard/wizard_file.py
index c62b9041f..4da6f1d6f 100644
--- a/sql_export/wizard/wizard_file.py
+++ b/sql_export/wizard/wizard_file.py
@@ -77,16 +77,15 @@ class SqlFileWizard(models.TransientModel):
'force_user', self._uid)
variable_dict['user_id'] = user_id
- # Execute Request
- res = sql_export._execute_sql_request(
- params=variable_dict, mode='stdout',
- copy_options=sql_export.copy_options)
- if self.sql_export_id.encoding:
- res = res.decode(self.sql_export_id.encoding)
+ # Call different method depending on file_type since the logic will be
+ # different
+ method_name = '%s_get_datas_from_query' % sql_export.file_format
+ datas = getattr(sql_export, method_name)(variable_dict)
+ extension = sql_export._get_file_extension()
self.write({
- 'binary_file': res,
- 'file_name': '%(name)s_%(date)s.csv' % {
- 'name': sql_export.name, 'date': date}
+ 'binary_file': datas,
+ 'file_name': '%(name)s_%(date)s.%(extension)s' % {
+ 'name': sql_export.name, 'date': date, 'extension': extension}
})
return {
'view_mode': 'form',