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 | florian-dacosta | 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 @@

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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/server-env Translate me on Weblate Try me on Runboat

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 @@

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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Production/Stable License: LGPL-3 OCA/server-env Translate me on Weblate Try me on Runboat

This module provides a way to define an environment in the main Odoo