From 474d86c18f92bc0a23accd2077145b54648d33f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A0n=20Todorovich?= Date: Thu, 17 Mar 2022 12:54:58 -0300 Subject: [PATCH] [ADD] mail_environment_google_gmail --- mail_environment_google_gmail/README.rst | 1 + mail_environment_google_gmail/__init__.py | 1 + mail_environment_google_gmail/__manifest__.py | 19 +++++++++++++ .../models/__init__.py | 1 + .../models/ir_mail_server.py | 20 +++++++++++++ .../readme/CONFIGURE.rst | 28 +++++++++++++++++++ .../readme/CONTRIBUTORS.rst | 3 ++ .../readme/DESCRIPTION.rst | 1 + .../odoo/addons/mail_environment_google_gmail | 1 + setup/mail_environment_google_gmail/setup.py | 6 ++++ 10 files changed, 81 insertions(+) create mode 100644 mail_environment_google_gmail/README.rst create mode 100644 mail_environment_google_gmail/__init__.py create mode 100644 mail_environment_google_gmail/__manifest__.py create mode 100644 mail_environment_google_gmail/models/__init__.py create mode 100644 mail_environment_google_gmail/models/ir_mail_server.py create mode 100644 mail_environment_google_gmail/readme/CONFIGURE.rst create mode 100644 mail_environment_google_gmail/readme/CONTRIBUTORS.rst create mode 100644 mail_environment_google_gmail/readme/DESCRIPTION.rst create mode 120000 setup/mail_environment_google_gmail/odoo/addons/mail_environment_google_gmail create mode 100644 setup/mail_environment_google_gmail/setup.py diff --git a/mail_environment_google_gmail/README.rst b/mail_environment_google_gmail/README.rst new file mode 100644 index 0000000..f86ee85 --- /dev/null +++ b/mail_environment_google_gmail/README.rst @@ -0,0 +1 @@ +TO BE GENERATED diff --git a/mail_environment_google_gmail/__init__.py b/mail_environment_google_gmail/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/mail_environment_google_gmail/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mail_environment_google_gmail/__manifest__.py b/mail_environment_google_gmail/__manifest__.py new file mode 100644 index 0000000..a4d072b --- /dev/null +++ b/mail_environment_google_gmail/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2022 Camptocamp SA (https://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Mail configuration with server_environment for Google Gmail", + "summary": "Configure Gmail mail servers with server_environment_files", + "version": "15.0.1.0.0", + "author": "Camptocamp, Odoo Community Association (OCA)", + "maintainers": ["ivantodorovich"], + "website": "https://github.com/OCA/server-env", + "license": "AGPL-3", + "category": "Tools", + "depends": [ + "google_gmail", + "server_environment", + "server_environment_ir_config_parameter", + ], +} diff --git a/mail_environment_google_gmail/models/__init__.py b/mail_environment_google_gmail/models/__init__.py new file mode 100644 index 0000000..abbcb50 --- /dev/null +++ b/mail_environment_google_gmail/models/__init__.py @@ -0,0 +1 @@ +from . import ir_mail_server diff --git a/mail_environment_google_gmail/models/ir_mail_server.py b/mail_environment_google_gmail/models/ir_mail_server.py new file mode 100644 index 0000000..d896fbb --- /dev/null +++ b/mail_environment_google_gmail/models/ir_mail_server.py @@ -0,0 +1,20 @@ +# Copyright 2022 Camptocamp SA (https://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class IrMailServer(models.Model): + _inherit = "ir.mail_server" + + @property + def _server_env_fields(self): + base_fields = super()._server_env_fields + gmail_fields = { + "use_google_gmail_service": {}, + "google_gmail_authorization_code": {}, + "google_gmail_refresh_token": {}, + } + gmail_fields.update(base_fields) + return gmail_fields diff --git a/mail_environment_google_gmail/readme/CONFIGURE.rst b/mail_environment_google_gmail/readme/CONFIGURE.rst new file mode 100644 index 0000000..5c681be --- /dev/null +++ b/mail_environment_google_gmail/readme/CONFIGURE.rst @@ -0,0 +1,28 @@ +Example of config file :: + + [ir.config_parameter] + google_gmail_client_id = YOUR_GMAIL_API_CLIENT_ID + google_gmail_client_secret = YOUR_GMAIL_API_CLIENT_SECRET + + [outgoing_mail.gmail_smtp_server] + smtp_host = smtp.gmail.com + smtp_port = 587 + smtp_user = example@gmail.com + smtp_encryption = starttls + use_google_gmail_service = True + google_gmail_authorization_code = YOUR_ACCOUNT_AUTH_CODE + google_gmail_refresh_token = YOUR_REFRESH_TOKEN + + + +These two are global parameters, in core they're configured in General Settings: + +* `YOUR_GMAIL_API_CLIENT_ID`: The client ID of your Google API project. +* `YOUR_GMAIL_API_CLIENT_SECRET`: The client secret of your Google API project. + +These two are account-specific parameters: + +* `YOUR_ACCOUNT_AUTH_CODE`: In core, there's a button that opens an URL to generate it. +* `YOUR_REFRESH_TOKEN`: In core, it's generated automatically when the + `google_gmail_authorization_code` is written. It's not shown on the form, but I recommend + having Odoo generate it and extract it from there, before setting up the server-env. diff --git a/mail_environment_google_gmail/readme/CONTRIBUTORS.rst b/mail_environment_google_gmail/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..59b447f --- /dev/null +++ b/mail_environment_google_gmail/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Camptocamp `_ + + * Iván Todorovich diff --git a/mail_environment_google_gmail/readme/DESCRIPTION.rst b/mail_environment_google_gmail/readme/DESCRIPTION.rst new file mode 100644 index 0000000..88af45a --- /dev/null +++ b/mail_environment_google_gmail/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module allows to configure Gmail outgoing servers with server-env. diff --git a/setup/mail_environment_google_gmail/odoo/addons/mail_environment_google_gmail b/setup/mail_environment_google_gmail/odoo/addons/mail_environment_google_gmail new file mode 120000 index 0000000..2ee45f7 --- /dev/null +++ b/setup/mail_environment_google_gmail/odoo/addons/mail_environment_google_gmail @@ -0,0 +1 @@ +../../../../mail_environment_google_gmail \ No newline at end of file diff --git a/setup/mail_environment_google_gmail/setup.py b/setup/mail_environment_google_gmail/setup.py new file mode 100644 index 0000000..28c57bb --- /dev/null +++ b/setup/mail_environment_google_gmail/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)