diff --git a/pingen_env/README.rst b/pingen_env/README.rst new file mode 100644 index 00000000000..4c8e086a8ba --- /dev/null +++ b/pingen_env/README.rst @@ -0,0 +1,117 @@ +============================= +pingen.com server environment +============================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:49d465a77c45bf9d8d90ba8fd221660c5f57175a611e4099607374c3e79dd844 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freport--print--send-lightgray.png?logo=github + :target: https://github.com/OCA/report-print-send/tree/16.0/pingen_env + :alt: OCA/report-print-send +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/report-print-send-16-0/report-print-send-16-0-pingen_env + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/report-print-send&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Helps to manage Pingen settings via server environment variables. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +Pingen API data like authentication token, client ID, organization ID and webhook secret is configured +on the company's view through server environment. + +Usage +===== + +Define values under global section name called 'pingen', or in case of different config per company - global section name connected with company name: + + +[pingen.companyA] +pingen_clientid = ***************** +pingen_organization = ********-****-****-*****-******* +pingen_staging = + +or: + +[pingen.companyA] +pingen_clientid = ***************** +pingen_organization = ********-****-****-*****-******* +pingen_staging = + +[pingen.companyB] +pingen_clientid = ***************** +pingen_organization = ********-****-****-*****-******* +pingen_staging = + + + + + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Camptocamp + +Contributors +~~~~~~~~~~~~ + +* Anna Janiszewska + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-ajaniszewska-dev| image:: https://github.com/ajaniszewska-dev.png?size=40px + :target: https://github.com/ajaniszewska-dev + :alt: ajaniszewska-dev + +Current `maintainer `__: + +|maintainer-ajaniszewska-dev| + +This module is part of the `OCA/report-print-send `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/pingen_env/__init__.py b/pingen_env/__init__.py new file mode 100644 index 00000000000..8ede832861e --- /dev/null +++ b/pingen_env/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from . import models diff --git a/pingen_env/__manifest__.py b/pingen_env/__manifest__.py new file mode 100644 index 00000000000..93447b7f039 --- /dev/null +++ b/pingen_env/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +{ + "name": "pingen.com server environment", + "version": "16.0.1.0.0", + "author": "Camptocamp,Odoo Community Association (OCA)", + "maintainers": ["ajaniszewska-dev"], + "license": "AGPL-3", + "category": "Reporting", + "complexity": "easy", + "depends": ["pingen", "server_environment"], + "website": "https://github.com/OCA/report-print-send", + "installable": True, + "auto_install": False, + "application": False, +} diff --git a/pingen_env/models/__init__.py b/pingen_env/models/__init__.py new file mode 100644 index 00000000000..68cffd9b127 --- /dev/null +++ b/pingen_env/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from . import res_company diff --git a/pingen_env/models/res_company.py b/pingen_env/models/res_company.py new file mode 100644 index 00000000000..07d72d34430 --- /dev/null +++ b/pingen_env/models/res_company.py @@ -0,0 +1,45 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo import api, fields, models + +from odoo.addons.server_environment import serv_config + + +class ResCompany(models.Model): + _inherit = ["res.company"] + + pingen_clientid = fields.Char( + compute="_compute_pingen_env", required=False, readonly=True + ) + pingen_client_secretid = fields.Char( + compute="_compute_pingen_env", required=False, readonly=True + ) + pingen_organization = fields.Char( + compute="_compute_pingen_env", required=False, readonly=True + ) + pingen_staging = fields.Boolean( + compute="_compute_pingen_env", required=False, readonly=True + ) + pingen_webhook_secret = fields.Char( + compute="_compute_pingen_env", required=False, readonly=True + ) + + @api.depends() + def _compute_pingen_env(self): + global_section_name = "pingen" + for company in self: + # default vals + config_vals = { + "pingen_clientid": "", + "pingen_client_secretid": "", + "pingen_organization": "", + "pingen_staging": True, + "pingen_webhook_secret": "", + } + if serv_config.has_section(global_section_name): + config_vals.update(serv_config.items(global_section_name)) + custom_section_name = global_section_name + "." + company.name + if serv_config.has_section(custom_section_name): + config_vals.update(serv_config.items(custom_section_name)) + company.update(config_vals) diff --git a/pingen_env/readme/CONFIGURE.rst b/pingen_env/readme/CONFIGURE.rst new file mode 100644 index 00000000000..f30b2cd230d --- /dev/null +++ b/pingen_env/readme/CONFIGURE.rst @@ -0,0 +1,2 @@ +Pingen API data like authentication token, client ID, organization ID and webhook secret is configured +on the company's view through server environment. \ No newline at end of file diff --git a/pingen_env/readme/CONTRIBUTORS.rst b/pingen_env/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..4124e67fb5c --- /dev/null +++ b/pingen_env/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Anna Janiszewska diff --git a/pingen_env/readme/DESCRIPTION.rst b/pingen_env/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..94cd8d68c74 --- /dev/null +++ b/pingen_env/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Helps to manage Pingen settings via server environment variables. \ No newline at end of file diff --git a/pingen_env/readme/USAGE.rst b/pingen_env/readme/USAGE.rst new file mode 100644 index 00000000000..f6763a818f0 --- /dev/null +++ b/pingen_env/readme/USAGE.rst @@ -0,0 +1,23 @@ +Define values under global section name called 'pingen', or in case of different config per company - global section name connected with company name: + + +[pingen.companyA] +pingen_clientid = ***************** +pingen_organization = ********-****-****-*****-******* +pingen_staging = + +or: + +[pingen.companyA] +pingen_clientid = ***************** +pingen_organization = ********-****-****-*****-******* +pingen_staging = + +[pingen.companyB] +pingen_clientid = ***************** +pingen_organization = ********-****-****-*****-******* +pingen_staging = + + + + diff --git a/setup/pingen_env/odoo/addons/pingen_env b/setup/pingen_env/odoo/addons/pingen_env new file mode 120000 index 00000000000..1bcd06e2c9e --- /dev/null +++ b/setup/pingen_env/odoo/addons/pingen_env @@ -0,0 +1 @@ +../../../../pingen_env \ No newline at end of file diff --git a/setup/pingen_env/setup.py b/setup/pingen_env/setup.py new file mode 100644 index 00000000000..28c57bb6403 --- /dev/null +++ b/setup/pingen_env/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)