diff --git a/README.md b/README.md
index fe586385a..1a7dc589e 100644
--- a/README.md
+++ b/README.md
@@ -23,9 +23,9 @@ Available addons
addon | version | maintainers | summary
--- | --- | --- | ---
[data_encryption](data_encryption/) | 17.0.1.0.0 | | Store accounts and credentials encrypted by environment
-[mail_environment](mail_environment/) | 17.0.1.0.1 | | Configure mail servers with server_environment_files
+[mail_environment](mail_environment/) | 17.0.1.0.2 | | Configure mail servers with server_environment_files
[mail_environment_office365](mail_environment_office365/) | 17.0.1.0.0 | | Configure Office365 parameters with environment variables via server_environment
-[server_environment](server_environment/) | 17.0.1.2.2 | | move some configurations out of the database
+[server_environment](server_environment/) | 17.0.1.2.3 | | move some configurations out of the database
[server_environment_autocreate](server_environment_autocreate/) | 17.0.1.0.0 | | Add ability to auto create records
[server_environment_data_encryption](server_environment_data_encryption/) | 17.0.1.0.0 |
| Server Environment Data Encryption
[server_environment_ir_config_parameter](server_environment_ir_config_parameter/) | 17.0.1.0.0 | | Override System Parameters from server environment file
diff --git a/mail_environment/README.rst b/mail_environment/README.rst
index d0f79cea0..59152c709 100644
--- a/mail_environment/README.rst
+++ b/mail_environment/README.rst
@@ -11,7 +11,7 @@ Mail configuration with server_environment
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:0a35903a063255046023b3bb954ab183618c0e93896496338fe86c7f24dbbb26
+ !! source digest: sha256:b60ef476e58ccd2c00acd9a4844aa0155f3f593ddcbd3775e5cc12a362ec0340
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/mail_environment/__manifest__.py b/mail_environment/__manifest__.py
index b20d02d35..7f3f8c3ec 100644
--- a/mail_environment/__manifest__.py
+++ b/mail_environment/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Mail configuration with server_environment",
- "version": "17.0.1.0.1",
+ "version": "17.0.1.0.2",
"category": "Tools",
"summary": "Configure mail servers with server_environment_files",
"author": "Camptocamp, Odoo Community Association (OCA)",
diff --git a/mail_environment/migrations/17.0.1.0.2/post-migration.py b/mail_environment/migrations/17.0.1.0.2/post-migration.py
new file mode 100644
index 000000000..523be970a
--- /dev/null
+++ b/mail_environment/migrations/17.0.1.0.2/post-migration.py
@@ -0,0 +1,9 @@
+# Copyright 2026 ACSONE SA/NV
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from openupgradelib import openupgrade
+
+
+@openupgrade.migrate()
+def migrate(env, version):
+ env["ir.mail_server"]._preserve_not_env_managed_data(["smtp_authentication"])
diff --git a/mail_environment/static/description/index.html b/mail_environment/static/description/index.html
index 0f434f77e..ba3e6c2f2 100644
--- a/mail_environment/static/description/index.html
+++ b/mail_environment/static/description/index.html
@@ -372,7 +372,7 @@
This module allows to configure the incoming and outgoing mail servers diff --git a/server_environment/README.rst b/server_environment/README.rst index 9f0f0c082..d4a20264c 100644 --- a/server_environment/README.rst +++ b/server_environment/README.rst @@ -11,7 +11,7 @@ server configuration environment files !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:bfb242c8cf384684a1067a797167c4d3dccf13cd9fc63a8520ad88d08861aece + !! source digest: sha256:8299be39e05bf3977f1c2fcb06c4577899dcfcbc4b1e8d07f612a7fd568c9a70 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png diff --git a/server_environment/__manifest__.py b/server_environment/__manifest__.py index a0ebd9f75..6529f1b51 100644 --- a/server_environment/__manifest__.py +++ b/server_environment/__manifest__.py @@ -4,7 +4,7 @@ { "name": "server configuration environment files", - "version": "17.0.1.2.2", + "version": "17.0.1.2.3", "depends": ["base", "base_sparse_field"], "author": "Camptocamp,Odoo Community Association (OCA)", "summary": "move some configurations out of the database", diff --git a/server_environment/models/server_env_mixin.py b/server_environment/models/server_env_mixin.py index 2bf47b0c7..dcb28ab45 100644 --- a/server_environment/models/server_env_mixin.py +++ b/server_environment/models/server_env_mixin.py @@ -425,3 +425,31 @@ def _setup_base(self): self._server_env_transform_field_to_read_from_env(field) self._server_env_add_is_editable_field(field) return + + @api.model + def _preserve_not_env_managed_data(self, field_name_list): + """ + Helper function typically used for hooks and migration scripts. + Restores database values for fields transitioning to 'server env managed'. + + When a field is defined as managed by the server environment, Odoo + ignores the value stored in the database, prioritizing the environment + configuration instead. If no environment configuration exists, the field + may effectively lose its previous value. + + This method forces to 'persist' these values if they are not + explicitly overridden by the current environment configuration. + """ + self.env.cr.execute(f"SELECT * FROM {self._table}") + for row in self.env.cr.dictfetchall(): + record = ( + self.env[self._name] + .with_context(active_test=False) + .search([("id", "=", row["id"])]) + ) + if record: + record_values = {} + for field_name in field_name_list: + if field_name in row: + record_values[field_name] = row[field_name] + record.update(record_values) diff --git a/server_environment/static/description/index.html b/server_environment/static/description/index.html index e12e33f5f..9c08588f7 100644 --- a/server_environment/static/description/index.html +++ b/server_environment/static/description/index.html @@ -372,7 +372,7 @@
This module provides a way to define an environment in the main Odoo