Migrate sql_export_excel to v12

pull/671/head
Florian da Costa 2019-09-02 13:06:36 +02:00 committed by Sylvain LE GAL
parent dc65baff34
commit 6d9b2445b1
3 changed files with 31 additions and 11 deletions

View File

@ -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

View File

@ -21,7 +21,8 @@
</h1>
</group>
<group name="option" groups="sql_request_abstract.group_sql_request_user">
<field name="copy_options"/>
<field name="file_format"/>
<field name="copy_options" attrs="{'invisible': [('file_format', '!=', 'csv')], 'required': [('file_format', '=', 'csv')]}"/>
<field name="encoding"/>
</group>
<group name="request" string="SQL Request" groups="sql_request_abstract.group_sql_request_user">

View File

@ -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',