diff --git a/sql_export/models/sql_export.py b/sql_export/models/sql_export.py
index d9a8a9395..34d105dae 100644
--- a/sql_export/models/sql_export.py
+++ b/sql_export/models/sql_export.py
@@ -41,6 +41,10 @@ class SqlExport(models.Model):
default="utf-8",
)
+ keep_generated_file = fields.Boolean(
+ help="Check this to keep generated export files as attachments"
+ )
+
def _compute_use_properties(self):
for rec in self:
rec.use_properties = bool(rec.query_properties_definition)
diff --git a/sql_export/tests/test_sql_query.py b/sql_export/tests/test_sql_query.py
index c970a3825..86339e640 100644
--- a/sql_export/tests/test_sql_query.py
+++ b/sql_export/tests/test_sql_query.py
@@ -101,3 +101,16 @@ class TestExportSqlQuery(TransactionCase):
wizard.export_sql()
export = base64.b64decode(wizard.binary_file)
self.assertTrue(export)
+
+ def test_keep_generated_file(self):
+ """Test that we keep generated files"""
+ self.sql_report_demo.keep_generated_file = True
+ wizard = self.wizard_obj.create(
+ {
+ "sql_export_id": self.sql_report_demo.id,
+ }
+ )
+ wizard.export_sql()
+ attachment = wizard._get_field_attachment()
+ wizard.sudo().unlink()
+ self.assertTrue(attachment.exists())
diff --git a/sql_export/views/sql_export_view.xml b/sql_export/views/sql_export_view.xml
index f377a6daf..f57386f75 100644
--- a/sql_export/views/sql_export_view.xml
+++ b/sql_export/views/sql_export_view.xml
@@ -42,6 +42,11 @@
name="file_format"
attrs="{'readonly': [('state', '!=', 'draft')]}"
/>
+