From 6c22642726f8034e42de963c6632c0af181b5b9d Mon Sep 17 00:00:00 2001
From: Florian da Costa
Date: Sun, 28 Jul 2019 12:12:02 +0200
Subject: [PATCH 01/28] Add sql_export_excel
---
sql_export_excel/README.rst | 47 ++++++++
sql_export_excel/__init__.py | 1 +
sql_export_excel/__openerp__.py | 20 ++++
sql_export_excel/models/__init__.py | 1 +
sql_export_excel/models/sql_export.py | 108 ++++++++++++++++++
sql_export_excel/readme/CONFIGURE.rst | 4 +
sql_export_excel/readme/CONTRIBUTORS.rst | 1 +
sql_export_excel/readme/DESCRIPTION.rst | 4 +
sql_export_excel/tests/__init__.py | 2 +
.../tests/test_sql_query_excel.py | 108 ++++++++++++++++++
sql_export_excel/views/sql_export_view.xml | 21 ++++
11 files changed, 317 insertions(+)
create mode 100644 sql_export_excel/README.rst
create mode 100644 sql_export_excel/__init__.py
create mode 100644 sql_export_excel/__openerp__.py
create mode 100644 sql_export_excel/models/__init__.py
create mode 100644 sql_export_excel/models/sql_export.py
create mode 100644 sql_export_excel/readme/CONFIGURE.rst
create mode 100644 sql_export_excel/readme/CONTRIBUTORS.rst
create mode 100644 sql_export_excel/readme/DESCRIPTION.rst
create mode 100644 sql_export_excel/tests/__init__.py
create mode 100644 sql_export_excel/tests/test_sql_query_excel.py
create mode 100644 sql_export_excel/views/sql_export_view.xml
diff --git a/sql_export_excel/README.rst b/sql_export_excel/README.rst
new file mode 100644
index 0000000000..5fb7bb10cb
--- /dev/null
+++ b/sql_export_excel/README.rst
@@ -0,0 +1,47 @@
+.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
+ :alt: License: AGPL-3
+
+SQL Export Excel
+================
+
+Add the possibility to extract data from a sql query toward an excel file.
+It is also possible to provide an template excel file for a query. In this case,
+the data will be inserted in the specified sheet of the provided excel file. This
+is usefull when doing a lot of calculation in excel and the data is coming from Odoo.
+
+Known issues / Roadmap
+======================
+
+* It was designed to work with xlsx files only, xls format is not supported.
+
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues
+`_. In case of trouble, please
+check there if your issue has already been reported. If you spotted it first,
+help us smash it by providing detailed and welcomed feedback.
+
+Credits
+=======
+
+Contributors
+------------
+
+* Florian da Costa
+
+Maintainer
+----------
+
+.. image:: http://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: http://odoo-community.org
+
+This module is maintained by the OCA.
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+To contribute to this module, please visit http://odoo-community.org.
diff --git a/sql_export_excel/__init__.py b/sql_export_excel/__init__.py
new file mode 100644
index 0000000000..0650744f6b
--- /dev/null
+++ b/sql_export_excel/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/sql_export_excel/__openerp__.py b/sql_export_excel/__openerp__.py
new file mode 100644
index 0000000000..c130eece75
--- /dev/null
+++ b/sql_export_excel/__openerp__.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 Akretion
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+{
+ 'name': 'SQL Export Excel',
+ 'version': '9.0.1.0.0',
+ 'author': 'Akretion,Odoo Community Association (OCA)',
+ 'website': 'http://github/oca/server-tools',
+ 'license': 'AGPL-3',
+ 'category': 'Generic Modules/Others',
+ 'summary': 'Allow to export a sql query to an excel file.',
+ 'depends': [
+ 'sql_export',
+ ],
+ 'data': [
+ 'views/sql_export_view.xml',
+ ],
+ 'installable': True,
+ }
diff --git a/sql_export_excel/models/__init__.py b/sql_export_excel/models/__init__.py
new file mode 100644
index 0000000000..0144620622
--- /dev/null
+++ b/sql_export_excel/models/__init__.py
@@ -0,0 +1 @@
+from . import sql_export
diff --git a/sql_export_excel/models/sql_export.py b/sql_export_excel/models/sql_export.py
new file mode 100644
index 0000000000..bb1ea5e49b
--- /dev/null
+++ b/sql_export_excel/models/sql_export.py
@@ -0,0 +1,108 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 Akretion
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from openerp import api, exceptions, fields, models, _
+from cStringIO import StringIO
+import logging
+import base64
+_logger = logging.getLogger(__name__)
+
+try:
+ import openpyxl
+except ImportError:
+ _logger.debug('Can not import openpyxl')
+
+
+class SqlExport(models.Model):
+ _inherit = 'sql.export'
+
+ file_format = fields.Selection(
+ selection_add=[('excel', 'Excel')])
+ header = fields.Boolean(
+ default=True,
+ help="Indicate if the header should be exported to the file.")
+ attachment_id = fields.Many2one(
+ 'ir.attachment', string='Excel Template',
+ help="If you configure an excel file (in xlsx format) here, the "
+ "result of the query will be injected in it.\nIt is usefull to "
+ "feed data in a excel file pre-configured with calculation")
+ sheet_position = fields.Integer(
+ default=1,
+ help="Indicate the sheet's position of the excel template where the "
+ "result of the sql query should be injected.")
+ row_position = fields.Integer(
+ default=1,
+ help="Indicate from which row the result of the query should be "
+ "injected.")
+ col_position = fields.Integer(
+ string="Column Position",
+ default=1,
+ help="Indicate from which column the result of the query should be "
+ "injected.")
+
+ @api.constrains('sheet_position')
+ def check_sheet_position(self):
+ for export in self:
+ if export.sheet_position < 1:
+ raise exceptions.ValidationError(
+ _("The sheet position can't be less than 1."))
+
+ @api.constrains('row_position')
+ def check_row_position(self):
+ for export in self:
+ if export.row_position < 1:
+ raise exceptions.ValidationError(
+ _("The row position can't be less than 1."))
+
+ @api.constrains('col_position')
+ def check_column_position(self):
+ for export in self:
+ if export.col_position < 1:
+ raise exceptions.ValidationError(
+ _("The column position can't be less than 1."))
+
+ @api.multi
+ def _get_file_extension(self):
+ self.ensure_one()
+ if self.file_format == 'excel':
+ return 'xlsx'
+ else:
+ return super(SqlExport, self)._get_file_extension()
+
+ @api.multi
+ def excel_get_datas_from_query(self, variable_dict):
+ self.ensure_one()
+ res = self._execute_sql_request(
+ params=variable_dict, mode='fetchall', header=self.header)
+ # Case we insert data in an existing excel file.
+ if self.attachment_id:
+ datas = self.attachment_id.datas
+ infile = StringIO()
+ infile.write(base64.b64decode(datas))
+ infile.seek(0)
+ wb = openpyxl.load_workbook(filename=infile)
+ sheets = wb.worksheets
+ try:
+ ws = sheets[self.sheet_position - 1]
+ except IndexError:
+ raise exceptions.ValidationError(
+ _("The Excel Template file contains less than %s sheets "
+ "Please, adjust the Sheet Position parameter."))
+ row_position = self.row_position or 1
+ col_position = self.col_position or 1
+ # Case of excel file creation
+ else:
+ wb = openpyxl.Workbook()
+ ws = wb.active
+ row_position = 1
+ col_position = 1
+ for index, row in enumerate(res, row_position):
+ for col, val in enumerate(row, col_position):
+ ws.cell(row=index, column=col).value = val
+ output = StringIO()
+ wb.save(output)
+ output.getvalue()
+ output_datas = base64.b64encode(output.getvalue())
+ output.close()
+ return output_datas
diff --git a/sql_export_excel/readme/CONFIGURE.rst b/sql_export_excel/readme/CONFIGURE.rst
new file mode 100644
index 0000000000..abf9be6e19
--- /dev/null
+++ b/sql_export_excel/readme/CONFIGURE.rst
@@ -0,0 +1,4 @@
+If you want Odoo to update an existing excel file, you should create an attachment
+with the excel file and configure this attachment on the query.
+Then, you can configure the query to indicate if Odoo should export the header and where it should
+insert the data. By default, it will insert it in the first sheet, at first row/column.
diff --git a/sql_export_excel/readme/CONTRIBUTORS.rst b/sql_export_excel/readme/CONTRIBUTORS.rst
new file mode 100644
index 0000000000..0bddb053ae
--- /dev/null
+++ b/sql_export_excel/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Florian da Costa
diff --git a/sql_export_excel/readme/DESCRIPTION.rst b/sql_export_excel/readme/DESCRIPTION.rst
new file mode 100644
index 0000000000..4808db7b51
--- /dev/null
+++ b/sql_export_excel/readme/DESCRIPTION.rst
@@ -0,0 +1,4 @@
+Add the possibility to extract data from a sql query toward an excel file.
+It is also possible to provide an template excel file for a query. In this case,
+the data will be inserted in the specified sheet of the provided excel file. This
+is usefull when doing a lot of calculation in excel and the data is coming from Odoo.
diff --git a/sql_export_excel/tests/__init__.py b/sql_export_excel/tests/__init__.py
new file mode 100644
index 0000000000..22c4421abe
--- /dev/null
+++ b/sql_export_excel/tests/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import test_sql_query_excel
diff --git a/sql_export_excel/tests/test_sql_query_excel.py b/sql_export_excel/tests/test_sql_query_excel.py
new file mode 100644
index 0000000000..a51423c673
--- /dev/null
+++ b/sql_export_excel/tests/test_sql_query_excel.py
@@ -0,0 +1,108 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2019 Akretion ()
+# @author: Florian da Costa
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from openerp.tests.common import TransactionCase
+import base64
+from cStringIO import StringIO
+import logging
+
+_logger = logging.getLogger(__name__)
+
+try:
+ import openpyxl
+except ImportError:
+ _logger.debug('Can not import openpyxl')
+
+
+class TestExportSqlQueryExcel(TransactionCase):
+
+ def setUp(self):
+ super(TestExportSqlQueryExcel, self).setUp()
+ self.wizard_obj = self.env['sql.file.wizard']
+
+ def get_workbook_from_query(self, wizard):
+ wizard.export_sql()
+ decoded_data = base64.b64decode(wizard.binary_file)
+ xlsx_file = StringIO(decoded_data)
+ return openpyxl.load_workbook(xlsx_file)
+
+ def test_excel_file_generation(self):
+ test_query = "SELECT 'testcol1' as firstcol, 2 as second_col"
+ query_vals = {
+ 'name': 'Test Query Excel',
+ 'query': test_query,
+ 'file_format': 'excel'
+ }
+ query = self.env['sql.export'].create(query_vals)
+ query.button_validate_sql_expression()
+ wizard = self.wizard_obj.create({
+ 'sql_export_id': query.id,
+ })
+ workbook = self.get_workbook_from_query(wizard)
+ ws = workbook.active
+ # Check values, header should be here by default
+ self.assertEqual(ws.cell(row=1, column=1).value, 'firstcol')
+ self.assertEqual(ws.cell(row=2, column=1).value, 'testcol1')
+ self.assertEqual(ws.cell(row=2, column=2).value, 2)
+
+ query.write({'header': False})
+ wb2 = self.get_workbook_from_query(wizard)
+ ws2 = wb2.active
+ # Check values, the header should not be present
+ self.assertEqual(ws2.cell(row=1, column=1).value, 'testcol1')
+ self.assertEqual(ws2.cell(row=1, column=2).value, 2)
+
+ def test_excel_file_insert(self):
+ # Create excel file with 2 sheets. Create a header in second sheet
+ # where data will be inserted
+ wb = openpyxl.Workbook()
+ ws = wb.active
+ ws.cell(row=1, column=1, value="My Test Value")
+ ws2 = wb.create_sheet("data")
+ ws2.cell(row=1, column=1, value='Partner Id')
+ ws2.cell(row=1, column=2, value='Partner Name')
+ output = StringIO()
+ wb.save(output)
+ data = output.getvalue()
+
+ # Create attachment with the created xlsx file which will be used as
+ # template in the sql query
+ attachmnent_vals = {
+ 'name': 'template xlsx sql export Res Partner',
+ 'datas': base64.b64encode(data),
+ }
+ attachment = self.env['ir.attachment'].create(attachmnent_vals)
+
+ # Create the query and configure it to insert the data in the second
+ # sheet of the xlsx template file and start inserting data at the
+ # second row, ignoring header (because the template excel file
+ # already contains a header)
+ test_query = "SELECT id, name FROM res_partner"
+ query_vals = {
+ 'name': 'Test Query Excel',
+ 'query': test_query,
+ 'file_format': 'excel',
+ 'attachment_id': attachment.id,
+ 'sheet_position': 2,
+ 'header': False,
+ 'row_position': 2,
+ }
+ query = self.env['sql.export'].create(query_vals)
+ query.button_validate_sql_expression()
+ wizard = self.wizard_obj.create({
+ 'sql_export_id': query.id,
+ })
+
+ # Check the generated excel file. The first sheet should still contain
+ # the same data and the second sheet should have kept the header and
+ # inserted data from the query
+ wb2 = self.get_workbook_from_query(wizard)
+ sheets = wb2.worksheets
+ ws1 = sheets[0]
+ # Check values, header should be here by default
+ self.assertEqual(ws1.cell(row=1, column=1).value, 'My Test Value')
+ ws2 = sheets[1]
+ self.assertEqual(ws2.cell(row=1, column=1).value, 'Partner Id')
+ self.assertTrue(ws2.cell(row=2, column=1).value)
diff --git a/sql_export_excel/views/sql_export_view.xml b/sql_export_excel/views/sql_export_view.xml
new file mode 100644
index 0000000000..98fc3981c2
--- /dev/null
+++ b/sql_export_excel/views/sql_export_view.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ sql.export
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From af1d81216d3d442daafc7d238f65694f3572b91b Mon Sep 17 00:00:00 2001
From: Florian da Costa
Date: Mon, 2 Sep 2019 13:06:36 +0200
Subject: [PATCH 02/28] Migrate sql_export_excel to v12
---
sql_export_excel/{__openerp__.py => __manifest__.py} | 3 +--
sql_export_excel/models/sql_export.py | 7 +++----
sql_export_excel/tests/__init__.py | 1 -
sql_export_excel/tests/test_sql_query_excel.py | 9 ++++-----
4 files changed, 8 insertions(+), 12 deletions(-)
rename sql_export_excel/{__openerp__.py => __manifest__.py} (90%)
diff --git a/sql_export_excel/__openerp__.py b/sql_export_excel/__manifest__.py
similarity index 90%
rename from sql_export_excel/__openerp__.py
rename to sql_export_excel/__manifest__.py
index c130eece75..237b2df70f 100644
--- a/sql_export_excel/__openerp__.py
+++ b/sql_export_excel/__manifest__.py
@@ -1,10 +1,9 @@
-# -*- coding: utf-8 -*-
# Copyright 2019 Akretion
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
'name': 'SQL Export Excel',
- 'version': '9.0.1.0.0',
+ 'version': '12.0.1.0.0',
'author': 'Akretion,Odoo Community Association (OCA)',
'website': 'http://github/oca/server-tools',
'license': 'AGPL-3',
diff --git a/sql_export_excel/models/sql_export.py b/sql_export_excel/models/sql_export.py
index bb1ea5e49b..48a45cf90a 100644
--- a/sql_export_excel/models/sql_export.py
+++ b/sql_export_excel/models/sql_export.py
@@ -1,9 +1,8 @@
-# -*- coding: utf-8 -*-
# Copyright 2019 Akretion
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from openerp import api, exceptions, fields, models, _
-from cStringIO import StringIO
+from io import BytesIO
import logging
import base64
_logger = logging.getLogger(__name__)
@@ -78,7 +77,7 @@ def excel_get_datas_from_query(self, variable_dict):
# Case we insert data in an existing excel file.
if self.attachment_id:
datas = self.attachment_id.datas
- infile = StringIO()
+ infile = BytesIO()
infile.write(base64.b64decode(datas))
infile.seek(0)
wb = openpyxl.load_workbook(filename=infile)
@@ -100,7 +99,7 @@ def excel_get_datas_from_query(self, variable_dict):
for index, row in enumerate(res, row_position):
for col, val in enumerate(row, col_position):
ws.cell(row=index, column=col).value = val
- output = StringIO()
+ output = BytesIO()
wb.save(output)
output.getvalue()
output_datas = base64.b64encode(output.getvalue())
diff --git a/sql_export_excel/tests/__init__.py b/sql_export_excel/tests/__init__.py
index 22c4421abe..6d89d7607e 100644
--- a/sql_export_excel/tests/__init__.py
+++ b/sql_export_excel/tests/__init__.py
@@ -1,2 +1 @@
-# -*- coding: utf-8 -*-
from . import test_sql_query_excel
diff --git a/sql_export_excel/tests/test_sql_query_excel.py b/sql_export_excel/tests/test_sql_query_excel.py
index a51423c673..b1433c55b8 100644
--- a/sql_export_excel/tests/test_sql_query_excel.py
+++ b/sql_export_excel/tests/test_sql_query_excel.py
@@ -1,11 +1,10 @@
-# -*- coding: utf-8 -*-
# Copyright (C) 2019 Akretion ()
# @author: Florian da Costa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp.tests.common import TransactionCase
+from odoo.tests.common import TransactionCase
import base64
-from cStringIO import StringIO
+from io import BytesIO
import logging
_logger = logging.getLogger(__name__)
@@ -25,7 +24,7 @@ def setUp(self):
def get_workbook_from_query(self, wizard):
wizard.export_sql()
decoded_data = base64.b64decode(wizard.binary_file)
- xlsx_file = StringIO(decoded_data)
+ xlsx_file = BytesIO(decoded_data)
return openpyxl.load_workbook(xlsx_file)
def test_excel_file_generation(self):
@@ -63,7 +62,7 @@ def test_excel_file_insert(self):
ws2 = wb.create_sheet("data")
ws2.cell(row=1, column=1, value='Partner Id')
ws2.cell(row=1, column=2, value='Partner Name')
- output = StringIO()
+ output = BytesIO()
wb.save(output)
data = output.getvalue()
From dc2e55a031c1bd93f84ee66ff52f3c815f36e2dd Mon Sep 17 00:00:00 2001
From: Florian
Date: Tue, 3 Sep 2019 11:37:56 +0200
Subject: [PATCH 03/28] Small fixes for v12/python3 standard
Co-Authored-By: David Beal
---
sql_export_excel/models/sql_export.py | 6 +++---
sql_export_excel/tests/test_sql_query_excel.py | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/sql_export_excel/models/sql_export.py b/sql_export_excel/models/sql_export.py
index 48a45cf90a..3479481e34 100644
--- a/sql_export_excel/models/sql_export.py
+++ b/sql_export_excel/models/sql_export.py
@@ -1,7 +1,7 @@
# Copyright 2019 Akretion
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
-from openerp import api, exceptions, fields, models, _
+from odoo import api, exceptions, fields, models, _
from io import BytesIO
import logging
import base64
@@ -67,10 +67,10 @@ def _get_file_extension(self):
if self.file_format == 'excel':
return 'xlsx'
else:
- return super(SqlExport, self)._get_file_extension()
+ return super()._get_file_extension()
@api.multi
- def excel_get_datas_from_query(self, variable_dict):
+ def excel_get_data_from_query(self, variable_dict):
self.ensure_one()
res = self._execute_sql_request(
params=variable_dict, mode='fetchall', header=self.header)
diff --git a/sql_export_excel/tests/test_sql_query_excel.py b/sql_export_excel/tests/test_sql_query_excel.py
index b1433c55b8..5711ccb7c9 100644
--- a/sql_export_excel/tests/test_sql_query_excel.py
+++ b/sql_export_excel/tests/test_sql_query_excel.py
@@ -18,7 +18,7 @@
class TestExportSqlQueryExcel(TransactionCase):
def setUp(self):
- super(TestExportSqlQueryExcel, self).setUp()
+ super().setUp()
self.wizard_obj = self.env['sql.file.wizard']
def get_workbook_from_query(self, wizard):
From c81a10aab0f3db6f3564bc5c20cee88b99b532e4 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Fri, 28 Aug 2020 08:53:23 +0000
Subject: [PATCH 04/28] [UPD] Update sql_export_excel.pot
---
sql_export_excel/i18n/sql_export_excel.pot | 110 +++++++++++++++++++++
1 file changed, 110 insertions(+)
create mode 100644 sql_export_excel/i18n/sql_export_excel.pot
diff --git a/sql_export_excel/i18n/sql_export_excel.pot b/sql_export_excel/i18n/sql_export_excel.pot
new file mode 100644
index 0000000000..7a178edff7
--- /dev/null
+++ b/sql_export_excel/i18n/sql_export_excel.pot
@@ -0,0 +1,110 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * sql_export_excel
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: sql_export_excel
+#: selection:sql.export,file_format:0
+msgid "CSV"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__col_position
+msgid "Column Position"
+msgstr ""
+
+#. module: sql_export_excel
+#: selection:sql.export,file_format:0
+msgid "Excel"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__attachment_id
+msgid "Excel Template"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__file_format
+msgid "File Format"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__header
+msgid "Header"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__attachment_id
+msgid "If you configure an excel file (in xlsx format) here, the result of the query will be injected in it.\n"
+"It is usefull to feed data in a excel file pre-configured with calculation"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__col_position
+msgid "Indicate from which column the result of the query should be injected."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__row_position
+msgid "Indicate from which row the result of the query should be injected."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__header
+msgid "Indicate if the header should be exported to the file."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__sheet_position
+msgid "Indicate the sheet's position of the excel template where the result of the sql query should be injected."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__row_position
+msgid "Row Position"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model,name:sql_export_excel.model_sql_export
+msgid "SQL export"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__sheet_position
+msgid "Sheet Position"
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:89
+#, python-format
+msgid "The Excel Template file contains less than %s sheets Please, adjust the Sheet Position parameter."
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:62
+#, python-format
+msgid "The column position can't be less than 1."
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:55
+#, python-format
+msgid "The row position can't be less than 1."
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:48
+#, python-format
+msgid "The sheet position can't be less than 1."
+msgstr ""
+
From 5b2949e4b2708630657620fa847585b6b06195a4 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 28 Aug 2020 09:14:49 +0000
Subject: [PATCH 05/28] [UPD] README.rst
---
sql_export_excel/README.rst | 73 ++-
.../static/description/index.html | 430 ++++++++++++++++++
2 files changed, 485 insertions(+), 18 deletions(-)
create mode 100644 sql_export_excel/static/description/index.html
diff --git a/sql_export_excel/README.rst b/sql_export_excel/README.rst
index 5fb7bb10cb..ea24d59fe0 100644
--- a/sql_export_excel/README.rst
+++ b/sql_export_excel/README.rst
@@ -1,47 +1,84 @@
-.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
- :alt: License: AGPL-3
-
+================
SQL Export Excel
================
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
+ :target: https://github.com/OCA/server-tools/tree/12.0/sql_export_excel
+ :alt: OCA/server-tools
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-sql_export_excel
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/149/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
Add the possibility to extract data from a sql query toward an excel file.
It is also possible to provide an template excel file for a query. In this case,
the data will be inserted in the specified sheet of the provided excel file. This
is usefull when doing a lot of calculation in excel and the data is coming from Odoo.
-Known issues / Roadmap
-======================
+**Table of contents**
+
+.. contents::
+ :local:
-* It was designed to work with xlsx files only, xls format is not supported.
+Configuration
+=============
+If you want Odoo to update an existing excel file, you should create an attachment
+with the excel file and configure this attachment on the query.
+Then, you can configure the query to indicate if Odoo should export the header and where it should
+insert the data. By default, it will insert it in the first sheet, at first row/column.
Bug Tracker
===========
-Bugs are tracked on `GitHub Issues
-`_. In case of trouble, please
-check there if your issue has already been reported. If you spotted it first,
-help us smash it by providing detailed and welcomed feedback.
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
Credits
=======
+Authors
+~~~~~~~
+
+* Akretion
+
Contributors
-------------
+~~~~~~~~~~~~
* Florian da Costa
-Maintainer
-----------
-
-.. image:: http://odoo-community.org/logo.png
- :alt: Odoo Community Association
- :target: http://odoo-community.org
+Maintainers
+~~~~~~~~~~~
This module is maintained by the OCA.
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-To contribute to this module, please visit http://odoo-community.org.
+This module is part of the `OCA/server-tools `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/sql_export_excel/static/description/index.html b/sql_export_excel/static/description/index.html
new file mode 100644
index 0000000000..33f5cc6748
--- /dev/null
+++ b/sql_export_excel/static/description/index.html
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+SQL Export Excel
+
+
+
+
+
SQL Export Excel
+
+
+
+
Add the possibility to extract data from a sql query toward an excel file.
+It is also possible to provide an template excel file for a query. In this case,
+the data will be inserted in the specified sheet of the provided excel file. This
+is usefull when doing a lot of calculation in excel and the data is coming from Odoo.
+
Table of contents
+
+
+
+
If you want Odoo to update an existing excel file, you should create an attachment
+with the excel file and configure this attachment on the query.
+Then, you can configure the query to indicate if Odoo should export the header and where it should
+insert the data. By default, it will insert it in the first sheet, at first row/column.
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/server-tools project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
From f8c2cb1df2390e6ace1d68db4c8cc9f252f197b2 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 28 Aug 2020 09:14:49 +0000
Subject: [PATCH 06/28] [ADD] icon.png
---
sql_export_excel/static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 sql_export_excel/static/description/icon.png
diff --git a/sql_export_excel/static/description/icon.png b/sql_export_excel/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
From 73bf78c06846723cf43462da27d3fea65f985da9 Mon Sep 17 00:00:00 2001
From: Sylvain LE GAL
Date: Thu, 8 Apr 2021 12:23:27 +0200
Subject: [PATCH 07/28] [FIX] sql_export_excel: add missing dependency to
python lib openpyxl
---
sql_export_excel/__manifest__.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sql_export_excel/__manifest__.py b/sql_export_excel/__manifest__.py
index 237b2df70f..95cc1288bc 100644
--- a/sql_export_excel/__manifest__.py
+++ b/sql_export_excel/__manifest__.py
@@ -12,6 +12,11 @@
'depends': [
'sql_export',
],
+ 'external_dependencies': {
+ 'python': [
+ 'openpyxl',
+ ],
+ },
'data': [
'views/sql_export_view.xml',
],
From 1016318548a7494defca13e09dff6d6e88646900 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 30 Apr 2021 18:14:52 +0000
Subject: [PATCH 08/28] sql_export_excel 12.0.1.1.0
---
sql_export_excel/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sql_export_excel/__manifest__.py b/sql_export_excel/__manifest__.py
index 95cc1288bc..bc11bdc3b4 100644
--- a/sql_export_excel/__manifest__.py
+++ b/sql_export_excel/__manifest__.py
@@ -3,7 +3,7 @@
{
'name': 'SQL Export Excel',
- 'version': '12.0.1.0.0',
+ 'version': '12.0.1.1.0',
'author': 'Akretion,Odoo Community Association (OCA)',
'website': 'http://github/oca/server-tools',
'license': 'AGPL-3',
From 7a2ac793077d35b343131de779814e277b4aba9f Mon Sep 17 00:00:00 2001
From: hkapatel
Date: Mon, 21 Jun 2021 18:18:03 +0530
Subject: [PATCH 09/28] [IMP] sql_export_excel: black, isort, prettier
---
sql_export_excel/__manifest__.py | 32 ++++-----
sql_export_excel/models/sql_export.py | 66 ++++++++++-------
.../tests/test_sql_query_excel.py | 72 ++++++++++---------
sql_export_excel/views/sql_export_view.xml | 27 +++++--
4 files changed, 114 insertions(+), 83 deletions(-)
diff --git a/sql_export_excel/__manifest__.py b/sql_export_excel/__manifest__.py
index bc11bdc3b4..7e2f5d13c5 100644
--- a/sql_export_excel/__manifest__.py
+++ b/sql_export_excel/__manifest__.py
@@ -2,23 +2,23 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
- 'name': 'SQL Export Excel',
- 'version': '12.0.1.1.0',
- 'author': 'Akretion,Odoo Community Association (OCA)',
- 'website': 'http://github/oca/server-tools',
- 'license': 'AGPL-3',
- 'category': 'Generic Modules/Others',
- 'summary': 'Allow to export a sql query to an excel file.',
- 'depends': [
- 'sql_export',
+ "name": "SQL Export Excel",
+ "version": "12.0.1.1.0",
+ "author": "Akretion,Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/server-tools",
+ "license": "AGPL-3",
+ "category": "Generic Modules/Others",
+ "summary": "Allow to export a sql query to an excel file.",
+ "depends": [
+ "sql_export",
],
- 'external_dependencies': {
- 'python': [
- 'openpyxl',
+ "external_dependencies": {
+ "python": [
+ "openpyxl",
],
},
- 'data': [
- 'views/sql_export_view.xml',
+ "data": [
+ "views/sql_export_view.xml",
],
- 'installable': True,
- }
+ "installable": True,
+}
diff --git a/sql_export_excel/models/sql_export.py b/sql_export_excel/models/sql_export.py
index 3479481e34..01a3f20f49 100644
--- a/sql_export_excel/models/sql_export.py
+++ b/sql_export_excel/models/sql_export.py
@@ -1,71 +1,79 @@
# Copyright 2019 Akretion
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
-from odoo import api, exceptions, fields, models, _
-from io import BytesIO
-import logging
import base64
+import logging
+from io import BytesIO
+
+from odoo import _, api, exceptions, fields, models
+
_logger = logging.getLogger(__name__)
try:
import openpyxl
except ImportError:
- _logger.debug('Can not import openpyxl')
+ _logger.debug("Can not import openpyxl")
class SqlExport(models.Model):
- _inherit = 'sql.export'
+ _inherit = "sql.export"
- file_format = fields.Selection(
- selection_add=[('excel', 'Excel')])
+ file_format = fields.Selection(selection_add=[("excel", "Excel")])
header = fields.Boolean(
- default=True,
- help="Indicate if the header should be exported to the file.")
+ default=True, help="Indicate if the header should be exported to the file."
+ )
attachment_id = fields.Many2one(
- 'ir.attachment', string='Excel Template',
+ "ir.attachment",
+ string="Excel Template",
help="If you configure an excel file (in xlsx format) here, the "
- "result of the query will be injected in it.\nIt is usefull to "
- "feed data in a excel file pre-configured with calculation")
+ "result of the query will be injected in it.\nIt is usefull to "
+ "feed data in a excel file pre-configured with calculation",
+ )
sheet_position = fields.Integer(
default=1,
help="Indicate the sheet's position of the excel template where the "
- "result of the sql query should be injected.")
+ "result of the sql query should be injected.",
+ )
row_position = fields.Integer(
default=1,
- help="Indicate from which row the result of the query should be "
- "injected.")
+ help="Indicate from which row the result of the query should be " "injected.",
+ )
col_position = fields.Integer(
string="Column Position",
default=1,
help="Indicate from which column the result of the query should be "
- "injected.")
+ "injected.",
+ )
- @api.constrains('sheet_position')
+ @api.constrains("sheet_position")
def check_sheet_position(self):
for export in self:
if export.sheet_position < 1:
raise exceptions.ValidationError(
- _("The sheet position can't be less than 1."))
+ _("The sheet position can't be less than 1.")
+ )
- @api.constrains('row_position')
+ @api.constrains("row_position")
def check_row_position(self):
for export in self:
if export.row_position < 1:
raise exceptions.ValidationError(
- _("The row position can't be less than 1."))
+ _("The row position can't be less than 1.")
+ )
- @api.constrains('col_position')
+ @api.constrains("col_position")
def check_column_position(self):
for export in self:
if export.col_position < 1:
raise exceptions.ValidationError(
- _("The column position can't be less than 1."))
+ _("The column position can't be less than 1.")
+ )
@api.multi
def _get_file_extension(self):
self.ensure_one()
- if self.file_format == 'excel':
- return 'xlsx'
+ if self.file_format == "excel":
+ return "xlsx"
else:
return super()._get_file_extension()
@@ -73,7 +81,8 @@ def _get_file_extension(self):
def excel_get_data_from_query(self, variable_dict):
self.ensure_one()
res = self._execute_sql_request(
- params=variable_dict, mode='fetchall', header=self.header)
+ params=variable_dict, mode="fetchall", header=self.header
+ )
# Case we insert data in an existing excel file.
if self.attachment_id:
datas = self.attachment_id.datas
@@ -86,8 +95,11 @@ def excel_get_data_from_query(self, variable_dict):
ws = sheets[self.sheet_position - 1]
except IndexError:
raise exceptions.ValidationError(
- _("The Excel Template file contains less than %s sheets "
- "Please, adjust the Sheet Position parameter."))
+ _(
+ "The Excel Template file contains less than %s sheets "
+ "Please, adjust the Sheet Position parameter."
+ )
+ )
row_position = self.row_position or 1
col_position = self.col_position or 1
# Case of excel file creation
diff --git a/sql_export_excel/tests/test_sql_query_excel.py b/sql_export_excel/tests/test_sql_query_excel.py
index 5711ccb7c9..6ee1f3a1fa 100644
--- a/sql_export_excel/tests/test_sql_query_excel.py
+++ b/sql_export_excel/tests/test_sql_query_excel.py
@@ -2,24 +2,24 @@
# @author: Florian da Costa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from odoo.tests.common import TransactionCase
import base64
-from io import BytesIO
import logging
+from io import BytesIO
+
+from odoo.tests.common import TransactionCase
_logger = logging.getLogger(__name__)
try:
import openpyxl
except ImportError:
- _logger.debug('Can not import openpyxl')
+ _logger.debug("Can not import openpyxl")
class TestExportSqlQueryExcel(TransactionCase):
-
def setUp(self):
super().setUp()
- self.wizard_obj = self.env['sql.file.wizard']
+ self.wizard_obj = self.env["sql.file.wizard"]
def get_workbook_from_query(self, wizard):
wizard.export_sql()
@@ -30,27 +30,29 @@ def get_workbook_from_query(self, wizard):
def test_excel_file_generation(self):
test_query = "SELECT 'testcol1' as firstcol, 2 as second_col"
query_vals = {
- 'name': 'Test Query Excel',
- 'query': test_query,
- 'file_format': 'excel'
+ "name": "Test Query Excel",
+ "query": test_query,
+ "file_format": "excel",
}
- query = self.env['sql.export'].create(query_vals)
+ query = self.env["sql.export"].create(query_vals)
query.button_validate_sql_expression()
- wizard = self.wizard_obj.create({
- 'sql_export_id': query.id,
- })
+ wizard = self.wizard_obj.create(
+ {
+ "sql_export_id": query.id,
+ }
+ )
workbook = self.get_workbook_from_query(wizard)
ws = workbook.active
# Check values, header should be here by default
- self.assertEqual(ws.cell(row=1, column=1).value, 'firstcol')
- self.assertEqual(ws.cell(row=2, column=1).value, 'testcol1')
+ self.assertEqual(ws.cell(row=1, column=1).value, "firstcol")
+ self.assertEqual(ws.cell(row=2, column=1).value, "testcol1")
self.assertEqual(ws.cell(row=2, column=2).value, 2)
- query.write({'header': False})
+ query.write({"header": False})
wb2 = self.get_workbook_from_query(wizard)
ws2 = wb2.active
# Check values, the header should not be present
- self.assertEqual(ws2.cell(row=1, column=1).value, 'testcol1')
+ self.assertEqual(ws2.cell(row=1, column=1).value, "testcol1")
self.assertEqual(ws2.cell(row=1, column=2).value, 2)
def test_excel_file_insert(self):
@@ -60,8 +62,8 @@ def test_excel_file_insert(self):
ws = wb.active
ws.cell(row=1, column=1, value="My Test Value")
ws2 = wb.create_sheet("data")
- ws2.cell(row=1, column=1, value='Partner Id')
- ws2.cell(row=1, column=2, value='Partner Name')
+ ws2.cell(row=1, column=1, value="Partner Id")
+ ws2.cell(row=1, column=2, value="Partner Name")
output = BytesIO()
wb.save(output)
data = output.getvalue()
@@ -69,10 +71,10 @@ def test_excel_file_insert(self):
# Create attachment with the created xlsx file which will be used as
# template in the sql query
attachmnent_vals = {
- 'name': 'template xlsx sql export Res Partner',
- 'datas': base64.b64encode(data),
+ "name": "template xlsx sql export Res Partner",
+ "datas": base64.b64encode(data),
}
- attachment = self.env['ir.attachment'].create(attachmnent_vals)
+ attachment = self.env["ir.attachment"].create(attachmnent_vals)
# Create the query and configure it to insert the data in the second
# sheet of the xlsx template file and start inserting data at the
@@ -80,19 +82,21 @@ def test_excel_file_insert(self):
# already contains a header)
test_query = "SELECT id, name FROM res_partner"
query_vals = {
- 'name': 'Test Query Excel',
- 'query': test_query,
- 'file_format': 'excel',
- 'attachment_id': attachment.id,
- 'sheet_position': 2,
- 'header': False,
- 'row_position': 2,
+ "name": "Test Query Excel",
+ "query": test_query,
+ "file_format": "excel",
+ "attachment_id": attachment.id,
+ "sheet_position": 2,
+ "header": False,
+ "row_position": 2,
}
- query = self.env['sql.export'].create(query_vals)
+ query = self.env["sql.export"].create(query_vals)
query.button_validate_sql_expression()
- wizard = self.wizard_obj.create({
- 'sql_export_id': query.id,
- })
+ wizard = self.wizard_obj.create(
+ {
+ "sql_export_id": query.id,
+ }
+ )
# Check the generated excel file. The first sheet should still contain
# the same data and the second sheet should have kept the header and
@@ -101,7 +105,7 @@ def test_excel_file_insert(self):
sheets = wb2.worksheets
ws1 = sheets[0]
# Check values, header should be here by default
- self.assertEqual(ws1.cell(row=1, column=1).value, 'My Test Value')
+ self.assertEqual(ws1.cell(row=1, column=1).value, "My Test Value")
ws2 = sheets[1]
- self.assertEqual(ws2.cell(row=1, column=1).value, 'Partner Id')
+ self.assertEqual(ws2.cell(row=1, column=1).value, "Partner Id")
self.assertTrue(ws2.cell(row=2, column=1).value)
diff --git a/sql_export_excel/views/sql_export_view.xml b/sql_export_excel/views/sql_export_view.xml
index 98fc3981c2..da26c05038 100644
--- a/sql_export_excel/views/sql_export_view.xml
+++ b/sql_export_excel/views/sql_export_view.xml
@@ -1,4 +1,4 @@
-
+
@@ -8,11 +8,26 @@
-
-
-
-
-
+
+
+
+
+
From f87fd82e202542aa01448cfd3b211de974e6e317 Mon Sep 17 00:00:00 2001
From: hkapatel
Date: Wed, 23 Jun 2021 09:55:27 +0530
Subject: [PATCH 10/28] [MIG] sql_export_excel: Migration to 14.0
---
sql_export_excel/__manifest__.py | 6 ++----
sql_export_excel/models/sql_export.py | 6 +++---
sql_export_excel/readme/CONTRIBUTORS.rst | 1 +
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/sql_export_excel/__manifest__.py b/sql_export_excel/__manifest__.py
index 7e2f5d13c5..3562741c84 100644
--- a/sql_export_excel/__manifest__.py
+++ b/sql_export_excel/__manifest__.py
@@ -3,15 +3,13 @@
{
"name": "SQL Export Excel",
- "version": "12.0.1.1.0",
+ "version": "14.0.1.1.0",
"author": "Akretion,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-tools",
"license": "AGPL-3",
"category": "Generic Modules/Others",
"summary": "Allow to export a sql query to an excel file.",
- "depends": [
- "sql_export",
- ],
+ "depends": ["sql_export"],
"external_dependencies": {
"python": [
"openpyxl",
diff --git a/sql_export_excel/models/sql_export.py b/sql_export_excel/models/sql_export.py
index 01a3f20f49..6165abe486 100644
--- a/sql_export_excel/models/sql_export.py
+++ b/sql_export_excel/models/sql_export.py
@@ -18,7 +18,9 @@
class SqlExport(models.Model):
_inherit = "sql.export"
- file_format = fields.Selection(selection_add=[("excel", "Excel")])
+ file_format = fields.Selection(
+ selection_add=[("excel", "Excel")], ondelete={"excel": "set default"}
+ )
header = fields.Boolean(
default=True, help="Indicate if the header should be exported to the file."
)
@@ -69,7 +71,6 @@ def check_column_position(self):
_("The column position can't be less than 1.")
)
- @api.multi
def _get_file_extension(self):
self.ensure_one()
if self.file_format == "excel":
@@ -77,7 +78,6 @@ def _get_file_extension(self):
else:
return super()._get_file_extension()
- @api.multi
def excel_get_data_from_query(self, variable_dict):
self.ensure_one()
res = self._execute_sql_request(
diff --git a/sql_export_excel/readme/CONTRIBUTORS.rst b/sql_export_excel/readme/CONTRIBUTORS.rst
index 0bddb053ae..c2183a83da 100644
--- a/sql_export_excel/readme/CONTRIBUTORS.rst
+++ b/sql_export_excel/readme/CONTRIBUTORS.rst
@@ -1 +1,2 @@
* Florian da Costa
+* Helly kapatel
From 29b78bc8e40d885a44e489684c909fa20008320d Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Thu, 29 Jul 2021 11:13:43 +0000
Subject: [PATCH 11/28] [UPD] README.rst
---
sql_export_excel/README.rst | 11 ++++++-----
sql_export_excel/static/description/index.html | 7 ++++---
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/sql_export_excel/README.rst b/sql_export_excel/README.rst
index ea24d59fe0..2d3ebadf12 100644
--- a/sql_export_excel/README.rst
+++ b/sql_export_excel/README.rst
@@ -14,13 +14,13 @@ SQL Export Excel
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
- :target: https://github.com/OCA/server-tools/tree/12.0/sql_export_excel
+ :target: https://github.com/OCA/server-tools/tree/14.0/sql_export_excel
:alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-sql_export_excel
+ :target: https://translation.odoo-community.org/projects/server-tools-14-0/server-tools-14-0-sql_export_excel
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/149/12.0
+ :target: https://runbot.odoo-community.org/runbot/149/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -49,7 +49,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -65,6 +65,7 @@ Contributors
~~~~~~~~~~~~
* Florian da Costa
+* Helly kapatel
Maintainers
~~~~~~~~~~~
@@ -79,6 +80,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/server-tools `_ project on GitHub.
+This module is part of the `OCA/server-tools `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/sql_export_excel/static/description/index.html b/sql_export_excel/static/description/index.html
index 33f5cc6748..4fb831b8f2 100644
--- a/sql_export_excel/static/description/index.html
+++ b/sql_export_excel/static/description/index.html
@@ -367,7 +367,7 @@ SQL Export Excel
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
Add the possibility to extract data from a sql query toward an excel file.
It is also possible to provide an template excel file for a query. In this case,
the data will be inserted in the specified sheet of the provided excel file. This
@@ -397,7 +397,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -421,7 +422,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/server-tools project on GitHub.
+
This module is part of the OCA/server-tools project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From 7455ec7f525aa6083919e6dd160cfd3b9c07c35a Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Fri, 6 Aug 2021 07:02:51 +0000
Subject: [PATCH 12/28] [UPD] Update sql_export_excel.pot
---
sql_export_excel/i18n/sql_export_excel.pot | 51 +++++++++++++++-------
1 file changed, 35 insertions(+), 16 deletions(-)
diff --git a/sql_export_excel/i18n/sql_export_excel.pot b/sql_export_excel/i18n/sql_export_excel.pot
index 7a178edff7..cc6eb97ab8 100644
--- a/sql_export_excel/i18n/sql_export_excel.pot
+++ b/sql_export_excel/i18n/sql_export_excel.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * sql_export_excel
+# * sql_export_excel
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -14,17 +14,17 @@ msgstr ""
"Plural-Forms: \n"
#. module: sql_export_excel
-#: selection:sql.export,file_format:0
-msgid "CSV"
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__col_position
+msgid "Column Position"
msgstr ""
#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__col_position
-msgid "Column Position"
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__display_name
+msgid "Display Name"
msgstr ""
#. module: sql_export_excel
-#: selection:sql.export,file_format:0
+#: model:ir.model.fields.selection,name:sql_export_excel.selection__sql_export__file_format__excel
msgid "Excel"
msgstr ""
@@ -43,9 +43,15 @@ msgstr ""
msgid "Header"
msgstr ""
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__id
+msgid "ID"
+msgstr ""
+
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__attachment_id
-msgid "If you configure an excel file (in xlsx format) here, the result of the query will be injected in it.\n"
+msgid ""
+"If you configure an excel file (in xlsx format) here, the result of the query will be injected in it.\n"
"It is usefull to feed data in a excel file pre-configured with calculation"
msgstr ""
@@ -66,7 +72,14 @@ msgstr ""
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__sheet_position
-msgid "Indicate the sheet's position of the excel template where the result of the sql query should be injected."
+msgid ""
+"Indicate the sheet's position of the excel template where the result of the "
+"sql query should be injected."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export____last_update
+msgid "Last Modified on"
msgstr ""
#. module: sql_export_excel
@@ -85,26 +98,32 @@ msgid "Sheet Position"
msgstr ""
#. module: sql_export_excel
-#: code:addons/sql_export_excel/models/sql_export.py:89
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__smart_search
+msgid "Smart Search"
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
-msgid "The Excel Template file contains less than %s sheets Please, adjust the Sheet Position parameter."
+msgid ""
+"The Excel Template file contains less than %s sheets Please, adjust the "
+"Sheet Position parameter."
msgstr ""
#. module: sql_export_excel
-#: code:addons/sql_export_excel/models/sql_export.py:62
+#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The column position can't be less than 1."
msgstr ""
#. module: sql_export_excel
-#: code:addons/sql_export_excel/models/sql_export.py:55
+#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The row position can't be less than 1."
msgstr ""
#. module: sql_export_excel
-#: code:addons/sql_export_excel/models/sql_export.py:48
+#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The sheet position can't be less than 1."
msgstr ""
-
From 9a466576d6a1dff8bd7d295f1563df8962da609a Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Thu, 2 Sep 2021 14:18:35 +0000
Subject: [PATCH 13/28] [UPD] Update sql_export_excel.pot
---
sql_export_excel/i18n/sql_export_excel.pot | 25 ++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/sql_export_excel/i18n/sql_export_excel.pot b/sql_export_excel/i18n/sql_export_excel.pot
index cc6eb97ab8..cfdca2ab9c 100644
--- a/sql_export_excel/i18n/sql_export_excel.pot
+++ b/sql_export_excel/i18n/sql_export_excel.pot
@@ -13,11 +13,31 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__changeset_change_ids
+msgid "Changeset Changes"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__changeset_ids
+msgid "Changesets"
+msgstr ""
+
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__col_position
msgid "Column Position"
msgstr ""
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__count_pending_changeset_changes
+msgid "Count Pending Changeset Changes"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__count_pending_changesets
+msgid "Count Pending Changesets"
+msgstr ""
+
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__display_name
msgid "Display Name"
@@ -127,3 +147,8 @@ msgstr ""
#, python-format
msgid "The sheet position can't be less than 1."
msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__user_can_see_changeset
+msgid "User Can See Changeset"
+msgstr ""
From 43410f17aa25b40ff6180718022e21853a986099 Mon Sep 17 00:00:00 2001
From: Maksym Yankin
Date: Mon, 31 Jan 2022 16:01:30 +0200
Subject: [PATCH 14/28] [IMP] sql_export_excel: pylint
---
sql_export_excel/models/sql_export.py | 4 +--
sql_export_excel/views/sql_export_view.xml | 37 ++++++++++------------
2 files changed, 19 insertions(+), 22 deletions(-)
diff --git a/sql_export_excel/models/sql_export.py b/sql_export_excel/models/sql_export.py
index 6165abe486..53cde9f076 100644
--- a/sql_export_excel/models/sql_export.py
+++ b/sql_export_excel/models/sql_export.py
@@ -93,13 +93,13 @@ def excel_get_data_from_query(self, variable_dict):
sheets = wb.worksheets
try:
ws = sheets[self.sheet_position - 1]
- except IndexError:
+ except IndexError as err:
raise exceptions.ValidationError(
_(
"The Excel Template file contains less than %s sheets "
"Please, adjust the Sheet Position parameter."
)
- )
+ ) from err
row_position = self.row_position or 1
col_position = self.col_position or 1
# Case of excel file creation
diff --git a/sql_export_excel/views/sql_export_view.xml b/sql_export_excel/views/sql_export_view.xml
index da26c05038..92669eef7f 100644
--- a/sql_export_excel/views/sql_export_view.xml
+++ b/sql_export_excel/views/sql_export_view.xml
@@ -1,7 +1,5 @@
-
-
-
+
sql.export
@@ -9,28 +7,27 @@
+ name="header"
+ attrs="{'invisible': [('file_format', '=', 'csv')]}"
+ />
+ name="attachment_id"
+ attrs="{'invisible': [('file_format', '!=', 'excel')]}"
+ />
+ name="sheet_position"
+ attrs="{'invisible': [('attachment_id', '=', False)]}"
+ />
+ name="row_position"
+ attrs="{'invisible': [('attachment_id', '=', False)]}"
+ />
+ name="col_position"
+ attrs="{'invisible': [('attachment_id', '=', False)]}"
+ />
-
-
+
From f91cb72685b75bef5fb48f85097a5e56794e9ac2 Mon Sep 17 00:00:00 2001
From: Maksym Yankin
Date: Mon, 31 Jan 2022 16:04:01 +0200
Subject: [PATCH 15/28] [MIG] sql_export_excel: Migration to 15.0
---
sql_export_excel/README.rst | 14 +++++++-------
sql_export_excel/__manifest__.py | 4 ++--
sql_export_excel/i18n/sql_export_excel.pot | 2 +-
sql_export_excel/static/description/index.html | 8 ++++----
sql_export_excel/tests/test_sql_query_excel.py | 7 ++++---
5 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/sql_export_excel/README.rst b/sql_export_excel/README.rst
index 2d3ebadf12..01f868200d 100644
--- a/sql_export_excel/README.rst
+++ b/sql_export_excel/README.rst
@@ -14,13 +14,13 @@ SQL Export Excel
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
- :target: https://github.com/OCA/server-tools/tree/14.0/sql_export_excel
- :alt: OCA/server-tools
+ :target: https://github.com/OCA/reporting-engine/tree/15.0/sql_export_excel
+ :alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/server-tools-14-0/server-tools-14-0-sql_export_excel
+ :target: https://translation.odoo-community.org/projects/reporting-engine-15-0/reporting-engine-15-0-sql_export_excel
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/149/14.0
+ :target: https://runbot.odoo-community.org/runbot/149/15.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -46,10 +46,10 @@ insert the data. By default, it will insert it in the first sheet, at first row/
Bug Tracker
===========
-Bugs are tracked on `GitHub Issues `_.
+Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -80,6 +80,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/server-tools `_ project on GitHub.
+This module is part of the `OCA/reporting-engine `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/sql_export_excel/__manifest__.py b/sql_export_excel/__manifest__.py
index 3562741c84..99d3063eb0 100644
--- a/sql_export_excel/__manifest__.py
+++ b/sql_export_excel/__manifest__.py
@@ -3,9 +3,9 @@
{
"name": "SQL Export Excel",
- "version": "14.0.1.1.0",
+ "version": "15.0.1.0.0",
"author": "Akretion,Odoo Community Association (OCA)",
- "website": "https://github.com/OCA/server-tools",
+ "website": "https://github.com/OCA/reporting-engine",
"license": "AGPL-3",
"category": "Generic Modules/Others",
"summary": "Allow to export a sql query to an excel file.",
diff --git a/sql_export_excel/i18n/sql_export_excel.pot b/sql_export_excel/i18n/sql_export_excel.pot
index cfdca2ab9c..a3b912de0a 100644
--- a/sql_export_excel/i18n/sql_export_excel.pot
+++ b/sql_export_excel/i18n/sql_export_excel.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
+"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
diff --git a/sql_export_excel/static/description/index.html b/sql_export_excel/static/description/index.html
index 4fb831b8f2..0c2222e482 100644
--- a/sql_export_excel/static/description/index.html
+++ b/sql_export_excel/static/description/index.html
@@ -367,7 +367,7 @@ SQL Export Excel
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
Add the possibility to extract data from a sql query toward an excel file.
It is also possible to provide an template excel file for a query. In this case,
the data will be inserted in the specified sheet of the provided excel file. This
@@ -394,10 +394,10 @@
-
Bugs are tracked on GitHub Issues.
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -422,7 +422,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/server-tools project on GitHub.
+
This module is part of the OCA/reporting-engine project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/sql_export_excel/tests/test_sql_query_excel.py b/sql_export_excel/tests/test_sql_query_excel.py
index 6ee1f3a1fa..7dc03c5a91 100644
--- a/sql_export_excel/tests/test_sql_query_excel.py
+++ b/sql_export_excel/tests/test_sql_query_excel.py
@@ -17,9 +17,10 @@
class TestExportSqlQueryExcel(TransactionCase):
- def setUp(self):
- super().setUp()
- self.wizard_obj = self.env["sql.file.wizard"]
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.wizard_obj = cls.env["sql.file.wizard"]
def get_workbook_from_query(self, wizard):
wizard.export_sql()
From 857e2929d1a01971cdaccfa478eaa9efedd8942c Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Wed, 2 Feb 2022 07:46:43 +0000
Subject: [PATCH 16/28] [UPD] Update sql_export_excel.pot
---
sql_export_excel/i18n/sql_export_excel.pot | 45 ----------------------
1 file changed, 45 deletions(-)
diff --git a/sql_export_excel/i18n/sql_export_excel.pot b/sql_export_excel/i18n/sql_export_excel.pot
index a3b912de0a..ce27a4f1f5 100644
--- a/sql_export_excel/i18n/sql_export_excel.pot
+++ b/sql_export_excel/i18n/sql_export_excel.pot
@@ -13,36 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__changeset_change_ids
-msgid "Changeset Changes"
-msgstr ""
-
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__changeset_ids
-msgid "Changesets"
-msgstr ""
-
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__col_position
msgid "Column Position"
msgstr ""
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__count_pending_changeset_changes
-msgid "Count Pending Changeset Changes"
-msgstr ""
-
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__count_pending_changesets
-msgid "Count Pending Changesets"
-msgstr ""
-
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__display_name
-msgid "Display Name"
-msgstr ""
-
#. module: sql_export_excel
#: model:ir.model.fields.selection,name:sql_export_excel.selection__sql_export__file_format__excel
msgid "Excel"
@@ -63,11 +38,6 @@ msgstr ""
msgid "Header"
msgstr ""
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__id
-msgid "ID"
-msgstr ""
-
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__attachment_id
msgid ""
@@ -97,11 +67,6 @@ msgid ""
"sql query should be injected."
msgstr ""
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export____last_update
-msgid "Last Modified on"
-msgstr ""
-
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__row_position
msgid "Row Position"
@@ -117,11 +82,6 @@ msgstr ""
msgid "Sheet Position"
msgstr ""
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__smart_search
-msgid "Smart Search"
-msgstr ""
-
#. module: sql_export_excel
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
@@ -147,8 +107,3 @@ msgstr ""
#, python-format
msgid "The sheet position can't be less than 1."
msgstr ""
-
-#. module: sql_export_excel
-#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__user_can_see_changeset
-msgid "User Can See Changeset"
-msgstr ""
From 46a26cedd74461623da9f6f513f6871419c41722 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 2 Feb 2022 07:49:09 +0000
Subject: [PATCH 17/28] [UPD] README.rst
---
sql_export_excel/README.rst | 4 ++--
sql_export_excel/static/description/index.html | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/sql_export_excel/README.rst b/sql_export_excel/README.rst
index 01f868200d..db81423417 100644
--- a/sql_export_excel/README.rst
+++ b/sql_export_excel/README.rst
@@ -13,14 +13,14 @@ SQL Export Excel
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
-.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
:target: https://github.com/OCA/reporting-engine/tree/15.0/sql_export_excel
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/reporting-engine-15-0/reporting-engine-15-0-sql_export_excel
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/149/15.0
+ :target: https://runbot.odoo-community.org/runbot/143/15.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
diff --git a/sql_export_excel/static/description/index.html b/sql_export_excel/static/description/index.html
index 0c2222e482..1b0f536af5 100644
--- a/sql_export_excel/static/description/index.html
+++ b/sql_export_excel/static/description/index.html
@@ -367,7 +367,7 @@ SQL Export Excel
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
Add the possibility to extract data from a sql query toward an excel file.
It is also possible to provide an template excel file for a query. In this case,
the data will be inserted in the specified sheet of the provided excel file. This
From 4e4cd2a91fb1ae547884ba233a716a09cd19ab34 Mon Sep 17 00:00:00 2001
From: jabelchi
Date: Wed, 15 Jun 2022 15:38:14 +0000
Subject: [PATCH 18/28] Added translation using Weblate (Catalan)
---
sql_export_excel/i18n/ca.po | 110 ++++++++++++++++++++++++++++++++++++
1 file changed, 110 insertions(+)
create mode 100644 sql_export_excel/i18n/ca.po
diff --git a/sql_export_excel/i18n/ca.po b/sql_export_excel/i18n/ca.po
new file mode 100644
index 0000000000..c9b37708da
--- /dev/null
+++ b/sql_export_excel/i18n/ca.po
@@ -0,0 +1,110 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * sql_export_excel
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__col_position
+msgid "Column Position"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields.selection,name:sql_export_excel.selection__sql_export__file_format__excel
+msgid "Excel"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__attachment_id
+msgid "Excel Template"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__file_format
+msgid "File Format"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__header
+msgid "Header"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__attachment_id
+msgid ""
+"If you configure an excel file (in xlsx format) here, the result of the query will be injected in it.\n"
+"It is usefull to feed data in a excel file pre-configured with calculation"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__col_position
+msgid "Indicate from which column the result of the query should be injected."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__row_position
+msgid "Indicate from which row the result of the query should be injected."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__header
+msgid "Indicate if the header should be exported to the file."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,help:sql_export_excel.field_sql_export__sheet_position
+msgid ""
+"Indicate the sheet's position of the excel template where the result of the "
+"sql query should be injected."
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__row_position
+msgid "Row Position"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model,name:sql_export_excel.model_sql_export
+msgid "SQL export"
+msgstr ""
+
+#. module: sql_export_excel
+#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__sheet_position
+msgid "Sheet Position"
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:0
+#, python-format
+msgid ""
+"The Excel Template file contains less than %s sheets Please, adjust the "
+"Sheet Position parameter."
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:0
+#, python-format
+msgid "The column position can't be less than 1."
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:0
+#, python-format
+msgid "The row position can't be less than 1."
+msgstr ""
+
+#. module: sql_export_excel
+#: code:addons/sql_export_excel/models/sql_export.py:0
+#, python-format
+msgid "The sheet position can't be less than 1."
+msgstr ""
From d4f55e07e6bc15d75deb191a6bd5ccc46aa6c5bf Mon Sep 17 00:00:00 2001
From: jabelchi
Date: Wed, 15 Jun 2022 15:47:00 +0000
Subject: [PATCH 19/28] Translated using Weblate (Catalan)
Currently translated at 100.0% (17 of 17 strings)
Translation: reporting-engine-15.0/reporting-engine-15.0-sql_export_excel
Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-15-0/reporting-engine-15-0-sql_export_excel/ca/
---
sql_export_excel/i18n/ca.po | 38 ++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-)
diff --git a/sql_export_excel/i18n/ca.po b/sql_export_excel/i18n/ca.po
index c9b37708da..8f64f3b39b 100644
--- a/sql_export_excel/i18n/ca.po
+++ b/sql_export_excel/i18n/ca.po
@@ -6,38 +6,40 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2022-06-15 18:05+0000\n"
+"Last-Translator: jabelchi \n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__col_position
msgid "Column Position"
-msgstr ""
+msgstr "Posició columna"
#. module: sql_export_excel
#: model:ir.model.fields.selection,name:sql_export_excel.selection__sql_export__file_format__excel
msgid "Excel"
-msgstr ""
+msgstr "Excel"
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__attachment_id
msgid "Excel Template"
-msgstr ""
+msgstr "Plantilla Excel"
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__file_format
msgid "File Format"
-msgstr ""
+msgstr "Format de fitxer"
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__header
msgid "Header"
-msgstr ""
+msgstr "Capçalera"
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__attachment_id
@@ -45,21 +47,27 @@ msgid ""
"If you configure an excel file (in xlsx format) here, the result of the query will be injected in it.\n"
"It is usefull to feed data in a excel file pre-configured with calculation"
msgstr ""
+"Si configureu aquí un fitxer Excel (en format xlsx), s'hi injectarà el "
+"resultat de la consulta.\n"
+"Això és útil per a carregar dades en un fitxer Excel pre-configurat amb "
+"càlculs"
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__col_position
msgid "Indicate from which column the result of the query should be injected."
msgstr ""
+"Indiqueu des de quina columna ha de carregar-se el resultat de la consulta."
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__row_position
msgid "Indicate from which row the result of the query should be injected."
msgstr ""
+"Indiqueu des de quina fila ha de carregar-se el resultat de la consulta."
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__header
msgid "Indicate if the header should be exported to the file."
-msgstr ""
+msgstr "Indiqueu si la capçalera ha d'exportar-se al fitxer."
#. module: sql_export_excel
#: model:ir.model.fields,help:sql_export_excel.field_sql_export__sheet_position
@@ -67,21 +75,23 @@ msgid ""
"Indicate the sheet's position of the excel template where the result of the "
"sql query should be injected."
msgstr ""
+"Indiqueu la posició del full de la plantilla Excel on s'ha de carregar el "
+"resultat de la consulta SQL."
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__row_position
msgid "Row Position"
-msgstr ""
+msgstr "Posició fila"
#. module: sql_export_excel
#: model:ir.model,name:sql_export_excel.model_sql_export
msgid "SQL export"
-msgstr ""
+msgstr "Exportació SQL"
#. module: sql_export_excel
#: model:ir.model.fields,field_description:sql_export_excel.field_sql_export__sheet_position
msgid "Sheet Position"
-msgstr ""
+msgstr "Posició del full"
#. module: sql_export_excel
#: code:addons/sql_export_excel/models/sql_export.py:0
@@ -90,21 +100,23 @@ msgid ""
"The Excel Template file contains less than %s sheets Please, adjust the "
"Sheet Position parameter."
msgstr ""
+"La plantilla Excel conté menys de %s fulls. Si us plau, corregiu el "
+"paràmetre de la posició del full."
#. module: sql_export_excel
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The column position can't be less than 1."
-msgstr ""
+msgstr "La posició de la columna no pot ser menor que 1."
#. module: sql_export_excel
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The row position can't be less than 1."
-msgstr ""
+msgstr "La posició de la fila no pot ser menor que 1."
#. module: sql_export_excel
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The sheet position can't be less than 1."
-msgstr ""
+msgstr "La posició del full no pot ser menor que 1."
From d78c6d4aa29ff3ed53776cd60429c2af81b180a2 Mon Sep 17 00:00:00 2001
From: Florian da Costa
Date: Tue, 13 Dec 2022 21:04:35 +0100
Subject: [PATCH 20/28] [16.0][MIG] sql_export_excel : migration to v16
---
sql_export_excel/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sql_export_excel/__manifest__.py b/sql_export_excel/__manifest__.py
index 99d3063eb0..6fc1f0c99c 100644
--- a/sql_export_excel/__manifest__.py
+++ b/sql_export_excel/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "SQL Export Excel",
- "version": "15.0.1.0.0",
+ "version": "16.0.1.0.0",
"author": "Akretion,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
"license": "AGPL-3",
From 9ba428396b30e20697a2d22db115ec1d8fa5a504 Mon Sep 17 00:00:00 2001
From: Florian da Costa
Date: Fri, 3 Mar 2023 10:05:02 +0100
Subject: [PATCH 21/28] [FIX] Manage jsonb fields
---
sql_export_excel/models/sql_export.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sql_export_excel/models/sql_export.py b/sql_export_excel/models/sql_export.py
index 53cde9f076..68194c52ec 100644
--- a/sql_export_excel/models/sql_export.py
+++ b/sql_export_excel/models/sql_export.py
@@ -110,6 +110,9 @@ def excel_get_data_from_query(self, variable_dict):
col_position = 1
for index, row in enumerate(res, row_position):
for col, val in enumerate(row, col_position):
+ # manage jsonb field as dict are not writable on the excel cell
+ if isinstance(val, dict):
+ val = str(val)
ws.cell(row=index, column=col).value = val
output = BytesIO()
wb.save(output)
From 8911a815c6243161e4ab60c9cfc44bfcfb6529de Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Mon, 25 Sep 2023 10:13:41 +0000
Subject: [PATCH 22/28] [UPD] Update sql_export_excel.pot
---
sql_export_excel/i18n/sql_export_excel.pot | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/sql_export_excel/i18n/sql_export_excel.pot b/sql_export_excel/i18n/sql_export_excel.pot
index ce27a4f1f5..f9758ca58f 100644
--- a/sql_export_excel/i18n/sql_export_excel.pot
+++ b/sql_export_excel/i18n/sql_export_excel.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 15.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -83,6 +83,7 @@ msgid "Sheet Position"
msgstr ""
#. module: sql_export_excel
+#. odoo-python
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid ""
@@ -91,18 +92,21 @@ msgid ""
msgstr ""
#. module: sql_export_excel
+#. odoo-python
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The column position can't be less than 1."
msgstr ""
#. module: sql_export_excel
+#. odoo-python
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The row position can't be less than 1."
msgstr ""
#. module: sql_export_excel
+#. odoo-python
#: code:addons/sql_export_excel/models/sql_export.py:0
#, python-format
msgid "The sheet position can't be less than 1."
From a7d78d2be4cc09b509df3bb8f7a77eb77eea72f6 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Mon, 25 Sep 2023 10:18:02 +0000
Subject: [PATCH 23/28] [BOT] post-merge updates
---
sql_export_excel/README.rst | 23 +++++-----
sql_export_excel/__manifest__.py | 2 +-
.../static/description/index.html | 42 ++++++++++---------
3 files changed, 36 insertions(+), 31 deletions(-)
diff --git a/sql_export_excel/README.rst b/sql_export_excel/README.rst
index db81423417..7905a883b8 100644
--- a/sql_export_excel/README.rst
+++ b/sql_export_excel/README.rst
@@ -2,10 +2,13 @@
SQL Export Excel
================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:140000da7d6e4acfcacee34bf261cfa64e2d76d8e01e4aaccfc11cf3bc93b288
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -14,16 +17,16 @@ SQL Export Excel
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
- :target: https://github.com/OCA/reporting-engine/tree/15.0/sql_export_excel
+ :target: https://github.com/OCA/reporting-engine/tree/16.0/sql_export_excel
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/reporting-engine-15-0/reporting-engine-15-0-sql_export_excel
+ :target: https://translation.odoo-community.org/projects/reporting-engine-16-0/reporting-engine-16-0-sql_export_excel
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/143/15.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=16.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
Add the possibility to extract data from a sql query toward an excel file.
It is also possible to provide an template excel file for a query. In this case,
@@ -48,8 +51,8 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -80,6 +83,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/reporting-engine `_ project on GitHub.
+This module is part of the `OCA/reporting-engine `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/sql_export_excel/__manifest__.py b/sql_export_excel/__manifest__.py
index 6fc1f0c99c..89816b0db0 100644
--- a/sql_export_excel/__manifest__.py
+++ b/sql_export_excel/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "SQL Export Excel",
- "version": "16.0.1.0.0",
+ "version": "16.0.1.0.1",
"author": "Akretion,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
"license": "AGPL-3",
diff --git a/sql_export_excel/static/description/index.html b/sql_export_excel/static/description/index.html
index 1b0f536af5..9814e15017 100644
--- a/sql_export_excel/static/description/index.html
+++ b/sql_export_excel/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
SQL Export Excel