From b8c7cf2303b8001c8fed559830bb27e9e6850694 Mon Sep 17 00:00:00 2001
From: Sylvain LE GAL
Date: Tue, 25 May 2021 12:02:01 +0200
Subject: [PATCH 01/12] [ADD] new module module_change_auto_install to
configure auto installable modules by configuration
---
module_change_auto_install/README.rst | 8 ++++
module_change_auto_install/__init__.py | 1 +
module_change_auto_install/__manifest__.py | 17 ++++++++
module_change_auto_install/patch.py | 40 +++++++++++++++++++
.../readme/CONFIGURE.rst | 33 +++++++++++++++
.../readme/CONTRIBUTORS.rst | 1 +
.../readme/DESCRIPTION.rst | 15 +++++++
module_change_auto_install/readme/DEVELOP.rst | 4 ++
module_change_auto_install/readme/INSTALL.rst | 4 ++
9 files changed, 123 insertions(+)
create mode 100644 module_change_auto_install/README.rst
create mode 100644 module_change_auto_install/__init__.py
create mode 100644 module_change_auto_install/__manifest__.py
create mode 100644 module_change_auto_install/patch.py
create mode 100644 module_change_auto_install/readme/CONFIGURE.rst
create mode 100644 module_change_auto_install/readme/CONTRIBUTORS.rst
create mode 100644 module_change_auto_install/readme/DESCRIPTION.rst
create mode 100644 module_change_auto_install/readme/DEVELOP.rst
create mode 100644 module_change_auto_install/readme/INSTALL.rst
diff --git a/module_change_auto_install/README.rst b/module_change_auto_install/README.rst
new file mode 100644
index 000000000..e650c809f
--- /dev/null
+++ b/module_change_auto_install/README.rst
@@ -0,0 +1,8 @@
+===============================
+Change auto installable modules
+===============================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
diff --git a/module_change_auto_install/__init__.py b/module_change_auto_install/__init__.py
new file mode 100644
index 000000000..2e653d695
--- /dev/null
+++ b/module_change_auto_install/__init__.py
@@ -0,0 +1 @@
+from .patch import post_load
diff --git a/module_change_auto_install/__manifest__.py b/module_change_auto_install/__manifest__.py
new file mode 100644
index 000000000..6a6220a2a
--- /dev/null
+++ b/module_change_auto_install/__manifest__.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
+# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+{
+ "name": "Change auto installable modules",
+ "summary": "Customize auto installables modules by configuration",
+ "version": "14.0.1.0.1",
+ "category": "Tools",
+ "maintainers": ["legalsylvain"],
+ "author": "GRAP, Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/server-tools",
+ "installable": True,
+ "depends": ["base"],
+ "post_load": "post_load",
+ "license": "AGPL-3",
+}
diff --git a/module_change_auto_install/patch.py b/module_change_auto_install/patch.py
new file mode 100644
index 000000000..9285ffddb
--- /dev/null
+++ b/module_change_auto_install/patch.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
+# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import logging
+
+from odoo import modules
+from odoo.tools import config
+
+_logger = logging.getLogger(__name__)
+_original_load_information_from_description_file = (
+ modules.module.load_information_from_description_file
+)
+
+
+def _overload_load_information_from_description_file(module, mod_path=None):
+ res = _original_load_information_from_description_file(module, mod_path=None)
+ auto_install = res.get("auto_install", False)
+
+ modules_auto_install_enabled = config.get("modules_auto_install_enabled", [])
+ modules_auto_install_disabled = config.get("modules_auto_install_disabled", [])
+
+ if module in modules_auto_install_disabled and auto_install:
+ _logger.info("Module '%s' has been marked as not auto installable." % module)
+ res["auto_install"] = False
+
+ if module in modules_auto_install_enabled and not auto_install:
+ _logger.info("Module '%s' has been marked as auto installable." % module)
+ res["auto_install"] = True
+
+ return res
+
+
+def post_load():
+ modules.module.load_information_from_description_file = (
+ _overload_load_information_from_description_file
+ )
+ modules.load_information_from_description_file = (
+ _overload_load_information_from_description_file
+ )
diff --git a/module_change_auto_install/readme/CONFIGURE.rst b/module_change_auto_install/readme/CONFIGURE.rst
new file mode 100644
index 000000000..e766d4315
--- /dev/null
+++ b/module_change_auto_install/readme/CONFIGURE.rst
@@ -0,0 +1,33 @@
+* Edit your ``odoo.cfg`` configuration file:
+
+* Add the module ``module_change_auto_install`` in the ``server_wide_modules`` list.
+
+* (optional) Add a new entry ``modules_auto_install_disabled`` to mark
+ a list of modules as NOT auto installable.
+
+* (optional) Add a new entry ``modules_auto_install_enabled`` to mark
+ a list of modules as auto installable. This feature can be usefull for companies
+ that are hosting a lot of Odoo instances for many customers, and want some modules
+ to be always installed.
+
+**Typical Settings**
+
+.. code-block:: shell
+
+ server_wide_modules = web,module_change_auto_install
+
+ modules_auto_install_disabled = partner_autocomplete,iap,mail_bot,account_edi,account_edi_facturx,account_edi_ubl
+
+ modules_auto_install_enabled = web_responsive,web_no_bubble,base_technical_features,disable_odoo_online,account_menu
+
+Run your instance and check logs. Modules that has been altered should be present in your log, at the load of your instance:
+
+.. code-block:: shell
+
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'iap' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'mail_bot' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'partner_autocomplete' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_facturx' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_ubl' has been marked as not auto installable.
+ INFO db_name odoo.modules.loading: 42 modules loaded in 0.32s, 0 queries (+0 extra)
diff --git a/module_change_auto_install/readme/CONTRIBUTORS.rst b/module_change_auto_install/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..9f76a75bc
--- /dev/null
+++ b/module_change_auto_install/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Sylvain LE GAL
diff --git a/module_change_auto_install/readme/DESCRIPTION.rst b/module_change_auto_install/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..dbd184a2f
--- /dev/null
+++ b/module_change_auto_install/readme/DESCRIPTION.rst
@@ -0,0 +1,15 @@
+In odoo, by default some modules are marked as auto installable
+by the ``auto_install`` key present in the manifest.
+
+* This feature is very useful for "glue" modules that allow two modules to work together.
+ (A typical example is ``sale_stock`` which allows ``sale`` and ``stock`` modules to work together).
+
+* However, Odoo SA also marks some modules as auto installable, even though
+ this is not technically required. This can happen
+ for modules the company wants to promote like ``iap``,
+ modules with a big wow effect like ``partner_autocomplete``,
+ or some modules they consider useful by default like ``account_edi``.
+ See the discussion: https://github.com/odoo/odoo/issues/71190
+
+This module allows to change by configuration, the list of auto installable modules,
+adding or removing some modules to auto install.
diff --git a/module_change_auto_install/readme/DEVELOP.rst b/module_change_auto_install/readme/DEVELOP.rst
new file mode 100644
index 000000000..a2ee648d6
--- /dev/null
+++ b/module_change_auto_install/readme/DEVELOP.rst
@@ -0,0 +1,4 @@
+If you upgrade your odoo Instance from a major version to another,
+using the OCA Free Software project "OpenUpgrade", you can also use
+this module during the upgrade process, to avoid the installation of
+useless new modules.
diff --git a/module_change_auto_install/readme/INSTALL.rst b/module_change_auto_install/readme/INSTALL.rst
new file mode 100644
index 000000000..c7804edad
--- /dev/null
+++ b/module_change_auto_install/readme/INSTALL.rst
@@ -0,0 +1,4 @@
+You don't have to install this module. To make the features working :
+
+* make the module ``module_change_auto_install`` available in your addons path
+* update your ``odoo.cfg`` following the "Configure" section
From cb016bed5c4bc513203baa2977bd982bc2bc2d88 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Tue, 25 May 2021 21:10:32 +0000
Subject: [PATCH 02/12] [UPD] Update module_change_auto_install.pot
---
.../i18n/module_change_auto_install.pot | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 module_change_auto_install/i18n/module_change_auto_install.pot
diff --git a/module_change_auto_install/i18n/module_change_auto_install.pot b/module_change_auto_install/i18n/module_change_auto_install.pot
new file mode 100644
index 000000000..4d8b20f91
--- /dev/null
+++ b/module_change_auto_install/i18n/module_change_auto_install.pot
@@ -0,0 +1,13 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.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"
From f9ee1c05df7e7c3a5f64a05d28a23325effa8d7d Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Tue, 25 May 2021 21:14:55 +0000
Subject: [PATCH 03/12] [UPD] README.rst
---
module_change_auto_install/README.rst | 140 +++++
.../static/description/index.html | 483 ++++++++++++++++++
2 files changed, 623 insertions(+)
create mode 100644 module_change_auto_install/static/description/index.html
diff --git a/module_change_auto_install/README.rst b/module_change_auto_install/README.rst
index e650c809f..725a259e4 100644
--- a/module_change_auto_install/README.rst
+++ b/module_change_auto_install/README.rst
@@ -6,3 +6,143 @@ Change auto installable modules
!! 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/14.0/module_change_auto_install
+ :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-14-0/server-tools-14-0-module_change_auto_install
+ :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
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+In odoo, by default some modules are marked as auto installable
+by the ``auto_install`` key present in the manifest.
+
+* This feature is very useful for "glue" modules that allow two modules to work together.
+ (A typical example is ``sale_stock`` which allows ``sale`` and ``stock`` modules to work together).
+
+* However, Odoo SA also marks some modules as auto installable, even though
+ this is not technically required. This can happen
+ for modules the company wants to promote like ``iap``,
+ modules with a big wow effect like ``partner_autocomplete``,
+ or some modules they consider useful by default like ``account_edi``.
+ See the discussion: https://github.com/odoo/odoo/issues/71190
+
+This module allows to change by configuration, the list of auto installable modules,
+adding or removing some modules to auto install.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Installation
+============
+
+You don't have to install this module. To make the features working :
+
+* make the module ``module_change_auto_install`` available in your addons path
+* update your ``odoo.cfg`` following the "Configure" section
+
+Configuration
+=============
+
+* Edit your ``odoo.cfg`` configuration file:
+
+* Add the module ``module_change_auto_install`` in the ``server_wide_modules`` list.
+
+* (optional) Add a new entry ``modules_auto_install_disabled`` to mark
+ a list of modules as NOT auto installable.
+
+* (optional) Add a new entry ``modules_auto_install_enabled`` to mark
+ a list of modules as auto installable. This feature can be usefull for companies
+ that are hosting a lot of Odoo instances for many customers, and want some modules
+ to be always installed.
+
+**Typical Settings**
+
+.. code-block:: shell
+
+ server_wide_modules = web,module_change_auto_install
+
+ modules_auto_install_disabled = partner_autocomplete,iap,mail_bot,account_edi,account_edi_facturx,account_edi_ubl
+
+ modules_auto_install_enabled = web_responsive,web_no_bubble,base_technical_features,disable_odoo_online,account_menu
+
+Run your instance and check logs. Modules that has been altered should be present in your log, at the load of your instance:
+
+.. code-block:: shell
+
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'iap' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'mail_bot' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'partner_autocomplete' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_facturx' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_ubl' has been marked as not auto installable.
+ INFO db_name odoo.modules.loading: 42 modules loaded in 0.32s, 0 queries (+0 extra)
+
+Development
+===========
+
+If you upgrade your odoo Instance from a major version to another,
+using the OCA Free Software project "OpenUpgrade", you can also use
+this module during the upgrade process, to avoid the installation of
+useless new modules.
+
+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
+~~~~~~~
+
+* GRAP
+
+Contributors
+~~~~~~~~~~~~
+
+* Sylvain LE GAL
+
+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.
+
+.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px
+ :target: https://github.com/legalsylvain
+ :alt: legalsylvain
+
+Current `maintainer `__:
+
+|maintainer-legalsylvain|
+
+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/module_change_auto_install/static/description/index.html b/module_change_auto_install/static/description/index.html
new file mode 100644
index 000000000..462cf550b
--- /dev/null
+++ b/module_change_auto_install/static/description/index.html
@@ -0,0 +1,483 @@
+
+
+
+
+
+
+Change auto installable modules
+
+
+
+
+
Change auto installable modules
+
+
+

+
In odoo, by default some modules are marked as auto installable
+by the auto_install key present in the manifest.
+
+- This feature is very useful for “glue” modules that allow two modules to work together.
+(A typical example is sale_stock which allows sale and stock modules to work together).
+- However, Odoo SA also marks some modules as auto installable, even though
+this is not technically required. This can happen
+for modules the company wants to promote like iap,
+modules with a big wow effect like partner_autocomplete,
+or some modules they consider useful by default like account_edi.
+See the discussion: https://github.com/odoo/odoo/issues/71190
+
+
This module allows to change by configuration, the list of auto installable modules,
+adding or removing some modules to auto install.
+
Table of contents
+
+
+
+
You don’t have to install this module. To make the features working :
+
+- make the module module_change_auto_install available in your addons path
+- update your odoo.cfg following the “Configure” section
+
+
+
+
+
+- Edit your odoo.cfg configuration file:
+- Add the module module_change_auto_install in the server_wide_modules list.
+- (optional) Add a new entry modules_auto_install_disabled to mark
+a list of modules as NOT auto installable.
+- (optional) Add a new entry modules_auto_install_enabled to mark
+a list of modules as auto installable. This feature can be usefull for companies
+that are hosting a lot of Odoo instances for many customers, and want some modules
+to be always installed.
+
+
Typical Settings
+
+server_wide_modules = web,module_change_auto_install
+
+modules_auto_install_disabled = partner_autocomplete,iap,mail_bot,account_edi,account_edi_facturx,account_edi_ubl
+
+modules_auto_install_enabled = web_responsive,web_no_bubble,base_technical_features,disable_odoo_online,account_menu
+
+
Run your instance and check logs. Modules that has been altered should be present in your log, at the load of your instance:
+
+INFO db_name odoo.addons.module_change_auto_install.patch: Module 'iap' has been marked as not auto installable.
+INFO db_name odoo.addons.module_change_auto_install.patch: Module 'mail_bot' has been marked as not auto installable.
+INFO db_name odoo.addons.module_change_auto_install.patch: Module 'partner_autocomplete' has been marked as not auto installable.
+INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi' has been marked as not auto installable.
+INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_facturx' has been marked as not auto installable.
+INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_ubl' has been marked as not auto installable.
+INFO db_name odoo.modules.loading: 42 modules loaded in 0.32s, 0 queries (+0 extra)
+
+
+
+
+
If you upgrade your odoo Instance from a major version to another,
+using the OCA Free Software project “OpenUpgrade”, you can also use
+this module during the upgrade process, to avoid the installation of
+useless new modules.
+
+
+
+
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.
+
Current maintainer:
+

+
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 ebc5ae4c75209c08eaa21087715225100cdf12f8 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Tue, 25 May 2021 21:14:56 +0000
Subject: [PATCH 04/12] [ADD] icon.png
---
.../static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 module_change_auto_install/static/description/icon.png
diff --git a/module_change_auto_install/static/description/icon.png b/module_change_auto_install/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 9ccaadc5f24a1617c8ff3414949d9ee887afd0ad Mon Sep 17 00:00:00 2001
From: "moylop260@vauxoo.com"
Date: Wed, 26 May 2021 14:22:37 +0000
Subject: [PATCH 05/12] [FIX] module_change_auto_install: Split string sep by
comma
Optimize validation
Add logger to apply patch
---
module_change_auto_install/patch.py | 31 +++++++++++++++++++++++++----
1 file changed, 27 insertions(+), 4 deletions(-)
diff --git a/module_change_auto_install/patch.py b/module_change_auto_install/patch.py
index 9285ffddb..14dc00fa6 100644
--- a/module_change_auto_install/patch.py
+++ b/module_change_auto_install/patch.py
@@ -13,18 +13,40 @@ _original_load_information_from_description_file = (
)
+def split_strip(s):
+ """Split string and strip each component sep by comma
+
+ >>> split_strip("foo, bar,")
+ ['foo', 'bar']
+
+ >>> split_strip("")
+ []
+
+ >>> split_strip(None)
+ []
+ """
+ s = (s or "").strip(" ,")
+ if not s:
+ return []
+ return [x.strip() for x in s.split(",")]
+
+
def _overload_load_information_from_description_file(module, mod_path=None):
res = _original_load_information_from_description_file(module, mod_path=None)
auto_install = res.get("auto_install", False)
- modules_auto_install_enabled = config.get("modules_auto_install_enabled", [])
- modules_auto_install_disabled = config.get("modules_auto_install_disabled", [])
+ modules_auto_install_enabled = split_strip(
+ config.get("modules_auto_install_enabled")
+ )
+ modules_auto_install_disabled = split_strip(
+ config.get("modules_auto_install_disabled")
+ )
- if module in modules_auto_install_disabled and auto_install:
+ if auto_install and module in modules_auto_install_disabled:
_logger.info("Module '%s' has been marked as not auto installable." % module)
res["auto_install"] = False
- if module in modules_auto_install_enabled and not auto_install:
+ if not auto_install and module in modules_auto_install_enabled:
_logger.info("Module '%s' has been marked as auto installable." % module)
res["auto_install"] = True
@@ -32,6 +54,7 @@ def _overload_load_information_from_description_file(module, mod_path=None):
def post_load():
+ _logger.info("Applying patch module_change_auto_intall")
modules.module.load_information_from_description_file = (
_overload_load_information_from_description_file
)
From e6dbec97342eacbc76b0ae08e1bd5b3b5880e5f9 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 26 May 2021 20:50:15 +0000
Subject: [PATCH 06/12] module_change_auto_install 14.0.1.0.2
---
module_change_auto_install/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/module_change_auto_install/__manifest__.py b/module_change_auto_install/__manifest__.py
index 6a6220a2a..c3d3cfdc8 100644
--- a/module_change_auto_install/__manifest__.py
+++ b/module_change_auto_install/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Change auto installable modules",
"summary": "Customize auto installables modules by configuration",
- "version": "14.0.1.0.1",
+ "version": "14.0.1.0.2",
"category": "Tools",
"maintainers": ["legalsylvain"],
"author": "GRAP, Odoo Community Association (OCA)",
From dbbcdb64c9b00daac899a55b768a292d379e2ab5 Mon Sep 17 00:00:00 2001
From: Sylvain LE GAL
Date: Wed, 22 Dec 2021 16:14:56 +0100
Subject: [PATCH 07/12] [FIX] module_change_auto_install : auto_install is now
a set of dependencies. (before, was boolean)
---
module_change_auto_install/patch.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/module_change_auto_install/patch.py b/module_change_auto_install/patch.py
index 14dc00fa6..259dfc239 100644
--- a/module_change_auto_install/patch.py
+++ b/module_change_auto_install/patch.py
@@ -48,7 +48,7 @@ def _overload_load_information_from_description_file(module, mod_path=None):
if not auto_install and module in modules_auto_install_enabled:
_logger.info("Module '%s' has been marked as auto installable." % module)
- res["auto_install"] = True
+ res["auto_install"] = set(res["depends"])
return res
From 6ec26da5450cfaa6d3e8217b3883bd45809e8c5b Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 22 Dec 2021 17:48:51 +0000
Subject: [PATCH 08/12] module_change_auto_install 14.0.1.0.3
---
module_change_auto_install/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/module_change_auto_install/__manifest__.py b/module_change_auto_install/__manifest__.py
index c3d3cfdc8..550711687 100644
--- a/module_change_auto_install/__manifest__.py
+++ b/module_change_auto_install/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Change auto installable modules",
"summary": "Customize auto installables modules by configuration",
- "version": "14.0.1.0.2",
+ "version": "14.0.1.0.3",
"category": "Tools",
"maintainers": ["legalsylvain"],
"author": "GRAP, Odoo Community Association (OCA)",
From 54807493d013865ecb4ab732d7da48aae7d4822f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dept=2E=20T=C3=A9cnico?=
Date: Mon, 14 Feb 2022 11:41:41 +0000
Subject: [PATCH 09/12] Added translation using Weblate (Catalan)
---
module_change_auto_install/i18n/ca.po | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 module_change_auto_install/i18n/ca.po
diff --git a/module_change_auto_install/i18n/ca.po b/module_change_auto_install/i18n/ca.po
new file mode 100644
index 000000000..c038a7eec
--- /dev/null
+++ b/module_change_auto_install/i18n/ca.po
@@ -0,0 +1,14 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.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"
From b791487349f759ce0a76b36452d1b0f695710d8d Mon Sep 17 00:00:00 2001
From: Fai
Date: Mon, 19 Sep 2022 09:54:50 +0800
Subject: [PATCH 10/12] [MIG] module_change_auto_install: Migration to 15.0
---
module_change_auto_install/README.rst | 10 +++++-----
module_change_auto_install/__manifest__.py | 2 +-
module_change_auto_install/i18n/ca.po | 2 +-
.../i18n/module_change_auto_install.pot | 2 +-
.../static/description/index.html | 6 +++---
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/module_change_auto_install/README.rst b/module_change_auto_install/README.rst
index 725a259e4..47e665c1a 100644
--- a/module_change_auto_install/README.rst
+++ b/module_change_auto_install/README.rst
@@ -14,13 +14,13 @@ Change auto installable modules
: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/module_change_auto_install
+ :target: https://github.com/OCA/server-tools/tree/15.0/module_change_auto_install
: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-14-0/server-tools-14-0-module_change_auto_install
+ :target: https://translation.odoo-community.org/projects/server-tools-15-0/server-tools-15-0-module_change_auto_install
: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|
@@ -105,7 +105,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.
@@ -143,6 +143,6 @@ Current `maintainer `__:
|maintainer-legalsylvain|
-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/module_change_auto_install/__manifest__.py b/module_change_auto_install/__manifest__.py
index 550711687..1e183fb16 100644
--- a/module_change_auto_install/__manifest__.py
+++ b/module_change_auto_install/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Change auto installable modules",
"summary": "Customize auto installables modules by configuration",
- "version": "14.0.1.0.3",
+ "version": "15.0.1.0.0",
"category": "Tools",
"maintainers": ["legalsylvain"],
"author": "GRAP, Odoo Community Association (OCA)",
diff --git a/module_change_auto_install/i18n/ca.po b/module_change_auto_install/i18n/ca.po
index c038a7eec..6ff2ef5f3 100644
--- a/module_change_auto_install/i18n/ca.po
+++ b/module_change_auto_install/i18n/ca.po
@@ -3,7 +3,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: Automatically generated\n"
"Language-Team: none\n"
diff --git a/module_change_auto_install/i18n/module_change_auto_install.pot b/module_change_auto_install/i18n/module_change_auto_install.pot
index 4d8b20f91..a11baf5cd 100644
--- a/module_change_auto_install/i18n/module_change_auto_install.pot
+++ b/module_change_auto_install/i18n/module_change_auto_install.pot
@@ -3,7 +3,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/module_change_auto_install/static/description/index.html b/module_change_auto_install/static/description/index.html
index 462cf550b..0dbf4816e 100644
--- a/module_change_auto_install/static/description/index.html
+++ b/module_change_auto_install/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

In odoo, by default some modules are marked as auto installable
by the auto_install key present in the manifest.
@@ -448,7 +448,7 @@ useless new modules.
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.
From 8ce4e9bfc39b2011bb1f57254a864db53d8d35f7 Mon Sep 17 00:00:00 2001
From: Sylvain LE GAL
Date: Thu, 13 Oct 2022 11:28:54 +0200
Subject: [PATCH 11/12] [IMP] module_change_auto_install: black, isort,
prettier
---
.../odoo/addons/module_change_auto_install | 1 +
setup/module_change_auto_install/setup.py | 6 ++++++
2 files changed, 7 insertions(+)
create mode 120000 setup/module_change_auto_install/odoo/addons/module_change_auto_install
create mode 100644 setup/module_change_auto_install/setup.py
diff --git a/setup/module_change_auto_install/odoo/addons/module_change_auto_install b/setup/module_change_auto_install/odoo/addons/module_change_auto_install
new file mode 120000
index 000000000..4d5125f29
--- /dev/null
+++ b/setup/module_change_auto_install/odoo/addons/module_change_auto_install
@@ -0,0 +1 @@
+../../../../module_change_auto_install
\ No newline at end of file
diff --git a/setup/module_change_auto_install/setup.py b/setup/module_change_auto_install/setup.py
new file mode 100644
index 000000000..28c57bb64
--- /dev/null
+++ b/setup/module_change_auto_install/setup.py
@@ -0,0 +1,6 @@
+import setuptools
+
+setuptools.setup(
+ setup_requires=['setuptools-odoo'],
+ odoo_addon=True,
+)
From 85750dcfe2701f3258102a5c8282965f2be15978 Mon Sep 17 00:00:00 2001
From: Sylvain LE GAL
Date: Thu, 13 Oct 2022 14:24:43 +0200
Subject: [PATCH 12/12] [PORT] module_change_auto_install from 15.0 to 16.0
---
module_change_auto_install/__manifest__.py | 2 +-
module_change_auto_install/i18n/fr.po | 15 ++++
module_change_auto_install/patch.py | 90 ++++++++++++-------
.../readme/CONFIGURE.rst | 42 +++++++--
module_change_auto_install/tests/__init__.py | 1 +
.../tests/test_module.py | 30 +++++++
6 files changed, 140 insertions(+), 40 deletions(-)
create mode 100644 module_change_auto_install/i18n/fr.po
create mode 100644 module_change_auto_install/tests/__init__.py
create mode 100644 module_change_auto_install/tests/test_module.py
diff --git a/module_change_auto_install/__manifest__.py b/module_change_auto_install/__manifest__.py
index 1e183fb16..c5e4106a4 100644
--- a/module_change_auto_install/__manifest__.py
+++ b/module_change_auto_install/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Change auto installable modules",
"summary": "Customize auto installables modules by configuration",
- "version": "15.0.1.0.0",
+ "version": "16.0.1.0.0",
"category": "Tools",
"maintainers": ["legalsylvain"],
"author": "GRAP, Odoo Community Association (OCA)",
diff --git a/module_change_auto_install/i18n/fr.po b/module_change_auto_install/i18n/fr.po
new file mode 100644
index 000000000..a07e4484b
--- /dev/null
+++ b/module_change_auto_install/i18n/fr.po
@@ -0,0 +1,15 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-10-13 13:04+0000\n"
+"PO-Revision-Date: 2022-10-13 13:04+0000\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"
diff --git a/module_change_auto_install/patch.py b/module_change_auto_install/patch.py
index 259dfc239..b77b3ee14 100644
--- a/module_change_auto_install/patch.py
+++ b/module_change_auto_install/patch.py
@@ -8,56 +8,84 @@ from odoo import modules
from odoo.tools import config
_logger = logging.getLogger(__name__)
-_original_load_information_from_description_file = (
- modules.module.load_information_from_description_file
-)
+_original_load_manifest = modules.module.load_manifest
-def split_strip(s):
- """Split string and strip each component sep by comma
+def _get_modules_dict_auto_install_config(config_value):
+ """Given a configuration parameter name, return a dict of
+ {module_name: modules_list or False}
- >>> split_strip("foo, bar,")
- ['foo', 'bar']
+ if the odoo.cfg file contains
+
+ modules_auto_install_enabled =
+ web_responsive:web,
+ base_technical_features:,
+ point_of_sale:sale/purchase,
+ account_usability
+
+ >>> split_strip('modules_auto_install_enabled')
+ {
+ 'web_responsive': ['web'],
+ 'base_technical_features': [],
+ 'point_of_sale': ['sale', 'purchase'],
+ 'account_usability': False,
+ }
- >>> split_strip("")
- []
- >>> split_strip(None)
- []
"""
- s = (s or "").strip(" ,")
- if not s:
- return []
- return [x.strip() for x in s.split(",")]
+ res = {}
+ config_value = (config_value or "").strip(" ,")
+ config_list = [x.strip() for x in config_value.split(",")]
+ for item in config_list:
+ if ":" in item:
+ res[item.split(":")[0]] = (
+ item.split(":")[1] and item.split(":")[1].split("/") or []
+ )
+ else:
+ res[item] = True
+ return res
-def _overload_load_information_from_description_file(module, mod_path=None):
- res = _original_load_information_from_description_file(module, mod_path=None)
+def _overload_load_manifest(module, mod_path=None):
+
+ res = _original_load_manifest(module, mod_path=None)
auto_install = res.get("auto_install", False)
- modules_auto_install_enabled = split_strip(
+ modules_auto_install_enabled_dict = _get_modules_dict_auto_install_config(
config.get("modules_auto_install_enabled")
)
- modules_auto_install_disabled = split_strip(
+ modules_auto_install_disabled_dict = _get_modules_dict_auto_install_config(
config.get("modules_auto_install_disabled")
)
- if auto_install and module in modules_auto_install_disabled:
- _logger.info("Module '%s' has been marked as not auto installable." % module)
+ if auto_install and module in modules_auto_install_disabled_dict.keys():
+ _logger.info("Module '%s' has been marked as NOT auto installable." % module)
res["auto_install"] = False
- if not auto_install and module in modules_auto_install_enabled:
- _logger.info("Module '%s' has been marked as auto installable." % module)
- res["auto_install"] = set(res["depends"])
+ if not auto_install and module in modules_auto_install_enabled_dict.keys():
+ specific_dependencies = modules_auto_install_enabled_dict.get(module)
+ if type(specific_dependencies) is bool:
+ # Classical case
+ _logger.info("Module '%s' has been marked as auto installable." % module)
+ res["auto_install"] = set(res["depends"])
+ else:
+ if specific_dependencies:
+ _logger.info(
+ "Module '%s' has been marked as auto installable if '%s' are installed"
+ % (module, ",".join(specific_dependencies))
+ )
+ else:
+ _logger.info(
+ "Module '%s' has been marked as auto installable in ALL CASES."
+ % module
+ )
+
+ res["auto_install"] = set(specific_dependencies)
return res
def post_load():
- _logger.info("Applying patch module_change_auto_intall")
- modules.module.load_information_from_description_file = (
- _overload_load_information_from_description_file
- )
- modules.load_information_from_description_file = (
- _overload_load_information_from_description_file
- )
+ _logger.info("Aplying patch module_change_auto_intall ...")
+ modules.module.load_manifest = _overload_load_manifest
+ modules.load_manifest = _overload_load_manifest
diff --git a/module_change_auto_install/readme/CONFIGURE.rst b/module_change_auto_install/readme/CONFIGURE.rst
index e766d4315..7bb8d37bd 100644
--- a/module_change_auto_install/readme/CONFIGURE.rst
+++ b/module_change_auto_install/readme/CONFIGURE.rst
@@ -16,18 +16,44 @@
server_wide_modules = web,module_change_auto_install
- modules_auto_install_disabled = partner_autocomplete,iap,mail_bot,account_edi,account_edi_facturx,account_edi_ubl
+ modules_auto_install_disabled =
+ partner_autocomplete,
+ iap,
+ mail_bot
- modules_auto_install_enabled = web_responsive,web_no_bubble,base_technical_features,disable_odoo_online,account_menu
+ modules_auto_install_enabled =
+ web_responsive:web,
+ base_technical_features,
+ disable_odoo_online,
+ account_usability
Run your instance and check logs. Modules that has been altered should be present in your log, at the load of your instance:
.. code-block:: shell
- INFO db_name odoo.addons.module_change_auto_install.patch: Module 'iap' has been marked as not auto installable.
- INFO db_name odoo.addons.module_change_auto_install.patch: Module 'mail_bot' has been marked as not auto installable.
- INFO db_name odoo.addons.module_change_auto_install.patch: Module 'partner_autocomplete' has been marked as not auto installable.
- INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi' has been marked as not auto installable.
- INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_facturx' has been marked as not auto installable.
- INFO db_name odoo.addons.module_change_auto_install.patch: Module 'account_edi_ubl' has been marked as not auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'iap' has been marked as NOT auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'mail_bot' has been marked as NOT auto installable.
+ INFO db_name odoo.addons.module_change_auto_install.patch: Module 'partner_autocomplete' has been marked as NOT auto installable.
INFO db_name odoo.modules.loading: 42 modules loaded in 0.32s, 0 queries (+0 extra)
+
+**Advanced Configuration Possibilities**
+
+if your ``odoo.cfg`` file contains the following configuration:
+
+.. code-block:: shell
+
+ modules_auto_install_enabled =
+ account_usability,
+ web_responsive:web,
+ base_technical_features:,
+ point_of_sale:sale/purchase
+
+The behaviour will be the following:
+
+* ``account_usability`` module will be installed as soon as all the default dependencies are installed. (here ``account``)
+
+* ``web_responsive`` module will be installed as soon as ``web`` is installed. (Althought ``web_responsive`` depends on ``web`` and ``mail``)
+
+* ``base_technical_features`` will be ALWAYS installed
+
+* ``point_of_sale`` module will be installed as soon as ``sale`` and ``purchase`` module are installed.
diff --git a/module_change_auto_install/tests/__init__.py b/module_change_auto_install/tests/__init__.py
new file mode 100644
index 000000000..d9b96c4fa
--- /dev/null
+++ b/module_change_auto_install/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_module
diff --git a/module_change_auto_install/tests/test_module.py b/module_change_auto_install/tests/test_module.py
new file mode 100644
index 000000000..7302d0cb1
--- /dev/null
+++ b/module_change_auto_install/tests/test_module.py
@@ -0,0 +1,30 @@
+# Copyright 2015-2017 Camptocamp SA
+# Copyright 2020 Onestein ()
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo.tests.common import TransactionCase
+
+from odoo.addons.module_change_auto_install.patch import (
+ _get_modules_dict_auto_install_config,
+)
+
+# from ..models.base import disable_changeset
+
+
+class TestModule(TransactionCase):
+
+ _EXPECTED_RESULTS = {
+ "web_responsive": {"web_responsive": True},
+ "sale, purchase,": {"sale": True, "purchase": True},
+ "web_responsive:web,base_technical_features:,"
+ "point_of_sale:sale/purchase,account_usability": {
+ "web_responsive": ["web"],
+ "base_technical_features": [],
+ "point_of_sale": ["sale", "purchase"],
+ "account_usability": True,
+ },
+ }
+
+ def test_config_parsing(self):
+ for k, v in self._EXPECTED_RESULTS.items():
+ self.assertEqual(_get_modules_dict_auto_install_config(k), v)