From a2a7082309ac848d20e1fc963ddbfa8bd1408809 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Fri, 12 Apr 2019 20:02:55 +0200 Subject: [PATCH 01/39] Add module server_environment_data_encryption --- .../__init__.py | 1 + .../__manifest__.py | 11 ++ .../models/__init__.py | 1 + .../models/server_env_mixin.py | 167 ++++++++++++++++++ .../readme/CONFIGURE.rst | 24 +++ .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 6 + .../tests/__init__.py | 1 + .../tests/fixtures/base.xml | 15 ++ .../tests/fixtures/res1.xml | 21 +++ .../tests/fixtures/res2.xml | 21 +++ .../test_server_environment_data_encrypt.py | 32 ++++ 12 files changed, 303 insertions(+) create mode 100644 server_environment_data_encryption/__init__.py create mode 100644 server_environment_data_encryption/__manifest__.py create mode 100644 server_environment_data_encryption/models/__init__.py create mode 100644 server_environment_data_encryption/models/server_env_mixin.py create mode 100644 server_environment_data_encryption/readme/CONFIGURE.rst create mode 100644 server_environment_data_encryption/readme/CONTRIBUTORS.rst create mode 100644 server_environment_data_encryption/readme/DESCRIPTION.rst create mode 100644 server_environment_data_encryption/tests/__init__.py create mode 100644 server_environment_data_encryption/tests/fixtures/base.xml create mode 100644 server_environment_data_encryption/tests/fixtures/res1.xml create mode 100644 server_environment_data_encryption/tests/fixtures/res2.xml create mode 100644 server_environment_data_encryption/tests/test_server_environment_data_encrypt.py diff --git a/server_environment_data_encryption/__init__.py b/server_environment_data_encryption/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/server_environment_data_encryption/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/server_environment_data_encryption/__manifest__.py b/server_environment_data_encryption/__manifest__.py new file mode 100644 index 000000000..8c57c4514 --- /dev/null +++ b/server_environment_data_encryption/__manifest__.py @@ -0,0 +1,11 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Server Environment Data Encryption", + "version": "12.0.0.0.1", + "category": "Tools", + "website": "https://github.com/OCA/server-env", + "author": "Akretion, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "depends": ["server_environment", "data_encryption"], +} diff --git a/server_environment_data_encryption/models/__init__.py b/server_environment_data_encryption/models/__init__.py new file mode 100644 index 000000000..6bd869a1e --- /dev/null +++ b/server_environment_data_encryption/models/__init__.py @@ -0,0 +1 @@ +from . import server_env_mixin diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py new file mode 100644 index 000000000..3845c4ebc --- /dev/null +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -0,0 +1,167 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import logging +from odoo import api, models, _ +from odoo.exceptions import ValidationError +from odoo.tools.config import config +from lxml import etree +from odoo.osv.orm import setup_modifiers + + +_logger = logging.getLogger(__name__) + + +class ServerEnvMixin(models.AbstractModel): + _inherit = "server.env.mixin" + + def _compute_server_env_from_default(self, field_name, options): + """ First return database encrypted value then default value """ + self.ensure_one() + encrypted_data_name = "%s,%s" % (self._name, self.id) + env = self.env.context.get("environment", None) + vals = ( + self.env["encrypted.data"] + .sudo() + ._get_json(encrypted_data_name, env=env) + ) + if vals.get(field_name): + self[field_name] = vals[field_name] + else: + return super()._compute_server_env_from_default( + field_name, options + ) + + def _inverse_server_env(self, field_name): + """ + When this module is installed, we store values into encrypted data + env instead of a default field in database (not env dependent). + """ + is_editable_field = self._server_env_is_editable_fieldname(field_name) + encrypted_data_obj = self.env["encrypted.data"].sudo() + env = self.env.context.get("environment", None) + for record in self: + if record[is_editable_field]: + encrypted_data_name = "%s,%s" % (record._name, record.id) + values = encrypted_data_obj._get_json( + encrypted_data_name, env=env + ) + new_val = {field_name: record[field_name]} + values.update(new_val) + encrypted_data_obj._store_json( + encrypted_data_name, values, env=env + ) + + def action_change_env_data_encrypted_fields(self): + action_id = self.env.context.get("params", {}).get("action") + if not action_id: + # We don't know which action we are using... take default one + action = self.get_formview_action() + else: + action = self.env["ir.actions.act_window"].browse( + action_id).read()[0] + action["view_mode"] = "form" + action["res_id"] = self.id + views_form = [] + for view_id, view_type in action.get("views", []): + if view_type == "form": + views_form.append((view_id, view_type)) + action["views"] = views_form + return action + + def _get_extra_environment_info_div(self, current_env, extra_envs): + # TODO we could use a qweb template here + button_div = "
" + button_string = _("Define values for ") + for environment in extra_envs: + button = """ +
" + alert_string = _("Modify values for {} environment").format( + current_env + ) + alert_type = ( + current_env == config.get("running_env") + and "alert-info" + or "alert-warning" + ) + elem = etree.fromstring( + """ +
+
+ {} +
+ {} +
+ """.format( + alert_type, alert_string, button_div + ) + ) + return elem + + def _set_readonly_form_view(self, doc): + for field in doc.iter("field"): + env_fields = self._server_env_fields.keys() + field_name = field.get("name") + if field_name in env_fields: + continue + field.set("readonly", "1") + setup_modifiers(field, self.fields_get(field_name)) + + def _update_form_view_from_env(self, arch, view_type): + if view_type != "form": + return arch + current_env = self.env.context.get("environment") or config.get( + "running_env" + ) + other_environments = [ + key[15:] + for key, val in config.options.items() + if key.startswith("encryption_key_") + and val + and key[15:] != current_env + ] + + if not current_env: + raise ValidationError( + _( + "you need to define the running_env entry in your odoo " + "configuration file" + ) + ) + doc = etree.XML(arch) + node = doc.xpath("//sheet") + if node: + node = node[0] + elem = self._get_extra_environment_info_div( + current_env, other_environments + ) + node.insert(0, elem) + + if current_env != config.get("running_env"): + self._set_readonly_form_view(doc) + arch = etree.tostring(doc, pretty_print=True, encoding="unicode") + else: + _logger.error( + "Missing sheet for form view on object {}".format(self._name) + ) + return arch + + @api.model + def fields_view_get( + self, view_id=None, view_type="form", toolbar=False, submenu=False + ): + res = super().fields_view_get( + view_id=view_id, + view_type=view_type, + toolbar=toolbar, + submenu=submenu, + ) + res["arch"] = self._update_form_view_from_env(res["arch"], view_type) + return res diff --git a/server_environment_data_encryption/readme/CONFIGURE.rst b/server_environment_data_encryption/readme/CONFIGURE.rst new file mode 100644 index 000000000..9d0ad4645 --- /dev/null +++ b/server_environment_data_encryption/readme/CONFIGURE.rst @@ -0,0 +1,24 @@ +In order to use this module properly, each environment should have their own encryption key +and the production environment should have the keys of all environments. + +Example : +Development environment :: + + [options] + running_env=dev + encryption_key_dev=XXX + +Pre-production environment :: + + [options] + running_env=preprod + encryption_key_preprod=YYY + +Production environment :: + + [options] + running_env=prod + encryption_key_dev=XXX + encryption_key_preprod=YYY + encryption_key_prod=ZZZ + diff --git a/server_environment_data_encryption/readme/CONTRIBUTORS.rst b/server_environment_data_encryption/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..86340ecd1 --- /dev/null +++ b/server_environment_data_encryption/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Florian da Costa +* Sébastien Beau +* Benoît Guillot diff --git a/server_environment_data_encryption/readme/DESCRIPTION.rst b/server_environment_data_encryption/readme/DESCRIPTION.rst new file mode 100644 index 000000000..ebf414798 --- /dev/null +++ b/server_environment_data_encryption/readme/DESCRIPTION.rst @@ -0,0 +1,6 @@ +This module changes a little the behavior of server_environment modules. +When Odoo does not find the value of the field in the configuration file, +it will fallback on a Odoo encrypted field instead. +Also it allows you +to configure the environment dependent fields for all your environments +from the production server. diff --git a/server_environment_data_encryption/tests/__init__.py b/server_environment_data_encryption/tests/__init__.py new file mode 100644 index 000000000..83ac8b859 --- /dev/null +++ b/server_environment_data_encryption/tests/__init__.py @@ -0,0 +1 @@ +from . import test_server_environment_data_encrypt diff --git a/server_environment_data_encryption/tests/fixtures/base.xml b/server_environment_data_encryption/tests/fixtures/base.xml new file mode 100644 index 000000000..524c95993 --- /dev/null +++ b/server_environment_data_encryption/tests/fixtures/base.xml @@ -0,0 +1,15 @@ +
+
+
+ + + + + + + +
diff --git a/server_environment_data_encryption/tests/fixtures/res1.xml b/server_environment_data_encryption/tests/fixtures/res1.xml new file mode 100644 index 000000000..7ca515a86 --- /dev/null +++ b/server_environment_data_encryption/tests/fixtures/res1.xml @@ -0,0 +1,21 @@ +
+
+
+ +
+
+ Modify values for test environment +
+
+
+
+ + + + +
+
diff --git a/server_environment_data_encryption/tests/fixtures/res2.xml b/server_environment_data_encryption/tests/fixtures/res2.xml new file mode 100644 index 000000000..032e10881 --- /dev/null +++ b/server_environment_data_encryption/tests/fixtures/res2.xml @@ -0,0 +1,21 @@ +
+
+
+ +
+
+ Modify values for prod environment +
+
+
+
+ + + + +
+
diff --git a/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py b/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py new file mode 100644 index 000000000..4194626a3 --- /dev/null +++ b/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py @@ -0,0 +1,32 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.addons.data_encryption.tests.common import CommonDataEncrypted +from pathlib import Path + + +class TestServerEnvDataEncrypted(CommonDataEncrypted): + + def test_dynamic_view_current_env(self): + self.maxDiff = None + self.set_new_key_env("prod") + self.set_new_key_env("preprod") + mixin_obj = self.env["server.env.mixin"] + base_path = Path(__file__).parent / "fixtures" / "base.xml" + xml = base_path.read_text() + res_xml = mixin_obj._update_form_view_from_env(xml, "form") + expected_xml_path = Path(__file__).parent / "fixtures" / "res1.xml" + expected_xml = expected_xml_path.read_text() + self.assertEqual(res_xml, expected_xml) + + def test_dynamic_view_other_env(self): + self.set_new_key_env("prod") + self.set_new_key_env("preprod") + mixin_obj = self.env["server.env.mixin"] + base_path = Path(__file__).parent / "fixtures" / "base.xml" + xml = base_path.read_text() + res_xml = mixin_obj.with_context( + environment="prod" + )._update_form_view_from_env(xml, "form") + expected_xml_path = Path(__file__).parent / "fixtures" / "res2.xml" + expected_xml = expected_xml_path.read_text() + self.assertEqual(res_xml, expected_xml) From 87e4bcd25a601eb30333a5475365028479ab8a85 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Fri, 4 Oct 2019 19:57:19 +0200 Subject: [PATCH 02/39] [REF] Adapt method name after change is depency --- server_environment_data_encryption/__manifest__.py | 3 ++- .../models/server_env_mixin.py | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/server_environment_data_encryption/__manifest__.py b/server_environment_data_encryption/__manifest__.py index 8c57c4514..53ccd13fb 100644 --- a/server_environment_data_encryption/__manifest__.py +++ b/server_environment_data_encryption/__manifest__.py @@ -1,7 +1,8 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Server Environment Data Encryption", - "version": "12.0.0.0.1", + "version": "12.0.1.0.0", + "development_status": 'Alpha', "category": "Tools", "website": "https://github.com/OCA/server-env", "author": "Akretion, Odoo Community Association (OCA)", diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index 3845c4ebc..00066f87f 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -22,7 +22,7 @@ def _compute_server_env_from_default(self, field_name, options): vals = ( self.env["encrypted.data"] .sudo() - ._get_json(encrypted_data_name, env=env) + ._encrypted_read_json(encrypted_data_name, env=env) ) if vals.get(field_name): self[field_name] = vals[field_name] @@ -42,12 +42,12 @@ def _inverse_server_env(self, field_name): for record in self: if record[is_editable_field]: encrypted_data_name = "%s,%s" % (record._name, record.id) - values = encrypted_data_obj._get_json( + values = encrypted_data_obj._encrypted_read_json( encrypted_data_name, env=env ) new_val = {field_name: record[field_name]} values.update(new_val) - encrypted_data_obj._store_json( + encrypted_data_obj._encrypted_store_json( encrypted_data_name, values, env=env ) From 230e019a142b63d57aaba8efa7c5268631cbc377 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Fri, 4 Oct 2019 20:34:06 +0200 Subject: [PATCH 03/39] [FIX] Make sure the generated view is always the same and the order of the button does not change randomly --- .../models/server_env_mixin.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index 00066f87f..d969793fa 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -120,13 +120,17 @@ def _update_form_view_from_env(self, arch, view_type): current_env = self.env.context.get("environment") or config.get( "running_env" ) - other_environments = [ + # Important to keep this list sorted. It makes sure the button to + # switch environment will always be in the same order. (more user + # friendly) and the test would fail without it as the order could + # change randomly and the view would then also change randomly + other_environments = sorted([ key[15:] for key, val in config.options.items() if key.startswith("encryption_key_") and val and key[15:] != current_env - ] + ]) if not current_env: raise ValidationError( From f6f25d5ab3ca317d0613605a69128365fca0d8e6 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sat, 28 Mar 2020 08:45:33 +0000 Subject: [PATCH 04/39] [UPD] Update server_environment_data_encryption.pot --- .../server_environment_data_encryption.pot | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 server_environment_data_encryption/i18n/server_environment_data_encryption.pot diff --git a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot new file mode 100644 index 000000000..0acf17bc5 --- /dev/null +++ b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_environment_data_encryption +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:74 +#, python-format +msgid "Define values for " +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model,name:server_environment_data_encryption.model_server_env_mixin +msgid "Mixin to add server environment in existing models" +msgstr "" + +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:86 +#, python-format +msgid "Modify values for {} environment" +msgstr "" + +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:137 +#, python-format +msgid "you need to define the running_env entry in your odoo configuration file" +msgstr "" + From 90f701a3458dd39a727a41bac90fd82b9fa69d2f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 28 Mar 2020 08:50:05 +0000 Subject: [PATCH 05/39] [UPD] README.rst --- server_environment_data_encryption/README.rst | 113 +++++ .../static/description/index.html | 459 ++++++++++++++++++ 2 files changed, 572 insertions(+) create mode 100644 server_environment_data_encryption/README.rst create mode 100644 server_environment_data_encryption/static/description/index.html diff --git a/server_environment_data_encryption/README.rst b/server_environment_data_encryption/README.rst new file mode 100644 index 000000000..7b64980bc --- /dev/null +++ b/server_environment_data_encryption/README.rst @@ -0,0 +1,113 @@ +================================== +Server Environment Data Encryption +================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |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--env-lightgray.png?logo=github + :target: https://github.com/OCA/server-env/tree/12.0/server_environment_data_encryption + :alt: OCA/server-env +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-env-12-0/server-env-12-0-server_environment_data_encryption + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/254/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module changes a little the behavior of server_environment modules. +When Odoo does not find the value of the field in the configuration file, +it will fallback on a Odoo encrypted field instead. +Also it allows you +to configure the environment dependent fields for all your environments +from the production server. + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +In order to use this module properly, each environment should have their own encryption key +and the production environment should have the keys of all environments. + +Example : +Development environment :: + + [options] + running_env=dev + encryption_key_dev=XXX + +Pre-production environment :: + + [options] + running_env=preprod + encryption_key_preprod=YYY + +Production environment :: + + [options] + running_env=prod + encryption_key_dev=XXX + encryption_key_preprod=YYY + encryption_key_prod=ZZZ + + +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 +~~~~~~~ + +* Akretion + +Contributors +~~~~~~~~~~~~ + +* Florian da Costa +* Sébastien Beau +* Benoît Guillot + +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. + +This module is part of the `OCA/server-env `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/server_environment_data_encryption/static/description/index.html b/server_environment_data_encryption/static/description/index.html new file mode 100644 index 000000000..5bd6658eb --- /dev/null +++ b/server_environment_data_encryption/static/description/index.html @@ -0,0 +1,459 @@ + + + + + + +Server Environment Data Encryption + + + +
+

Server Environment Data Encryption

+ + +

Alpha License: AGPL-3 OCA/server-env Translate me on Weblate Try me on Runbot

+

This module changes a little the behavior of server_environment modules. +When Odoo does not find the value of the field in the configuration file, +it will fallback on a Odoo encrypted field instead. +Also it allows you +to configure the environment dependent fields for all your environments +from the production server.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Configuration

+

In order to use this module properly, each environment should have their own encryption key +and the production environment should have the keys of all environments.

+

Example : +Development environment

+
+[options]
+running_env=dev
+encryption_key_dev=XXX
+
+

Pre-production environment

+
+[options]
+running_env=preprod
+encryption_key_preprod=YYY
+
+

Production environment

+
+[options]
+running_env=prod
+encryption_key_dev=XXX
+encryption_key_preprod=YYY
+encryption_key_prod=ZZZ
+
+
+
+

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

+
    +
  • Akretion
  • +
+
+
+

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

+

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

+
+
+
+ + From 75f4726163460f72163cdb3a279d806e0be983f5 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 28 Mar 2020 08:50:05 +0000 Subject: [PATCH 06/39] [ADD] icon.png --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 server_environment_data_encryption/static/description/icon.png diff --git a/server_environment_data_encryption/static/description/icon.png b/server_environment_data_encryption/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 08009d874569b0c3c06d919fb6460bbb881b90b9 Mon Sep 17 00:00:00 2001 From: Thomas Binsfeld Date: Mon, 5 Oct 2020 14:04:48 +0200 Subject: [PATCH 07/39] [MIG] server_environment_data_encryption: migration to 13.0 (pre-commit) --- .../__manifest__.py | 4 +- .../models/server_env_mixin.py | 57 +++++++------------ .../readme/CONFIGURE.rst | 5 +- .../test_server_environment_data_encrypt.py | 11 ++-- 4 files changed, 31 insertions(+), 46 deletions(-) diff --git a/server_environment_data_encryption/__manifest__.py b/server_environment_data_encryption/__manifest__.py index 53ccd13fb..ce877483d 100644 --- a/server_environment_data_encryption/__manifest__.py +++ b/server_environment_data_encryption/__manifest__.py @@ -1,8 +1,8 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Server Environment Data Encryption", - "version": "12.0.1.0.0", - "development_status": 'Alpha', + "version": "13.0.1.0.0", + "development_status": "Alpha", "category": "Tools", "website": "https://github.com/OCA/server-env", "author": "Akretion, Odoo Community Association (OCA)", diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index d969793fa..80261c0ce 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -1,12 +1,13 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import logging -from odoo import api, models, _ -from odoo.exceptions import ValidationError -from odoo.tools.config import config + from lxml import etree from odoo.osv.orm import setup_modifiers +from odoo import _, api, models +from odoo.exceptions import ValidationError +from odoo.tools.config import config _logger = logging.getLogger(__name__) @@ -17,7 +18,7 @@ class ServerEnvMixin(models.AbstractModel): def _compute_server_env_from_default(self, field_name, options): """ First return database encrypted value then default value """ self.ensure_one() - encrypted_data_name = "%s,%s" % (self._name, self.id) + encrypted_data_name = "{},{}".format(self._name, self.id) env = self.env.context.get("environment", None) vals = ( self.env["encrypted.data"] @@ -27,9 +28,7 @@ def _compute_server_env_from_default(self, field_name, options): if vals.get(field_name): self[field_name] = vals[field_name] else: - return super()._compute_server_env_from_default( - field_name, options - ) + return super()._compute_server_env_from_default(field_name, options) def _inverse_server_env(self, field_name): """ @@ -41,7 +40,7 @@ def _inverse_server_env(self, field_name): env = self.env.context.get("environment", None) for record in self: if record[is_editable_field]: - encrypted_data_name = "%s,%s" % (record._name, record.id) + encrypted_data_name = "{},{}".format(record._name, record.id) values = encrypted_data_obj._encrypted_read_json( encrypted_data_name, env=env ) @@ -57,8 +56,7 @@ def action_change_env_data_encrypted_fields(self): # We don't know which action we are using... take default one action = self.get_formview_action() else: - action = self.env["ir.actions.act_window"].browse( - action_id).read()[0] + action = self.env["ir.actions.act_window"].browse(action_id).read()[0] action["view_mode"] = "form" action["res_id"] = self.id views_form = [] @@ -83,13 +81,9 @@ def _get_extra_environment_info_div(self, current_env, extra_envs): ) button_div += "{}".format(button) button_div += "" - alert_string = _("Modify values for {} environment").format( - current_env - ) + alert_string = _("Modify values for {} environment").format(current_env) alert_type = ( - current_env == config.get("running_env") - and "alert-info" - or "alert-warning" + current_env == config.get("running_env") and "alert-info" or "alert-warning" ) elem = etree.fromstring( """ @@ -117,20 +111,18 @@ def _set_readonly_form_view(self, doc): def _update_form_view_from_env(self, arch, view_type): if view_type != "form": return arch - current_env = self.env.context.get("environment") or config.get( - "running_env" - ) + current_env = self.env.context.get("environment") or config.get("running_env") # Important to keep this list sorted. It makes sure the button to # switch environment will always be in the same order. (more user # friendly) and the test would fail without it as the order could # change randomly and the view would then also change randomly - other_environments = sorted([ - key[15:] - for key, val in config.options.items() - if key.startswith("encryption_key_") - and val - and key[15:] != current_env - ]) + other_environments = sorted( + [ + key[15:] + for key, val in config.options.items() + if key.startswith("encryption_key_") and val and key[15:] != current_env + ] + ) if not current_env: raise ValidationError( @@ -143,18 +135,14 @@ def _update_form_view_from_env(self, arch, view_type): node = doc.xpath("//sheet") if node: node = node[0] - elem = self._get_extra_environment_info_div( - current_env, other_environments - ) + elem = self._get_extra_environment_info_div(current_env, other_environments) node.insert(0, elem) if current_env != config.get("running_env"): self._set_readonly_form_view(doc) arch = etree.tostring(doc, pretty_print=True, encoding="unicode") else: - _logger.error( - "Missing sheet for form view on object {}".format(self._name) - ) + _logger.error("Missing sheet for form view on object {}".format(self._name)) return arch @api.model @@ -162,10 +150,7 @@ def fields_view_get( self, view_id=None, view_type="form", toolbar=False, submenu=False ): res = super().fields_view_get( - view_id=view_id, - view_type=view_type, - toolbar=toolbar, - submenu=submenu, + view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu, ) res["arch"] = self._update_form_view_from_env(res["arch"], view_type) return res diff --git a/server_environment_data_encryption/readme/CONFIGURE.rst b/server_environment_data_encryption/readme/CONFIGURE.rst index 9d0ad4645..37875faa3 100644 --- a/server_environment_data_encryption/readme/CONFIGURE.rst +++ b/server_environment_data_encryption/readme/CONFIGURE.rst @@ -1,7 +1,7 @@ In order to use this module properly, each environment should have their own encryption key -and the production environment should have the keys of all environments. +and the production environment should have the keys of all environments. -Example : +Example : Development environment :: [options] @@ -21,4 +21,3 @@ Production environment :: encryption_key_dev=XXX encryption_key_preprod=YYY encryption_key_prod=ZZZ - diff --git a/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py b/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py index 4194626a3..d415f70eb 100644 --- a/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py +++ b/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py @@ -1,11 +1,11 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo.addons.data_encryption.tests.common import CommonDataEncrypted from pathlib import Path +from odoo.addons.data_encryption.tests.common import CommonDataEncrypted -class TestServerEnvDataEncrypted(CommonDataEncrypted): +class TestServerEnvDataEncrypted(CommonDataEncrypted): def test_dynamic_view_current_env(self): self.maxDiff = None self.set_new_key_env("prod") @@ -19,14 +19,15 @@ def test_dynamic_view_current_env(self): self.assertEqual(res_xml, expected_xml) def test_dynamic_view_other_env(self): + self.maxDiff = None self.set_new_key_env("prod") self.set_new_key_env("preprod") mixin_obj = self.env["server.env.mixin"] base_path = Path(__file__).parent / "fixtures" / "base.xml" xml = base_path.read_text() - res_xml = mixin_obj.with_context( - environment="prod" - )._update_form_view_from_env(xml, "form") + res_xml = mixin_obj.with_context(environment="prod")._update_form_view_from_env( + xml, "form" + ) expected_xml_path = Path(__file__).parent / "fixtures" / "res2.xml" expected_xml = expected_xml_path.read_text() self.assertEqual(res_xml, expected_xml) From 5afce764981b5fd8c138576dcbd13a5f75db4ccd Mon Sep 17 00:00:00 2001 From: Thomas Binsfeld Date: Mon, 5 Oct 2020 14:07:58 +0200 Subject: [PATCH 08/39] [MIG] server_environment_data_encryption to 13.0 --- server_environment_data_encryption/models/server_env_mixin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index 80261c0ce..5a3c5b973 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -1,9 +1,9 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import json import logging from lxml import etree -from odoo.osv.orm import setup_modifiers from odoo import _, api, models from odoo.exceptions import ValidationError @@ -106,7 +106,7 @@ def _set_readonly_form_view(self, doc): if field_name in env_fields: continue field.set("readonly", "1") - setup_modifiers(field, self.fields_get(field_name)) + field.set("modifiers", json.dumps({"readonly": True})) def _update_form_view_from_env(self, arch, view_type): if view_type != "form": From 4727501528b371bb183f1b0b7ba1f4a8efa65dac Mon Sep 17 00:00:00 2001 From: Mourad Date: Mon, 12 Oct 2020 14:07:41 +0200 Subject: [PATCH 09/39] [IMP] server_environment_data_encryption, data_encryption: black, isort, prettier --- .../models/server_env_mixin.py | 9 ++-- .../tests/fixtures/base.xml | 21 ++++++--- .../tests/fixtures/res1.xml | 46 +++++++++++++----- .../tests/fixtures/res2.xml | 47 ++++++++++++++----- 4 files changed, 89 insertions(+), 34 deletions(-) diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index 5a3c5b973..c008577d8 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -32,8 +32,8 @@ def _compute_server_env_from_default(self, field_name, options): def _inverse_server_env(self, field_name): """ - When this module is installed, we store values into encrypted data - env instead of a default field in database (not env dependent). + When this module is installed, we store values into encrypted data + env instead of a default field in database (not env dependent). """ is_editable_field = self._server_env_is_editable_fieldname(field_name) encrypted_data_obj = self.env["encrypted.data"].sudo() @@ -150,7 +150,10 @@ def fields_view_get( self, view_id=None, view_type="form", toolbar=False, submenu=False ): res = super().fields_view_get( - view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu, + view_id=view_id, + view_type=view_type, + toolbar=toolbar, + submenu=submenu, ) res["arch"] = self._update_form_view_from_env(res["arch"], view_type) return res diff --git a/server_environment_data_encryption/tests/fixtures/base.xml b/server_environment_data_encryption/tests/fixtures/base.xml index 524c95993..11f2eb797 100644 --- a/server_environment_data_encryption/tests/fixtures/base.xml +++ b/server_environment_data_encryption/tests/fixtures/base.xml @@ -1,15 +1,22 @@
-
- - - + + +
diff --git a/server_environment_data_encryption/tests/fixtures/res1.xml b/server_environment_data_encryption/tests/fixtures/res1.xml index 7ca515a86..60966da87 100644 --- a/server_environment_data_encryption/tests/fixtures/res1.xml +++ b/server_environment_data_encryption/tests/fixtures/res1.xml @@ -1,21 +1,43 @@
-
-
- Modify values for test environment -
-
-
- - - +
+
+
+ + + +
diff --git a/server_environment_data_encryption/tests/fixtures/res2.xml b/server_environment_data_encryption/tests/fixtures/res2.xml index 032e10881..d78832058 100644 --- a/server_environment_data_encryption/tests/fixtures/res2.xml +++ b/server_environment_data_encryption/tests/fixtures/res2.xml @@ -1,21 +1,44 @@
-
-
- Modify values for prod environment -
-
-
- - - +
+
+
+ + + +
From 56c647c66efc230f85852ce149d7e335150ccd27 Mon Sep 17 00:00:00 2001 From: Mourad Date: Mon, 12 Oct 2020 15:32:19 +0200 Subject: [PATCH 10/39] [MIG] server_environment_data_encryption, data_encryption: Migration to 14.0 note: exclude tests/fixtures from pre-commit check --- .../__manifest__.py | 2 +- .../tests/fixtures/res1.xml | 46 +++++------------- .../tests/fixtures/res2.xml | 47 +++++-------------- 3 files changed, 25 insertions(+), 70 deletions(-) diff --git a/server_environment_data_encryption/__manifest__.py b/server_environment_data_encryption/__manifest__.py index ce877483d..c7e8e2258 100644 --- a/server_environment_data_encryption/__manifest__.py +++ b/server_environment_data_encryption/__manifest__.py @@ -1,7 +1,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Server Environment Data Encryption", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "development_status": "Alpha", "category": "Tools", "website": "https://github.com/OCA/server-env", diff --git a/server_environment_data_encryption/tests/fixtures/res1.xml b/server_environment_data_encryption/tests/fixtures/res1.xml index 60966da87..7ca515a86 100644 --- a/server_environment_data_encryption/tests/fixtures/res1.xml +++ b/server_environment_data_encryption/tests/fixtures/res1.xml @@ -1,43 +1,21 @@
-
-
- Modify values for test environment +
+ Modify values for test environment +
+
+
-
-
-
- - - - +
+ + +
diff --git a/server_environment_data_encryption/tests/fixtures/res2.xml b/server_environment_data_encryption/tests/fixtures/res2.xml index d78832058..032e10881 100644 --- a/server_environment_data_encryption/tests/fixtures/res2.xml +++ b/server_environment_data_encryption/tests/fixtures/res2.xml @@ -1,44 +1,21 @@
-
-
- Modify values for prod environment +
+ Modify values for prod environment +
+
+
-
-
-
- - - - +
+ + +
From 4d0301f465003416a9317a3812569629f216eed5 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 5 Mar 2021 10:42:51 +0000 Subject: [PATCH 11/39] [UPD] Update server_environment_data_encryption.pot --- .../server_environment_data_encryption.pot | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot index 0acf17bc5..ecde6385b 100644 --- a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot +++ b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * server_environment_data_encryption +# * server_environment_data_encryption # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -14,25 +14,40 @@ msgstr "" "Plural-Forms: \n" #. module: server_environment_data_encryption -#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:74 +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Define values for " msgstr "" +#. module: server_environment_data_encryption +#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__display_name +msgid "Display Name" +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__id +msgid "ID" +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin____last_update +msgid "Last Modified on" +msgstr "" + #. module: server_environment_data_encryption #: model:ir.model,name:server_environment_data_encryption.model_server_env_mixin msgid "Mixin to add server environment in existing models" msgstr "" #. module: server_environment_data_encryption -#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:86 +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Modify values for {} environment" msgstr "" #. module: server_environment_data_encryption -#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:137 +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format -msgid "you need to define the running_env entry in your odoo configuration file" +msgid "" +"you need to define the running_env entry in your odoo configuration file" msgstr "" - From 7eda2f67a35f8fb03dc339f2d972aab1cf3c6e45 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 5 Mar 2021 10:47:35 +0000 Subject: [PATCH 12/39] [UPD] README.rst --- server_environment_data_encryption/README.rst | 15 +++++++-------- .../static/description/index.html | 6 +++--- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/server_environment_data_encryption/README.rst b/server_environment_data_encryption/README.rst index 7b64980bc..4a3f96297 100644 --- a/server_environment_data_encryption/README.rst +++ b/server_environment_data_encryption/README.rst @@ -14,13 +14,13 @@ Server Environment Data Encryption :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--env-lightgray.png?logo=github - :target: https://github.com/OCA/server-env/tree/12.0/server_environment_data_encryption + :target: https://github.com/OCA/server-env/tree/14.0/server_environment_data_encryption :alt: OCA/server-env .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-env-12-0/server-env-12-0-server_environment_data_encryption + :target: https://translation.odoo-community.org/projects/server-env-14-0/server-env-14-0-server_environment_data_encryption :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/254/12.0 + :target: https://runbot.odoo-community.org/runbot/254/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -46,9 +46,9 @@ Configuration ============= In order to use this module properly, each environment should have their own encryption key -and the production environment should have the keys of all environments. +and the production environment should have the keys of all environments. -Example : +Example : Development environment :: [options] @@ -69,14 +69,13 @@ Production environment :: encryption_key_preprod=YYY encryption_key_prod=ZZZ - 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. @@ -108,6 +107,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-env `_ project on GitHub. +This module is part of the `OCA/server-env `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/server_environment_data_encryption/static/description/index.html b/server_environment_data_encryption/static/description/index.html index 5bd6658eb..bd00ca030 100644 --- a/server_environment_data_encryption/static/description/index.html +++ b/server_environment_data_encryption/static/description/index.html @@ -367,7 +367,7 @@

Server Environment Data Encryption

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Alpha License: AGPL-3 OCA/server-env Translate me on Weblate Try me on Runbot

+

Alpha License: AGPL-3 OCA/server-env Translate me on Weblate Try me on Runbot

This module changes a little the behavior of server_environment modules. When Odoo does not find the value of the field in the configuration file, it will fallback on a Odoo encrypted field instead. @@ -424,7 +424,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.

@@ -450,7 +450,7 @@

Maintainers

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

+

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

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

From 6047388e6b9602ec754f41d8b7ceb7826f37fc44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Alix?= Date: Mon, 31 Jan 2022 10:09:04 +0100 Subject: [PATCH 13/39] [FIX] s_env_data_encryption: fix access right issues when using actions --- server_environment_data_encryption/models/server_env_mixin.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index c008577d8..e4d8a047e 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -56,7 +56,9 @@ def action_change_env_data_encrypted_fields(self): # We don't know which action we are using... take default one action = self.get_formview_action() else: - action = self.env["ir.actions.act_window"].browse(action_id).read()[0] + action = ( + self.env["ir.actions.act_window"].browse(action_id).sudo().read()[0] + ) action["view_mode"] = "form" action["res_id"] = self.id views_form = [] From a5c91098dc145f0f775d74135604f95343dbd807 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 2 Feb 2022 07:07:52 +0000 Subject: [PATCH 14/39] server_environment_data_encryption 14.0.1.0.1 --- server_environment_data_encryption/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_environment_data_encryption/__manifest__.py b/server_environment_data_encryption/__manifest__.py index c7e8e2258..c7c4e6e87 100644 --- a/server_environment_data_encryption/__manifest__.py +++ b/server_environment_data_encryption/__manifest__.py @@ -1,7 +1,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Server Environment Data Encryption", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "development_status": "Alpha", "category": "Tools", "website": "https://github.com/OCA/server-env", From 11bc541c821fc8f987624c5811351edd094d1d99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dept=2E=20T=C3=A9cnico?= Date: Wed, 16 Feb 2022 11:45:52 +0000 Subject: [PATCH 15/39] Added translation using Weblate (Catalan) --- server_environment_data_encryption/i18n/ca.po | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 server_environment_data_encryption/i18n/ca.po diff --git a/server_environment_data_encryption/i18n/ca.po b/server_environment_data_encryption/i18n/ca.po new file mode 100644 index 000000000..51ccb980f --- /dev/null +++ b/server_environment_data_encryption/i18n/ca.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_environment_data_encryption +# +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" + +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "Define values for " +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__display_name +msgid "Display Name" +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__id +msgid "ID" +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin____last_update +msgid "Last Modified on" +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model,name:server_environment_data_encryption.model_server_env_mixin +msgid "Mixin to add server environment in existing models" +msgstr "" + +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "Modify values for {} environment" +msgstr "" + +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "" +"you need to define the running_env entry in your odoo configuration file" +msgstr "" From 60b6362b13198b0a77a9dc389fbd554b82bc9d84 Mon Sep 17 00:00:00 2001 From: oca-git-bot Date: Thu, 31 Mar 2022 17:38:31 +0200 Subject: [PATCH 16/39] [IMP] update dotfiles [ci skip] --- server_environment_data_encryption/models/server_env_mixin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index e4d8a047e..477e3cb16 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -16,7 +16,7 @@ class ServerEnvMixin(models.AbstractModel): _inherit = "server.env.mixin" def _compute_server_env_from_default(self, field_name, options): - """ First return database encrypted value then default value """ + """First return database encrypted value then default value""" self.ensure_one() encrypted_data_name = "{},{}".format(self._name, self.id) env = self.env.context.get("environment", None) From 2ce313ab180cbcd10dc284d9a5bee49ed94f910b Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Tue, 10 May 2022 10:23:53 +0200 Subject: [PATCH 17/39] s_environment_data_encryption: no error when config is missing Fallback to normal server env behavior and log a warning. --- .../models/server_env_mixin.py | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index 477e3cb16..11ada9f5a 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -15,11 +15,29 @@ class ServerEnvMixin(models.AbstractModel): _inherit = "server.env.mixin" + def _current_env_encrypted_key_exists(self): + env = self.env["encrypted.data"]._retrieve_env() + key_name = "encryption_key_%s" % env + key_str = config.get(key_name) + key_exists = key_str and True or False + if not key_exists: + logging.warning( + "The minimal configuration is missing. You need at least to add an " + "encryption key for the current environment : %s. While the " + "configuration is missing, the module has no effect", + env, + ) + return key_exists + def _compute_server_env_from_default(self, field_name, options): """First return database encrypted value then default value""" - self.ensure_one() + # in case of bad configuration (no encryption key for current env) the module + # is useless, we do fallback directly on serven_environement behavior + if not self._current_env_encrypted_key_exists(): + return super()._compute_server_env_from_default(field_name, options) encrypted_data_name = "{},{}".format(self._name, self.id) env = self.env.context.get("environment", None) + vals = ( self.env["encrypted.data"] .sudo() @@ -35,6 +53,10 @@ def _inverse_server_env(self, field_name): When this module is installed, we store values into encrypted data env instead of a default field in database (not env dependent). """ + # in case of bad configuration (no encryption key for current env) the module + # is useless, we do fallback directly on serven_environement behavior + if not self._current_env_encrypted_key_exists(): + return super()._inverse_server_env(field_name) is_editable_field = self._server_env_is_editable_fieldname(field_name) encrypted_data_obj = self.env["encrypted.data"].sudo() env = self.env.context.get("environment", None) @@ -69,6 +91,26 @@ def action_change_env_data_encrypted_fields(self): return action def _get_extra_environment_info_div(self, current_env, extra_envs): + # if the module configuration is missing (no current env encryption key) + # display a warning instead as the module has no effect. + if not self._current_env_encrypted_key_exists(): + button_div = "
" + warning_string = _( + "The encryption key for current environement is not defined" + ) + elem = etree.fromstring( + """ +
+
+ {} +
+
+ """.format( + "alert-danger", warning_string + ) + ) + return elem + # TODO we could use a qweb template here button_div = "
" button_string = _("Define values for ") From 9ed5a2094bfd6635e76738857753eae9d1f8eeab Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 10 May 2022 08:29:58 +0000 Subject: [PATCH 18/39] [UPD] Update server_environment_data_encryption.pot --- .../i18n/server_environment_data_encryption.pot | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot index ecde6385b..b53f2f0e7 100644 --- a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot +++ b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot @@ -45,6 +45,12 @@ msgstr "" msgid "Modify values for {} environment" msgstr "" +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "The encryption key for current environement is not defined" +msgstr "" + #. module: server_environment_data_encryption #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format From 19a2a3aadd11e53a1930b1f842845cd0802f2ff5 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 10 May 2022 08:33:17 +0000 Subject: [PATCH 19/39] server_environment_data_encryption 14.0.1.0.2 --- server_environment_data_encryption/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_environment_data_encryption/__manifest__.py b/server_environment_data_encryption/__manifest__.py index c7c4e6e87..065e3fc73 100644 --- a/server_environment_data_encryption/__manifest__.py +++ b/server_environment_data_encryption/__manifest__.py @@ -1,7 +1,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Server Environment Data Encryption", - "version": "14.0.1.0.1", + "version": "14.0.1.0.2", "development_status": "Alpha", "category": "Tools", "website": "https://github.com/OCA/server-env", From e13c667510587e5f686418bd771293ea8f895968 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Tue, 10 May 2022 08:33:26 +0000 Subject: [PATCH 20/39] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: server-env-14.0/server-env-14.0-server_environment_data_encryption Translate-URL: https://translation.odoo-community.org/projects/server-env-14-0/server-env-14-0-server_environment_data_encryption/ --- server_environment_data_encryption/i18n/ca.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server_environment_data_encryption/i18n/ca.po b/server_environment_data_encryption/i18n/ca.po index 51ccb980f..a9a2ce910 100644 --- a/server_environment_data_encryption/i18n/ca.po +++ b/server_environment_data_encryption/i18n/ca.po @@ -46,6 +46,12 @@ msgstr "" msgid "Modify values for {} environment" msgstr "" +#. module: server_environment_data_encryption +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "The encryption key for current environement is not defined" +msgstr "" + #. module: server_environment_data_encryption #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format From b1293494ca39049ee31939669e6b072fceee5263 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Sun, 9 Oct 2022 16:58:01 +0200 Subject: [PATCH 21/39] [IMP] server_environment_data_encryption: black, isort, prettier --- .../tests/fixtures/res1.xml | 36 ++++++++++++++---- .../tests/fixtures/res2.xml | 37 +++++++++++++++---- 2 files changed, 59 insertions(+), 14 deletions(-) diff --git a/server_environment_data_encryption/tests/fixtures/res1.xml b/server_environment_data_encryption/tests/fixtures/res1.xml index 7ca515a86..0248d10e1 100644 --- a/server_environment_data_encryption/tests/fixtures/res1.xml +++ b/server_environment_data_encryption/tests/fixtures/res1.xml @@ -1,6 +1,11 @@
-
@@ -8,14 +13,31 @@ Modify values for test environment
-
- - - + + + diff --git a/server_environment_data_encryption/tests/fixtures/res2.xml b/server_environment_data_encryption/tests/fixtures/res2.xml index 032e10881..d49648f29 100644 --- a/server_environment_data_encryption/tests/fixtures/res2.xml +++ b/server_environment_data_encryption/tests/fixtures/res2.xml @@ -1,6 +1,11 @@
-
@@ -8,14 +13,32 @@ Modify values for prod environment
-
- - - + + + From 034b76a86515cf4d855049dc2dc0bc3a2e46cdb8 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Sun, 9 Oct 2022 17:02:14 +0200 Subject: [PATCH 22/39] [16][MIG] Migration of server_environment_data_encryption --- .../__manifest__.py | 2 +- .../models/server_env_mixin.py | 24 +++++++++---------- .../test_server_environment_data_encrypt.py | 22 +++++++++++++---- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/server_environment_data_encryption/__manifest__.py b/server_environment_data_encryption/__manifest__.py index 065e3fc73..97755ce0f 100644 --- a/server_environment_data_encryption/__manifest__.py +++ b/server_environment_data_encryption/__manifest__.py @@ -1,7 +1,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Server Environment Data Encryption", - "version": "14.0.1.0.2", + "version": "16.0.1.0.0", "development_status": "Alpha", "category": "Tools", "website": "https://github.com/OCA/server-env", diff --git a/server_environment_data_encryption/models/server_env_mixin.py b/server_environment_data_encryption/models/server_env_mixin.py index 11ada9f5a..7cde5ffac 100644 --- a/server_environment_data_encryption/models/server_env_mixin.py +++ b/server_environment_data_encryption/models/server_env_mixin.py @@ -175,29 +175,27 @@ def _update_form_view_from_env(self, arch, view_type): "configuration file" ) ) - doc = etree.XML(arch) - node = doc.xpath("//sheet") + node = arch.xpath("//sheet") if node: node = node[0] elem = self._get_extra_environment_info_div(current_env, other_environments) node.insert(0, elem) if current_env != config.get("running_env"): - self._set_readonly_form_view(doc) - arch = etree.tostring(doc, pretty_print=True, encoding="unicode") + self._set_readonly_form_view(arch) else: _logger.error("Missing sheet for form view on object {}".format(self._name)) return arch @api.model - def fields_view_get( - self, view_id=None, view_type="form", toolbar=False, submenu=False - ): - res = super().fields_view_get( - view_id=view_id, - view_type=view_type, - toolbar=toolbar, - submenu=submenu, + def _get_view(self, view_id=None, view_type="form", **options): + arch, view = super()._get_view(view_id=view_id, view_type=view_type, **options) + arch = self._update_form_view_from_env(arch, view_type) + return arch, view + + def _get_view_cache_key(self, view_id=None, view_type="form", **options): + res = super()._get_view_cache_key( + view_id=view_id, view_type=view_type, **options ) - res["arch"] = self._update_form_view_from_env(res["arch"], view_type) + res += (self.env.context.get("environment", False),) return res diff --git a/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py b/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py index d415f70eb..6a105497c 100644 --- a/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py +++ b/server_environment_data_encryption/tests/test_server_environment_data_encrypt.py @@ -2,6 +2,8 @@ from pathlib import Path +from lxml import etree + from odoo.addons.data_encryption.tests.common import CommonDataEncrypted @@ -12,11 +14,17 @@ def test_dynamic_view_current_env(self): self.set_new_key_env("preprod") mixin_obj = self.env["server.env.mixin"] base_path = Path(__file__).parent / "fixtures" / "base.xml" - xml = base_path.read_text() + xml_str = base_path.read_text() + xml = etree.XML(xml_str) res_xml = mixin_obj._update_form_view_from_env(xml, "form") expected_xml_path = Path(__file__).parent / "fixtures" / "res1.xml" expected_xml = expected_xml_path.read_text() - self.assertEqual(res_xml, expected_xml) + # convert both to xml with parser removing space then convert to string to + # compare + parser = etree.XMLParser(remove_blank_text=True) + res_xml_str = etree.tostring(etree.XML(etree.tostring(res_xml), parser=parser)) + expected_xml_str = etree.tostring(etree.XML(expected_xml, parser=parser)) + self.assertEqual(res_xml_str, expected_xml_str) def test_dynamic_view_other_env(self): self.maxDiff = None @@ -24,10 +32,16 @@ def test_dynamic_view_other_env(self): self.set_new_key_env("preprod") mixin_obj = self.env["server.env.mixin"] base_path = Path(__file__).parent / "fixtures" / "base.xml" - xml = base_path.read_text() + xml_str = base_path.read_text() + xml = etree.XML(xml_str) res_xml = mixin_obj.with_context(environment="prod")._update_form_view_from_env( xml, "form" ) expected_xml_path = Path(__file__).parent / "fixtures" / "res2.xml" expected_xml = expected_xml_path.read_text() - self.assertEqual(res_xml, expected_xml) + # convert both to xml with parser removing space then convert to string to + # compare + parser = etree.XMLParser(remove_blank_text=True) + res_xml_str = etree.tostring(etree.XML(etree.tostring(res_xml), parser=parser)) + expected_xml_str = etree.tostring(etree.XML(expected_xml, parser=parser)) + self.assertEqual(res_xml_str, expected_xml_str) From e52c927deb917ac75147de85444cc4c92bb5c11c Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 25 Oct 2022 15:26:02 +0000 Subject: [PATCH 23/39] [UPD] Update server_environment_data_encryption.pot --- .../i18n/server_environment_data_encryption.pot | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot index b53f2f0e7..ab7579785 100644 --- a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot +++ b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -19,21 +19,6 @@ msgstr "" msgid "Define values for " msgstr "" -#. module: server_environment_data_encryption -#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__display_name -msgid "Display Name" -msgstr "" - -#. module: server_environment_data_encryption -#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__id -msgid "ID" -msgstr "" - -#. module: server_environment_data_encryption -#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin____last_update -msgid "Last Modified on" -msgstr "" - #. module: server_environment_data_encryption #: model:ir.model,name:server_environment_data_encryption.model_server_env_mixin msgid "Mixin to add server environment in existing models" From 0b04347bb972d2a16b9b7e3c280e56077046d2bb Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 25 Oct 2022 15:27:56 +0000 Subject: [PATCH 24/39] [UPD] README.rst --- server_environment_data_encryption/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server_environment_data_encryption/README.rst b/server_environment_data_encryption/README.rst index 4a3f96297..5e7c751ab 100644 --- a/server_environment_data_encryption/README.rst +++ b/server_environment_data_encryption/README.rst @@ -14,13 +14,13 @@ Server Environment Data Encryption :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--env-lightgray.png?logo=github - :target: https://github.com/OCA/server-env/tree/14.0/server_environment_data_encryption + :target: https://github.com/OCA/server-env/tree/16.0/server_environment_data_encryption :alt: OCA/server-env .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-env-14-0/server-env-14-0-server_environment_data_encryption + :target: https://translation.odoo-community.org/projects/server-env-16-0/server-env-16-0-server_environment_data_encryption :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/254/14.0 + :target: https://runbot.odoo-community.org/runbot/254/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -75,7 +75,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. @@ -107,6 +107,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-env `_ project on GitHub. +This module is part of the `OCA/server-env `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/server_environment_data_encryption/static/description/index.html b/server_environment_data_encryption/static/description/index.html index bd00ca030..41c85b2a7 100644 --- a/server_environment_data_encryption/static/description/index.html +++ b/server_environment_data_encryption/static/description/index.html @@ -367,7 +367,7 @@

Server Environment Data Encryption

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Alpha License: AGPL-3 OCA/server-env Translate me on Weblate Try me on Runbot

+

Alpha License: AGPL-3 OCA/server-env Translate me on Weblate Try me on Runbot

This module changes a little the behavior of server_environment modules. When Odoo does not find the value of the field in the configuration file, it will fallback on a Odoo encrypted field instead. @@ -424,7 +424,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.

@@ -450,7 +450,7 @@

Maintainers

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

+

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

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

From a86fe3ea77c68f4d1bf9fe73830a7aa05ca3689d Mon Sep 17 00:00:00 2001 From: Weblate Date: Tue, 25 Oct 2022 19:15:09 +0000 Subject: [PATCH 25/39] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: server-env-16.0/server-env-16.0-server_environment_data_encryption Translate-URL: https://translation.odoo-community.org/projects/server-env-16-0/server-env-16-0-server_environment_data_encryption/ --- server_environment_data_encryption/i18n/ca.po | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/server_environment_data_encryption/i18n/ca.po b/server_environment_data_encryption/i18n/ca.po index a9a2ce910..6cecbd8ca 100644 --- a/server_environment_data_encryption/i18n/ca.po +++ b/server_environment_data_encryption/i18n/ca.po @@ -20,21 +20,6 @@ msgstr "" msgid "Define values for " msgstr "" -#. module: server_environment_data_encryption -#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__display_name -msgid "Display Name" -msgstr "" - -#. module: server_environment_data_encryption -#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin__id -msgid "ID" -msgstr "" - -#. module: server_environment_data_encryption -#: model:ir.model.fields,field_description:server_environment_data_encryption.field_server_env_mixin____last_update -msgid "Last Modified on" -msgstr "" - #. module: server_environment_data_encryption #: model:ir.model,name:server_environment_data_encryption.model_server_env_mixin msgid "Mixin to add server environment in existing models" From 7e55794576ff00130349b04b6909d050d1453274 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 25 Nov 2022 11:50:16 +0000 Subject: [PATCH 26/39] [UPD] Update server_environment_data_encryption.pot --- .../i18n/server_environment_data_encryption.pot | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot index ab7579785..51c3b57ff 100644 --- a/server_environment_data_encryption/i18n/server_environment_data_encryption.pot +++ b/server_environment_data_encryption/i18n/server_environment_data_encryption.pot @@ -14,6 +14,7 @@ msgstr "" "Plural-Forms: \n" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Define values for " @@ -25,18 +26,21 @@ msgid "Mixin to add server environment in existing models" msgstr "" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Modify values for {} environment" msgstr "" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "The encryption key for current environement is not defined" msgstr "" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "" From f82b36f348f4f68a2b4ab28487df9d1688a25086 Mon Sep 17 00:00:00 2001 From: Weblate Date: Fri, 25 Nov 2022 11:50:24 +0000 Subject: [PATCH 27/39] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: server-env-16.0/server-env-16.0-server_environment_data_encryption Translate-URL: https://translation.odoo-community.org/projects/server-env-16-0/server-env-16-0-server_environment_data_encryption/ --- server_environment_data_encryption/i18n/ca.po | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server_environment_data_encryption/i18n/ca.po b/server_environment_data_encryption/i18n/ca.po index 6cecbd8ca..dd74eadef 100644 --- a/server_environment_data_encryption/i18n/ca.po +++ b/server_environment_data_encryption/i18n/ca.po @@ -15,6 +15,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Define values for " @@ -26,18 +27,21 @@ msgid "Mixin to add server environment in existing models" msgstr "" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Modify values for {} environment" msgstr "" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "The encryption key for current environement is not defined" msgstr "" #. module: server_environment_data_encryption +#. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "" From 85e788482143d7d5033cddff4feb3e9129c8601f Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Tue, 25 Jul 2023 11:49:11 +0000 Subject: [PATCH 28/39] Added translation using Weblate (Spanish) --- server_environment_data_encryption/i18n/es.po | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 server_environment_data_encryption/i18n/es.po diff --git a/server_environment_data_encryption/i18n/es.po b/server_environment_data_encryption/i18n/es.po new file mode 100644 index 000000000..4d08c1f49 --- /dev/null +++ b/server_environment_data_encryption/i18n/es.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_environment_data_encryption +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\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: server_environment_data_encryption +#. odoo-python +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "Define values for " +msgstr "" + +#. module: server_environment_data_encryption +#: model:ir.model,name:server_environment_data_encryption.model_server_env_mixin +msgid "Mixin to add server environment in existing models" +msgstr "" + +#. module: server_environment_data_encryption +#. odoo-python +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "Modify values for {} environment" +msgstr "" + +#. module: server_environment_data_encryption +#. odoo-python +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "The encryption key for current environement is not defined" +msgstr "" + +#. module: server_environment_data_encryption +#. odoo-python +#: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 +#, python-format +msgid "" +"you need to define the running_env entry in your odoo configuration file" +msgstr "" From b05ad060c37264c670fdbf7e26d3a5ef523b315c Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Tue, 25 Jul 2023 11:50:20 +0000 Subject: [PATCH 29/39] Translated using Weblate (Spanish) Currently translated at 100.0% (5 of 5 strings) Translation: server-env-16.0/server-env-16.0-server_environment_data_encryption Translate-URL: https://translation.odoo-community.org/projects/server-env-16-0/server-env-16-0-server_environment_data_encryption/es/ --- server_environment_data_encryption/i18n/es.po | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server_environment_data_encryption/i18n/es.po b/server_environment_data_encryption/i18n/es.po index 4d08c1f49..4869999e3 100644 --- a/server_environment_data_encryption/i18n/es.po +++ b/server_environment_data_encryption/i18n/es.po @@ -6,39 +6,41 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2023-07-25 13:10+0000\n" +"Last-Translator: Ivorra78 \n" "Language-Team: none\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" +"X-Generator: Weblate 4.17\n" #. module: server_environment_data_encryption #. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Define values for " -msgstr "" +msgstr "Definir valores para " #. module: server_environment_data_encryption #: model:ir.model,name:server_environment_data_encryption.model_server_env_mixin msgid "Mixin to add server environment in existing models" -msgstr "" +msgstr "Combinación para añadir entorno de servidor en modelos existentes" #. module: server_environment_data_encryption #. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "Modify values for {} environment" -msgstr "" +msgstr "Modificar los valores del entorno {}" #. module: server_environment_data_encryption #. odoo-python #: code:addons/server_environment_data_encryption/models/server_env_mixin.py:0 #, python-format msgid "The encryption key for current environement is not defined" -msgstr "" +msgstr "La clave de encriptación para el entorno actual no está definida" #. module: server_environment_data_encryption #. odoo-python @@ -47,3 +49,5 @@ msgstr "" msgid "" "you need to define the running_env entry in your odoo configuration file" msgstr "" +"necesitas definir la entrada running_env en tu archivo de configuración de " +"odoo" From 72ca6478222fde5a82c727081f30258d2621778e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 16:39:14 +0000 Subject: [PATCH 30/39] [UPD] README.rst --- server_environment_data_encryption/README.rst | 15 +++++--- .../static/description/index.html | 38 ++++++++++--------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/server_environment_data_encryption/README.rst b/server_environment_data_encryption/README.rst index 5e7c751ab..cf8843f9f 100644 --- a/server_environment_data_encryption/README.rst +++ b/server_environment_data_encryption/README.rst @@ -2,10 +2,13 @@ Server Environment Data Encryption ================================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:8b7167f4311edd86055de2f0601f9348263e6b72366abeb835d57f71491b6e33 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Server Environment Data Encryption .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/server-env-16-0/server-env-16-0-server_environment_data_encryption :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/254/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-env&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module changes a little the behavior of server_environment modules. When Odoo does not find the value of the field in the configuration file, @@ -74,7 +77,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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/server_environment_data_encryption/static/description/index.html b/server_environment_data_encryption/static/description/index.html index 41c85b2a7..d8e4c6c10 100644 --- a/server_environment_data_encryption/static/description/index.html +++ b/server_environment_data_encryption/static/description/index.html @@ -1,20 +1,20 @@ - + - + Server Environment Data Encryption