Migrate sql_export_excel to v12
parent
dc65baff34
commit
6d9b2445b1
|
@ -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
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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',
|
||||
|
|
Loading…
Reference in New Issue