From 63283bd81da77a3446f219e63cc8bc75c03dce9d Mon Sep 17 00:00:00 2001 From: Dave Lasley Date: Wed, 7 Dec 2016 18:28:41 -0800 Subject: [PATCH 1/7] [IMP] base_external_dbsource: Refactor & Split by source * Heavily refactor code for reusability * Split all sources into independent modules * Add more test coverage * Add CRUD methods * Add iterator execute return to roadmap [UPD] Update base_external_dbsource_mssql.pot --- base_external_dbsource_mssql/README.rst | 80 +++++++++++++++++++ base_external_dbsource_mssql/__init__.py | 2 + base_external_dbsource_mssql/__manifest__.py | 29 +++++++ .../demo/base_external_dbsource.xml | 9 +++ .../i18n/base_external_dbsource_mssql.pot | 20 +++++ base_external_dbsource_mssql/i18n/de.po | 24 ++++++ base_external_dbsource_mssql/i18n/es.po | 24 ++++++ base_external_dbsource_mssql/i18n/hr.po | 25 ++++++ base_external_dbsource_mssql/i18n/nl_NL.po | 25 ++++++ base_external_dbsource_mssql/i18n/pt_BR.po | 25 ++++++ base_external_dbsource_mssql/i18n/sl.po | 25 ++++++ base_external_dbsource_mssql/i18n/tr.po | 24 ++++++ .../models/__init__.py | 3 + .../models/base_external_dbsource.py | 45 +++++++++++ .../tests/__init__.py | 3 + .../tests/test_base_external_dbsource.py | 42 ++++++++++ 16 files changed, 405 insertions(+) create mode 100644 base_external_dbsource_mssql/README.rst create mode 100644 base_external_dbsource_mssql/__init__.py create mode 100644 base_external_dbsource_mssql/__manifest__.py create mode 100644 base_external_dbsource_mssql/demo/base_external_dbsource.xml create mode 100644 base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot create mode 100644 base_external_dbsource_mssql/i18n/de.po create mode 100644 base_external_dbsource_mssql/i18n/es.po create mode 100644 base_external_dbsource_mssql/i18n/hr.po create mode 100644 base_external_dbsource_mssql/i18n/nl_NL.po create mode 100644 base_external_dbsource_mssql/i18n/pt_BR.po create mode 100644 base_external_dbsource_mssql/i18n/sl.po create mode 100644 base_external_dbsource_mssql/i18n/tr.po create mode 100644 base_external_dbsource_mssql/models/__init__.py create mode 100644 base_external_dbsource_mssql/models/base_external_dbsource.py create mode 100644 base_external_dbsource_mssql/tests/__init__.py create mode 100644 base_external_dbsource_mssql/tests/test_base_external_dbsource.py diff --git a/base_external_dbsource_mssql/README.rst b/base_external_dbsource_mssql/README.rst new file mode 100644 index 00000000..f6669077 --- /dev/null +++ b/base_external_dbsource_mssql/README.rst @@ -0,0 +1,80 @@ +.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +================================ +External Database Source - MSSQL +================================ + +This module extends ``base_external_dbsource``, allowing you to connect to +foreign MSSQL databases using SQLAlchemy. + + + +Installation +============ + +* Install & configure FreeTDS driver (tdsodbc package) +* Install ``sqlalchemy`` and ``pymssql`` python libraries +* Install ``base_external_dbsource_sqlite`` Odoo module + +Configuration +============= + +Database sources can be configured in Settings > Configuration -> Data sources. + + +Usage +===== + +To use this module: + +* Go to Settings > Database Structure > Database Sources +* Click on Create to enter the following information: + +* Datasource name  +* Pasword +* Connector: Choose the database to which you want to connect +* Connection string: Specify how to connect to database + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/149/10.0 for server-tools + +Known issues / Roadmap +====================== + +* Add X.509 authentication + +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. + +Credits +======= + +Contributors +------------ + +* Daniel Reis +* Maxime Chambreuil +* Gervais Naoussi +* Dave Lasley + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://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/base_external_dbsource_mssql/__init__.py b/base_external_dbsource_mssql/__init__.py new file mode 100644 index 00000000..a0fdc10f --- /dev/null +++ b/base_external_dbsource_mssql/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import models diff --git a/base_external_dbsource_mssql/__manifest__.py b/base_external_dbsource_mssql/__manifest__.py new file mode 100644 index 00000000..3d1d66d7 --- /dev/null +++ b/base_external_dbsource_mssql/__manifest__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Copyright <2011> +# Copyright 2016 LasLabs Inc. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +{ + 'name': 'External Database Source - MSSQL', + 'version': '10.0.1.0.0', + 'category': 'Tools', + 'author': "Daniel Reis, " + "LasLabs, " + "Odoo Community Association (OCA)", + 'website': 'https://github.com/OCA/server-tools', + 'license': 'LGPL-3', + 'depends': [ + 'base_external_dbsource_sqlite', + ], + # Uncomment this for v11 + # 'external_dependencies': [ + # 'python': [ + # 'sqlalchemy', + # 'pymssql', + # ] + # ], + 'demo': [ + 'demo/base_external_dbsource.xml', + ], + 'installable': True, + 'auto_install': True, # Remove this key for v11 +} diff --git a/base_external_dbsource_mssql/demo/base_external_dbsource.xml b/base_external_dbsource_mssql/demo/base_external_dbsource.xml new file mode 100644 index 00000000..f30a392e --- /dev/null +++ b/base_external_dbsource_mssql/demo/base_external_dbsource.xml @@ -0,0 +1,9 @@ + + + + MSSQL Demo + Server=myServerAddress;Database=myDataBase;User Id=myUsername; + password + mssql + + diff --git a/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot new file mode 100644 index 00000000..b0a169c2 --- /dev/null +++ b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot @@ -0,0 +1,20 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.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: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "" + diff --git a/base_external_dbsource_mssql/i18n/de.po b/base_external_dbsource_mssql/i18n/de.po new file mode 100644 index 00000000..600f9179 --- /dev/null +++ b/base_external_dbsource_mssql/i18n/de.po @@ -0,0 +1,24 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +# Translators: +# Rudolf Schnapka , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-10 00:47+0000\n" +"PO-Revision-Date: 2017-05-10 00:47+0000\n" +"Last-Translator: Rudolf Schnapka , 2017\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\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: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "Externe Datenbankquellen" diff --git a/base_external_dbsource_mssql/i18n/es.po b/base_external_dbsource_mssql/i18n/es.po new file mode 100644 index 00000000..160c94d6 --- /dev/null +++ b/base_external_dbsource_mssql/i18n/es.po @@ -0,0 +1,24 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +# Translators: +# Fernando Lara , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-22 00:54+0000\n" +"PO-Revision-Date: 2017-02-22 00:54+0000\n" +"Last-Translator: Fernando Lara , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\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: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "Fuentes externas de la base de datos" diff --git a/base_external_dbsource_mssql/i18n/hr.po b/base_external_dbsource_mssql/i18n/hr.po new file mode 100644 index 00000000..e18dbc9f --- /dev/null +++ b/base_external_dbsource_mssql/i18n/hr.po @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +# Translators: +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-10 00:47+0000\n" +"PO-Revision-Date: 2017-05-10 00:47+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "Vanjske baze" diff --git a/base_external_dbsource_mssql/i18n/nl_NL.po b/base_external_dbsource_mssql/i18n/nl_NL.po new file mode 100644 index 00000000..1bd6b2a7 --- /dev/null +++ b/base_external_dbsource_mssql/i18n/nl_NL.po @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-06-22 01:11+0000\n" +"PO-Revision-Date: 2017-06-22 01:11+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\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: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "Externe databasebronnen" diff --git a/base_external_dbsource_mssql/i18n/pt_BR.po b/base_external_dbsource_mssql/i18n/pt_BR.po new file mode 100644 index 00000000..ace55613 --- /dev/null +++ b/base_external_dbsource_mssql/i18n/pt_BR.po @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-21 04:22+0000\n" +"PO-Revision-Date: 2017-01-21 04:22+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/" +"teams/23907/pt_BR/)\n" +"Language: pt_BR\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: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "Fontes Banco de Dados Externo" diff --git a/base_external_dbsource_mssql/i18n/sl.po b/base_external_dbsource_mssql/i18n/sl.po new file mode 100644 index 00000000..fda14998 --- /dev/null +++ b/base_external_dbsource_mssql/i18n/sl.po @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-21 04:22+0000\n" +"PO-Revision-Date: 2017-01-21 04:22+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" + +#. module: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "Viri zunanjih podatkovnih baz" diff --git a/base_external_dbsource_mssql/i18n/tr.po b/base_external_dbsource_mssql/i18n/tr.po new file mode 100644 index 00000000..d18bdfcc --- /dev/null +++ b/base_external_dbsource_mssql/i18n/tr.po @@ -0,0 +1,24 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_external_dbsource_mssql +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-21 04:22+0000\n" +"PO-Revision-Date: 2017-01-21 04:22+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"Language: tr\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: base_external_dbsource_mssql +#: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource +msgid "External Database Sources" +msgstr "Dış veritabanı kaynakları" diff --git a/base_external_dbsource_mssql/models/__init__.py b/base_external_dbsource_mssql/models/__init__.py new file mode 100644 index 00000000..44b7269b --- /dev/null +++ b/base_external_dbsource_mssql/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import base_external_dbsource diff --git a/base_external_dbsource_mssql/models/base_external_dbsource.py b/base_external_dbsource_mssql/models/base_external_dbsource.py new file mode 100644 index 00000000..81a6ec28 --- /dev/null +++ b/base_external_dbsource_mssql/models/base_external_dbsource.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Copyright 2011 Daniel Reis +# Copyright 2016 LasLabs Inc. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +import logging + +from odoo import api, models + +_logger = logging.getLogger(__name__) + +try: + from odoo.addons.base_external_dbsource.models import ( + base_external_dbsource, + ) + CONNECTORS = base_external_dbsource.BaseExternalDbsource.CONNECTORS + try: + import pymssql + CONNECTORS.append(('mssql', 'Microsoft SQL Server')) + assert pymssql + except (ImportError, AssertionError): + _logger.info('MS SQL Server not available. Please install "pymssql" ' + 'python package.') +except ImportError: + _logger.info('base_external_dbsource Odoo module not found.') + + +class BaseExternalDbsource(models.Model): + """ It provides logic for connection to a MSSQL data source. """ + + _inherit = "base.external.dbsource" + + PWD_STRING_MSSQL = 'Password=%s;' + + @api.multi + def connection_close_mssql(self, connection): + return connection.close() + + @api.multi + def connection_open_mssql(self): + return self._connection_open_sqlalchemy() + + @api.multi + def execute_mssql(self, sqlquery, sqlparams, metadata): + return self._execute_sqlalchemy(sqlquery, sqlparams, metadata) diff --git a/base_external_dbsource_mssql/tests/__init__.py b/base_external_dbsource_mssql/tests/__init__.py new file mode 100644 index 00000000..768d7990 --- /dev/null +++ b/base_external_dbsource_mssql/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- encoding: utf-8 -*- + +from . import test_base_external_dbsource diff --git a/base_external_dbsource_mssql/tests/test_base_external_dbsource.py b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py new file mode 100644 index 00000000..f8af87b2 --- /dev/null +++ b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 LasLabs Inc. + +import mock + +from odoo.tests import common + + +ADAPTER = ('odoo.addons.base_external_dbsource_mssql.models' + '.base_external_dbsource.pymssql') + + +class TestBaseExternalDbsource(common.TransactionCase): + + def setUp(self): + super(TestBaseExternalDbsource, self).setUp() + self.dbsource = self.env.ref( + 'base_external_dbsource_mssql.demo_mssql', + ) + + def test_connection_close_mssql(self): + """ It should close the connection """ + connection = mock.MagicMock() + res = self.dbsource.connection_close_mssql(connection) + self.assertEqual(res, connection.close()) + + def test_connection_open_mssql(self): + """ It should call SQLAlchemy open """ + with mock.patch.object( + self.dbsource, '_connection_open_sqlalchemy' + ) as parent_method: + self.dbsource.connection_open_mssql() + parent_method.assert_called_once_with() + + def test_excecute_mssql(self): + """ It should pass args to SQLAlchemy execute """ + expect = 'sqlquery', 'sqlparams', 'metadata' + with mock.patch.object( + self.dbsource, '_execute_sqlalchemy' + ) as parent_method: + self.dbsource.execute_mssql(*expect) + parent_method.assert_called_once_with(*expect) From a0710a866aafc7601b51481c11a69d1b44fb6cbd Mon Sep 17 00:00:00 2001 From: Sergio Teruel Albert Date: Wed, 27 Jun 2018 12:46:20 +0200 Subject: [PATCH 2/7] [11.0][MIG] base_external_dbsource_mssql: Migration to v11.0 [UPD] README.rst [UPD] Update base_external_dbsource_mssql.pot [UPD] README.rst --- base_external_dbsource_mssql/README.rst | 71 ++- base_external_dbsource_mssql/__init__.py | 1 - base_external_dbsource_mssql/__manifest__.py | 21 +- .../i18n/base_external_dbsource_mssql.pot | 2 +- .../models/__init__.py | 2 - .../models/base_external_dbsource.py | 1 - .../readme/CONFIGURE.rst | 4 + .../readme/CONTRIBUTORS.rst | 6 + .../readme/DESCRIPTION.rst | 2 + .../readme/INSTALL.rst | 5 + .../readme/ROADMAP.rst | 1 + base_external_dbsource_mssql/readme/USAGE.rst | 9 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 465 ++++++++++++++++++ .../tests/__init__.py | 2 - .../tests/test_base_external_dbsource.py | 1 - 16 files changed, 555 insertions(+), 38 deletions(-) create mode 100644 base_external_dbsource_mssql/readme/CONFIGURE.rst create mode 100644 base_external_dbsource_mssql/readme/CONTRIBUTORS.rst create mode 100644 base_external_dbsource_mssql/readme/DESCRIPTION.rst create mode 100644 base_external_dbsource_mssql/readme/INSTALL.rst create mode 100644 base_external_dbsource_mssql/readme/ROADMAP.rst create mode 100644 base_external_dbsource_mssql/readme/USAGE.rst create mode 100644 base_external_dbsource_mssql/static/description/icon.png create mode 100644 base_external_dbsource_mssql/static/description/index.html diff --git a/base_external_dbsource_mssql/README.rst b/base_external_dbsource_mssql/README.rst index f6669077..b2cda6d5 100644 --- a/base_external_dbsource_mssql/README.rst +++ b/base_external_dbsource_mssql/README.rst @@ -1,19 +1,43 @@ -.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg - :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html - :alt: License: LGPL-3 - ================================ External Database Source - MSSQL ================================ +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github + :target: https://github.com/OCA/server-backend/tree/11.0/base_external_dbsource_mssql + :alt: OCA/server-backend +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-backend-11-0/server-backend-11-0-base_external_dbsource_mssql + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/253/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + This module extends ``base_external_dbsource``, allowing you to connect to foreign MSSQL databases using SQLAlchemy. +**Table of contents** +.. contents:: + :local: Installation ============ +To install this module, you need to: + * Install & configure FreeTDS driver (tdsodbc package) * Install ``sqlalchemy`` and ``pymssql`` python libraries * Install ``base_external_dbsource_sqlite`` Odoo module @@ -21,15 +45,17 @@ Installation Configuration ============= -Database sources can be configured in Settings > Configuration -> Data sources. +To configure this module, you need to: +#. Database sources can be configured in Settings > Technical > + Database Structure > Database sources. Usage ===== To use this module: -* Go to Settings > Database Structure > Database Sources +* Go to Settings > Technical > Database Structure > Database Sources * Click on Create to enter the following information: * Datasource name  @@ -37,10 +63,6 @@ To use this module: * Connector: Choose the database to which you want to connect * Connection string: Specify how to connect to database -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/149/10.0 for server-tools - Known issues / Roadmap ====================== @@ -49,32 +71,45 @@ Known issues / Roadmap 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. +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 +~~~~~~~ + +* Daniel Reis +* LasLabs + Contributors ------------- +~~~~~~~~~~~~ * Daniel Reis * Maxime Chambreuil * Gervais Naoussi * Dave Lasley +* `Tecnativa `_: + * Sergio Teruel -Maintainer ----------- +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://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. +This module is part of the `OCA/server-backend `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_external_dbsource_mssql/__init__.py b/base_external_dbsource_mssql/__init__.py index a0fdc10f..0650744f 100644 --- a/base_external_dbsource_mssql/__init__.py +++ b/base_external_dbsource_mssql/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import models diff --git a/base_external_dbsource_mssql/__manifest__.py b/base_external_dbsource_mssql/__manifest__.py index 3d1d66d7..4c6ae726 100644 --- a/base_external_dbsource_mssql/__manifest__.py +++ b/base_external_dbsource_mssql/__manifest__.py @@ -1,29 +1,26 @@ -# -*- coding: utf-8 -*- # Copyright <2011> # Copyright 2016 LasLabs Inc. -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). { 'name': 'External Database Source - MSSQL', - 'version': '10.0.1.0.0', + 'version': '11.0.1.0.0', 'category': 'Tools', 'author': "Daniel Reis, " "LasLabs, " "Odoo Community Association (OCA)", - 'website': 'https://github.com/OCA/server-tools', + 'website': 'https://github.com/OCA/server-backend', 'license': 'LGPL-3', 'depends': [ 'base_external_dbsource_sqlite', ], - # Uncomment this for v11 - # 'external_dependencies': [ - # 'python': [ - # 'sqlalchemy', - # 'pymssql', - # ] - # ], + 'external_dependencies': { + 'python': [ + 'sqlalchemy', + 'pymssql', + ], + }, 'demo': [ 'demo/base_external_dbsource.xml', ], 'installable': True, - 'auto_install': True, # Remove this key for v11 } diff --git a/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot index b0a169c2..e37bb794 100644 --- a/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot +++ b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" diff --git a/base_external_dbsource_mssql/models/__init__.py b/base_external_dbsource_mssql/models/__init__.py index 44b7269b..91032fcb 100644 --- a/base_external_dbsource_mssql/models/__init__.py +++ b/base_external_dbsource_mssql/models/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- - from . import base_external_dbsource diff --git a/base_external_dbsource_mssql/models/base_external_dbsource.py b/base_external_dbsource_mssql/models/base_external_dbsource.py index 81a6ec28..bb1b671a 100644 --- a/base_external_dbsource_mssql/models/base_external_dbsource.py +++ b/base_external_dbsource_mssql/models/base_external_dbsource.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2011 Daniel Reis # Copyright 2016 LasLabs Inc. # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). diff --git a/base_external_dbsource_mssql/readme/CONFIGURE.rst b/base_external_dbsource_mssql/readme/CONFIGURE.rst new file mode 100644 index 00000000..f8fb7dd3 --- /dev/null +++ b/base_external_dbsource_mssql/readme/CONFIGURE.rst @@ -0,0 +1,4 @@ +To configure this module, you need to: + +#. Database sources can be configured in Settings > Technical > + Database Structure > Database sources. diff --git a/base_external_dbsource_mssql/readme/CONTRIBUTORS.rst b/base_external_dbsource_mssql/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..d00499db --- /dev/null +++ b/base_external_dbsource_mssql/readme/CONTRIBUTORS.rst @@ -0,0 +1,6 @@ +* Daniel Reis +* Maxime Chambreuil +* Gervais Naoussi +* Dave Lasley +* `Tecnativa `_: + * Sergio Teruel diff --git a/base_external_dbsource_mssql/readme/DESCRIPTION.rst b/base_external_dbsource_mssql/readme/DESCRIPTION.rst new file mode 100644 index 00000000..760ea45b --- /dev/null +++ b/base_external_dbsource_mssql/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module extends ``base_external_dbsource``, allowing you to connect to +foreign MSSQL databases using SQLAlchemy. diff --git a/base_external_dbsource_mssql/readme/INSTALL.rst b/base_external_dbsource_mssql/readme/INSTALL.rst new file mode 100644 index 00000000..d4fa27f6 --- /dev/null +++ b/base_external_dbsource_mssql/readme/INSTALL.rst @@ -0,0 +1,5 @@ +To install this module, you need to: + +* Install & configure FreeTDS driver (tdsodbc package) +* Install ``sqlalchemy`` and ``pymssql`` python libraries +* Install ``base_external_dbsource_sqlite`` Odoo module diff --git a/base_external_dbsource_mssql/readme/ROADMAP.rst b/base_external_dbsource_mssql/readme/ROADMAP.rst new file mode 100644 index 00000000..fdddc735 --- /dev/null +++ b/base_external_dbsource_mssql/readme/ROADMAP.rst @@ -0,0 +1 @@ +* Add X.509 authentication \ No newline at end of file diff --git a/base_external_dbsource_mssql/readme/USAGE.rst b/base_external_dbsource_mssql/readme/USAGE.rst new file mode 100644 index 00000000..d366e192 --- /dev/null +++ b/base_external_dbsource_mssql/readme/USAGE.rst @@ -0,0 +1,9 @@ +To use this module: + +* Go to Settings > Technical > Database Structure > Database Sources +* Click on Create to enter the following information: + +* Datasource name  +* Pasword +* Connector: Choose the database to which you want to connect +* Connection string: Specify how to connect to database diff --git a/base_external_dbsource_mssql/static/description/icon.png b/base_external_dbsource_mssql/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/base_external_dbsource_mssql/static/description/index.html b/base_external_dbsource_mssql/static/description/index.html new file mode 100644 index 00000000..0ef2f37a --- /dev/null +++ b/base_external_dbsource_mssql/static/description/index.html @@ -0,0 +1,465 @@ + + + + + + +External Database Source - MSSQL + + + +
+

External Database Source - MSSQL

+ + +

Beta License: LGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

+

This module extends base_external_dbsource, allowing you to connect to +foreign MSSQL databases using SQLAlchemy.

+

Table of contents

+ +
+

Installation

+

To install this module, you need to:

+
    +
  • Install & configure FreeTDS driver (tdsodbc package)
  • +
  • Install sqlalchemy and pymssql python libraries
  • +
  • Install base_external_dbsource_sqlite Odoo module
  • +
+
+
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Database sources can be configured in Settings > Technical > +Database Structure > Database sources.
  2. +
+
+
+

Usage

+

To use this module:

+
    +
  • Go to Settings > Technical > Database Structure > Database Sources
  • +
  • Click on Create to enter the following information:
  • +
  • Datasource name
  • +
  • Pasword
  • +
  • Connector: Choose the database to which you want to connect
  • +
  • Connection string: Specify how to connect to database
  • +
+
+
+

Known issues / Roadmap

+
    +
  • Add X.509 authentication
  • +
+
+
+

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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Daniel Reis
  • +
  • LasLabs
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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-backend project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/base_external_dbsource_mssql/tests/__init__.py b/base_external_dbsource_mssql/tests/__init__.py index 768d7990..87aa84b3 100644 --- a/base_external_dbsource_mssql/tests/__init__.py +++ b/base_external_dbsource_mssql/tests/__init__.py @@ -1,3 +1 @@ -# -*- encoding: utf-8 -*- - from . import test_base_external_dbsource diff --git a/base_external_dbsource_mssql/tests/test_base_external_dbsource.py b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py index f8af87b2..fcb6a3c6 100644 --- a/base_external_dbsource_mssql/tests/test_base_external_dbsource.py +++ b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2016 LasLabs Inc. import mock From 90b71def037a4af3bbee4ddc2129e5cd1aa45aab Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Wed, 8 Jan 2020 10:40:38 +0100 Subject: [PATCH 3/7] [MIG] base_external_dbsource_mssql: Migration to v12.0 [UPD] Update base_external_dbsource_mssql.pot --- base_external_dbsource_mssql/README.rst | 12 +++---- base_external_dbsource_mssql/__manifest__.py | 31 ++++++------------- .../i18n/base_external_dbsource_mssql.pot | 2 +- .../models/base_external_dbsource.py | 17 +++++----- .../readme/CONTRIBUTORS.rst | 2 +- .../readme/ROADMAP.rst | 2 +- .../static/description/index.html | 16 +++++++--- .../tests/test_base_external_dbsource.py | 19 +++++------- 8 files changed, 46 insertions(+), 55 deletions(-) diff --git a/base_external_dbsource_mssql/README.rst b/base_external_dbsource_mssql/README.rst index b2cda6d5..c4586fa0 100644 --- a/base_external_dbsource_mssql/README.rst +++ b/base_external_dbsource_mssql/README.rst @@ -14,13 +14,13 @@ External Database Source - MSSQL :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github - :target: https://github.com/OCA/server-backend/tree/11.0/base_external_dbsource_mssql + :target: https://github.com/OCA/server-backend/tree/12.0/base_external_dbsource_mssql :alt: OCA/server-backend .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-backend-11-0/server-backend-11-0-base_external_dbsource_mssql + :target: https://translation.odoo-community.org/projects/server-backend-12-0/server-backend-12-0-base_external_dbsource_mssql :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/253/11.0 + :target: https://runbot.odoo-community.org/runbot/253/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -74,7 +74,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. @@ -95,7 +95,7 @@ Contributors * Gervais Naoussi * Dave Lasley * `Tecnativa `_: - * Sergio Teruel + * Sergio Teruel Maintainers ~~~~~~~~~~~ @@ -110,6 +110,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-backend `_ project on GitHub. +This module is part of the `OCA/server-backend `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_external_dbsource_mssql/__manifest__.py b/base_external_dbsource_mssql/__manifest__.py index 4c6ae726..1104d060 100644 --- a/base_external_dbsource_mssql/__manifest__.py +++ b/base_external_dbsource_mssql/__manifest__.py @@ -2,25 +2,14 @@ # Copyright 2016 LasLabs Inc. # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). { - 'name': 'External Database Source - MSSQL', - 'version': '11.0.1.0.0', - 'category': 'Tools', - 'author': "Daniel Reis, " - "LasLabs, " - "Odoo Community Association (OCA)", - 'website': 'https://github.com/OCA/server-backend', - 'license': 'LGPL-3', - 'depends': [ - 'base_external_dbsource_sqlite', - ], - 'external_dependencies': { - 'python': [ - 'sqlalchemy', - 'pymssql', - ], - }, - 'demo': [ - 'demo/base_external_dbsource.xml', - ], - 'installable': True, + "name": "External Database Source - MSSQL", + "version": "12.0.1.0.0", + "category": "Tools", + "author": "Daniel Reis, " "LasLabs, " "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/server-backend", + "license": "LGPL-3", + "depends": ["base_external_dbsource_sqlite"], + "external_dependencies": {"python": ["sqlalchemy", "pymssql"]}, + "demo": ["demo/base_external_dbsource.xml"], + "installable": True, } diff --git a/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot index e37bb794..9e07f689 100644 --- a/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot +++ b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" diff --git a/base_external_dbsource_mssql/models/base_external_dbsource.py b/base_external_dbsource_mssql/models/base_external_dbsource.py index bb1b671a..180097f5 100644 --- a/base_external_dbsource_mssql/models/base_external_dbsource.py +++ b/base_external_dbsource_mssql/models/base_external_dbsource.py @@ -9,19 +9,20 @@ from odoo import api, models _logger = logging.getLogger(__name__) try: - from odoo.addons.base_external_dbsource.models import ( - base_external_dbsource, - ) + from odoo.addons.base_external_dbsource.models import base_external_dbsource + CONNECTORS = base_external_dbsource.BaseExternalDbsource.CONNECTORS try: import pymssql - CONNECTORS.append(('mssql', 'Microsoft SQL Server')) + + CONNECTORS.append(("mssql", "Microsoft SQL Server")) assert pymssql except (ImportError, AssertionError): - _logger.info('MS SQL Server not available. Please install "pymssql" ' - 'python package.') + _logger.info( + 'MS SQL Server not available. Please install "pymssql" ' "python package." + ) except ImportError: - _logger.info('base_external_dbsource Odoo module not found.') + _logger.info("base_external_dbsource Odoo module not found.") class BaseExternalDbsource(models.Model): @@ -29,7 +30,7 @@ class BaseExternalDbsource(models.Model): _inherit = "base.external.dbsource" - PWD_STRING_MSSQL = 'Password=%s;' + PWD_STRING_MSSQL = "Password=%s;" @api.multi def connection_close_mssql(self, connection): diff --git a/base_external_dbsource_mssql/readme/CONTRIBUTORS.rst b/base_external_dbsource_mssql/readme/CONTRIBUTORS.rst index d00499db..0d2405cf 100644 --- a/base_external_dbsource_mssql/readme/CONTRIBUTORS.rst +++ b/base_external_dbsource_mssql/readme/CONTRIBUTORS.rst @@ -3,4 +3,4 @@ * Gervais Naoussi * Dave Lasley * `Tecnativa `_: - * Sergio Teruel + * Sergio Teruel diff --git a/base_external_dbsource_mssql/readme/ROADMAP.rst b/base_external_dbsource_mssql/readme/ROADMAP.rst index fdddc735..8b025883 100644 --- a/base_external_dbsource_mssql/readme/ROADMAP.rst +++ b/base_external_dbsource_mssql/readme/ROADMAP.rst @@ -1 +1 @@ -* Add X.509 authentication \ No newline at end of file +* Add X.509 authentication diff --git a/base_external_dbsource_mssql/static/description/index.html b/base_external_dbsource_mssql/static/description/index.html index 0ef2f37a..f44dae37 100644 --- a/base_external_dbsource_mssql/static/description/index.html +++ b/base_external_dbsource_mssql/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: LGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

+

Beta License: LGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

This module extends base_external_dbsource, allowing you to connect to foreign MSSQL databases using SQLAlchemy.

Table of contents

@@ -426,7 +426,7 @@ Database Structure > Database sources.

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.

@@ -445,8 +445,14 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Maxime Chambreuil <maxime.chambreuil@savoirfairelinux.com>
  • Gervais Naoussi <gervaisnaoussi@gmail.com>
  • Dave Lasley <dave@laslabs.com>
  • -
  • Tecnativa: -* Sergio Teruel
  • +
  • +
    Tecnativa:
    +
      +
    • Sergio Teruel
    • +
    +
    +
    +
  • @@ -456,7 +462,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

    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-backend project on GitHub.

    +

    This module is part of the OCA/server-backend project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/base_external_dbsource_mssql/tests/test_base_external_dbsource.py b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py index fcb6a3c6..240396d6 100644 --- a/base_external_dbsource_mssql/tests/test_base_external_dbsource.py +++ b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py @@ -4,18 +4,15 @@ import mock from odoo.tests import common - -ADAPTER = ('odoo.addons.base_external_dbsource_mssql.models' - '.base_external_dbsource.pymssql') +ADAPTER = ( + "odoo.addons.base_external_dbsource_mssql.models" ".base_external_dbsource.pymssql" +) class TestBaseExternalDbsource(common.TransactionCase): - def setUp(self): super(TestBaseExternalDbsource, self).setUp() - self.dbsource = self.env.ref( - 'base_external_dbsource_mssql.demo_mssql', - ) + self.dbsource = self.env.ref("base_external_dbsource_mssql.demo_mssql") def test_connection_close_mssql(self): """ It should close the connection """ @@ -26,16 +23,14 @@ class TestBaseExternalDbsource(common.TransactionCase): def test_connection_open_mssql(self): """ It should call SQLAlchemy open """ with mock.patch.object( - self.dbsource, '_connection_open_sqlalchemy' + self.dbsource, "_connection_open_sqlalchemy" ) as parent_method: self.dbsource.connection_open_mssql() parent_method.assert_called_once_with() def test_excecute_mssql(self): """ It should pass args to SQLAlchemy execute """ - expect = 'sqlquery', 'sqlparams', 'metadata' - with mock.patch.object( - self.dbsource, '_execute_sqlalchemy' - ) as parent_method: + expect = "sqlquery", "sqlparams", "metadata" + with mock.patch.object(self.dbsource, "_execute_sqlalchemy") as parent_method: self.dbsource.execute_mssql(*expect) parent_method.assert_called_once_with(*expect) From a4439e3d6343d6d6595eab6c7c5eca5f9b76416c Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Fri, 10 Jan 2020 10:32:08 +0100 Subject: [PATCH 4/7] [MIG] base_external_dbsource_mssql: Migration to v13.0 [UPD] Update base_external_dbsource_mssql.pot --- base_external_dbsource_mssql/README.rst | 10 +++++----- base_external_dbsource_mssql/__manifest__.py | 2 +- .../demo/base_external_dbsource.xml | 6 ++++-- .../i18n/base_external_dbsource_mssql.pot | 7 +++---- .../models/base_external_dbsource.py | 5 +---- .../static/description/index.html | 6 +++--- 6 files changed, 17 insertions(+), 19 deletions(-) diff --git a/base_external_dbsource_mssql/README.rst b/base_external_dbsource_mssql/README.rst index c4586fa0..b633360d 100644 --- a/base_external_dbsource_mssql/README.rst +++ b/base_external_dbsource_mssql/README.rst @@ -14,13 +14,13 @@ External Database Source - MSSQL :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github - :target: https://github.com/OCA/server-backend/tree/12.0/base_external_dbsource_mssql + :target: https://github.com/OCA/server-backend/tree/13.0/base_external_dbsource_mssql :alt: OCA/server-backend .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-backend-12-0/server-backend-12-0-base_external_dbsource_mssql + :target: https://translation.odoo-community.org/projects/server-backend-13-0/server-backend-13-0-base_external_dbsource_mssql :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/253/12.0 + :target: https://runbot.odoo-community.org/runbot/253/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -74,7 +74,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. @@ -110,6 +110,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-backend `_ project on GitHub. +This module is part of the `OCA/server-backend `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_external_dbsource_mssql/__manifest__.py b/base_external_dbsource_mssql/__manifest__.py index 1104d060..3b49ce4e 100644 --- a/base_external_dbsource_mssql/__manifest__.py +++ b/base_external_dbsource_mssql/__manifest__.py @@ -3,7 +3,7 @@ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). { "name": "External Database Source - MSSQL", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "category": "Tools", "author": "Daniel Reis, " "LasLabs, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/server-backend", diff --git a/base_external_dbsource_mssql/demo/base_external_dbsource.xml b/base_external_dbsource_mssql/demo/base_external_dbsource.xml index f30a392e..f008b838 100644 --- a/base_external_dbsource_mssql/demo/base_external_dbsource.xml +++ b/base_external_dbsource_mssql/demo/base_external_dbsource.xml @@ -1,8 +1,10 @@ - + MSSQL Demo - Server=myServerAddress;Database=myDataBase;User Id=myUsername; + Server=myServerAddress;Database=myDataBase;User Id=myUsername; password mssql diff --git a/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot index 9e07f689..571dc47b 100644 --- a/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot +++ b/base_external_dbsource_mssql/i18n/base_external_dbsource_mssql.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * base_external_dbsource_mssql +# * base_external_dbsource_mssql # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.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" @@ -17,4 +17,3 @@ msgstr "" #: model:ir.model,name:base_external_dbsource_mssql.model_base_external_dbsource msgid "External Database Sources" msgstr "" - diff --git a/base_external_dbsource_mssql/models/base_external_dbsource.py b/base_external_dbsource_mssql/models/base_external_dbsource.py index 180097f5..11332327 100644 --- a/base_external_dbsource_mssql/models/base_external_dbsource.py +++ b/base_external_dbsource_mssql/models/base_external_dbsource.py @@ -4,7 +4,7 @@ import logging -from odoo import api, models +from odoo import models _logger = logging.getLogger(__name__) @@ -32,14 +32,11 @@ class BaseExternalDbsource(models.Model): PWD_STRING_MSSQL = "Password=%s;" - @api.multi def connection_close_mssql(self, connection): return connection.close() - @api.multi def connection_open_mssql(self): return self._connection_open_sqlalchemy() - @api.multi def execute_mssql(self, sqlquery, sqlparams, metadata): return self._execute_sqlalchemy(sqlquery, sqlparams, metadata) diff --git a/base_external_dbsource_mssql/static/description/index.html b/base_external_dbsource_mssql/static/description/index.html index f44dae37..14b017db 100644 --- a/base_external_dbsource_mssql/static/description/index.html +++ b/base_external_dbsource_mssql/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: LGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

    +

    Beta License: LGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

    This module extends base_external_dbsource, allowing you to connect to foreign MSSQL databases using SQLAlchemy.

    Table of contents

    @@ -426,7 +426,7 @@ Database Structure > Database sources.

    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.

    @@ -462,7 +462,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

    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-backend project on GitHub.

    +

    This module is part of the OCA/server-backend project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    From d854fd8b4d4af7100248e489285af35b8fbee2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mois=C3=A9s=20L=C3=B3pez=20-=20https=3A//www=2Evauxoo=2Eco?= =?UTF-8?q?m/?= Date: Tue, 15 Nov 2022 20:50:53 -0600 Subject: [PATCH 5/7] REF] requirements.txt: Use "pymssql<=2.2.5" to fix "Failed building wheel for pymssql" (#196) The new `pymssql==2.2.6` version released this weekend - Screenshot 2022-11-15 at 20 11 53 requires extra setup to be installed So, it is raising new errors where it is not setup You can reproduce it running the following command: docker run -it --rm python:3.6 pip3 install -q pymssql==2.2.6 `ERROR: Could not build wheels for pymssql...` ERROR: Command errored out with exit status 1: command: /usr/local/bin/python /usr/local/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpmp6b33ly cwd: /tmp/pip-install-p4ocn1ip/pymssql_01748f191a744758bda6f7d536f6ec35 Complete output (25 lines): setup.py: platform.system() => Linux setup.py: platform.architecture() => ('64bit', 'ELF') setup.py: platform.libc_ver() => ('glibc', '2.2.5') setup.py: include_dirs => [] setup.py: library_dirs => [] running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/pymssql copying src/pymssql/__init__.py -> build/lib.linux-x86_64-3.6/pymssql running build_ext cythoning src/pymssql/_mssql.pyx to src/pymssql/_mssql.c cythoning src/pymssql/_pymssql.pyx to src/pymssql/_pymssql.c building 'pymssql._mssql' extension creating build/temp.linux-x86_64-3.6 creating build/temp.linux-x86_64-3.6/src creating build/temp.linux-x86_64-3.6/src/pymssql gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.6m -c src/pymssql/_mssql.c -o build/temp.linux-x86_64-3.6/src/pymssql/_mssql.o -DMSDBLIB src/pymssql/_mssql.c:747:10: fatal error: sqlfront.h: No such file or directory 747 | #include "sqlfront.h" | ^~~~~~~~~~~~ compilation terminated. error: command 'gcc' failed with exit status 1 ---------------------------------------- ERROR: Failed building wheel for pymssql ERROR: Could not build wheels for pymssql which use PEP 517 and cannot be installed directly WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available. You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command. FAIL However, using docker run -it --rm python:3.6 pip3 install -q pymssql==2.2.5 It is installing well! So, I have created this PR in order to fix all the error in the CI using this project and installing this package --- base_external_dbsource_mssql/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base_external_dbsource_mssql/__manifest__.py b/base_external_dbsource_mssql/__manifest__.py index 3b49ce4e..2e18a3e0 100644 --- a/base_external_dbsource_mssql/__manifest__.py +++ b/base_external_dbsource_mssql/__manifest__.py @@ -9,7 +9,7 @@ "website": "https://github.com/OCA/server-backend", "license": "LGPL-3", "depends": ["base_external_dbsource_sqlite"], - "external_dependencies": {"python": ["sqlalchemy", "pymssql"]}, + "external_dependencies": {"python": ["sqlalchemy", "pymssql<=2.2.5"]}, "demo": ["demo/base_external_dbsource.xml"], "installable": True, } From 76b4d8d2c0552952b0d9ed5833f40c5aabd24581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 18 Nov 2022 08:09:07 +0100 Subject: [PATCH 6/7] [IMP] base_external_dbsource_mssql: black, isort, prettier --- .../models/base_external_dbsource.py | 2 +- .../tests/test_base_external_dbsource.py | 6 +++--- requirements.txt | 1 + .../odoo/addons/base_external_dbsource_mssql | 1 + setup/base_external_dbsource_mssql/setup.py | 6 ++++++ 5 files changed, 12 insertions(+), 4 deletions(-) create mode 120000 setup/base_external_dbsource_mssql/odoo/addons/base_external_dbsource_mssql create mode 100644 setup/base_external_dbsource_mssql/setup.py diff --git a/base_external_dbsource_mssql/models/base_external_dbsource.py b/base_external_dbsource_mssql/models/base_external_dbsource.py index 11332327..9a538cc8 100644 --- a/base_external_dbsource_mssql/models/base_external_dbsource.py +++ b/base_external_dbsource_mssql/models/base_external_dbsource.py @@ -26,7 +26,7 @@ except ImportError: class BaseExternalDbsource(models.Model): - """ It provides logic for connection to a MSSQL data source. """ + """It provides logic for connection to a MSSQL data source.""" _inherit = "base.external.dbsource" diff --git a/base_external_dbsource_mssql/tests/test_base_external_dbsource.py b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py index 240396d6..6d334ccc 100644 --- a/base_external_dbsource_mssql/tests/test_base_external_dbsource.py +++ b/base_external_dbsource_mssql/tests/test_base_external_dbsource.py @@ -15,13 +15,13 @@ class TestBaseExternalDbsource(common.TransactionCase): self.dbsource = self.env.ref("base_external_dbsource_mssql.demo_mssql") def test_connection_close_mssql(self): - """ It should close the connection """ + """It should close the connection""" connection = mock.MagicMock() res = self.dbsource.connection_close_mssql(connection) self.assertEqual(res, connection.close()) def test_connection_open_mssql(self): - """ It should call SQLAlchemy open """ + """It should call SQLAlchemy open""" with mock.patch.object( self.dbsource, "_connection_open_sqlalchemy" ) as parent_method: @@ -29,7 +29,7 @@ class TestBaseExternalDbsource(common.TransactionCase): parent_method.assert_called_once_with() def test_excecute_mssql(self): - """ It should pass args to SQLAlchemy execute """ + """It should pass args to SQLAlchemy execute""" expect = "sqlquery", "sqlparams", "metadata" with mock.patch.object(self.dbsource, "_execute_sqlalchemy") as parent_method: self.dbsource.execute_mssql(*expect) diff --git a/requirements.txt b/requirements.txt index 867daed4..88328f65 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ # generated from manifests external_dependencies +pymssql<=2.2.5 sqlalchemy diff --git a/setup/base_external_dbsource_mssql/odoo/addons/base_external_dbsource_mssql b/setup/base_external_dbsource_mssql/odoo/addons/base_external_dbsource_mssql new file mode 120000 index 00000000..9a9b864e --- /dev/null +++ b/setup/base_external_dbsource_mssql/odoo/addons/base_external_dbsource_mssql @@ -0,0 +1 @@ +../../../../base_external_dbsource_mssql \ No newline at end of file diff --git a/setup/base_external_dbsource_mssql/setup.py b/setup/base_external_dbsource_mssql/setup.py new file mode 100644 index 00000000..28c57bb6 --- /dev/null +++ b/setup/base_external_dbsource_mssql/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From 3743e2d8a68daa5d707b6731649642044117101a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 18 Nov 2022 08:10:32 +0100 Subject: [PATCH 7/7] [MIG] base_external_dbsource_mssql: Migration to 15.0 TT38357 --- base_external_dbsource_mssql/README.rst | 10 ++++----- base_external_dbsource_mssql/__manifest__.py | 4 ++-- .../models/base_external_dbsource.py | 21 +++++-------------- .../static/description/index.html | 8 +++---- .../tests/test_base_external_dbsource.py | 8 ++++--- 5 files changed, 21 insertions(+), 30 deletions(-) diff --git a/base_external_dbsource_mssql/README.rst b/base_external_dbsource_mssql/README.rst index b633360d..d857e394 100644 --- a/base_external_dbsource_mssql/README.rst +++ b/base_external_dbsource_mssql/README.rst @@ -14,13 +14,13 @@ External Database Source - MSSQL :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github - :target: https://github.com/OCA/server-backend/tree/13.0/base_external_dbsource_mssql + :target: https://github.com/OCA/server-backend/tree/15.0/base_external_dbsource_mssql :alt: OCA/server-backend .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-backend-13-0/server-backend-13-0-base_external_dbsource_mssql + :target: https://translation.odoo-community.org/projects/server-backend-15-0/server-backend-15-0-base_external_dbsource_mssql :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/253/13.0 + :target: https://runbot.odoo-community.org/runbot/253/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -74,7 +74,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. @@ -110,6 +110,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-backend `_ project on GitHub. +This module is part of the `OCA/server-backend `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_external_dbsource_mssql/__manifest__.py b/base_external_dbsource_mssql/__manifest__.py index 2e18a3e0..83b2e5ef 100644 --- a/base_external_dbsource_mssql/__manifest__.py +++ b/base_external_dbsource_mssql/__manifest__.py @@ -3,13 +3,13 @@ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). { "name": "External Database Source - MSSQL", - "version": "13.0.1.0.0", + "version": "15.0.1.0.0", "category": "Tools", "author": "Daniel Reis, " "LasLabs, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/server-backend", "license": "LGPL-3", "depends": ["base_external_dbsource_sqlite"], - "external_dependencies": {"python": ["sqlalchemy", "pymssql<=2.2.5"]}, + "external_dependencies": {"python": ["pymssql<=2.2.5"]}, "demo": ["demo/base_external_dbsource.xml"], "installable": True, } diff --git a/base_external_dbsource_mssql/models/base_external_dbsource.py b/base_external_dbsource_mssql/models/base_external_dbsource.py index 9a538cc8..b79c066f 100644 --- a/base_external_dbsource_mssql/models/base_external_dbsource.py +++ b/base_external_dbsource_mssql/models/base_external_dbsource.py @@ -2,27 +2,16 @@ # Copyright 2016 LasLabs Inc. # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -import logging +import pymssql from odoo import models -_logger = logging.getLogger(__name__) +from odoo.addons.base_external_dbsource.models import base_external_dbsource -try: - from odoo.addons.base_external_dbsource.models import base_external_dbsource +CONNECTORS = base_external_dbsource.BaseExternalDbsource.CONNECTORS +CONNECTORS.append(("mssql", "Microsoft SQL Server")) - CONNECTORS = base_external_dbsource.BaseExternalDbsource.CONNECTORS - try: - import pymssql - - CONNECTORS.append(("mssql", "Microsoft SQL Server")) - assert pymssql - except (ImportError, AssertionError): - _logger.info( - 'MS SQL Server not available. Please install "pymssql" ' "python package." - ) -except ImportError: - _logger.info("base_external_dbsource Odoo module not found.") +assert pymssql class BaseExternalDbsource(models.Model): diff --git a/base_external_dbsource_mssql/static/description/index.html b/base_external_dbsource_mssql/static/description/index.html index 14b017db..e93c009e 100644 --- a/base_external_dbsource_mssql/static/description/index.html +++ b/base_external_dbsource_mssql/static/description/index.html @@ -3,7 +3,7 @@ - + External Database Source - MSSQL