diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..8c67f89
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import models
+from . import controllers
diff --git a/__manifest__.py b/__manifest__.py
new file mode 100644
index 0000000..71f0721
--- /dev/null
+++ b/__manifest__.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+{
+ 'name': 'Microsoft Users',
+ 'category': 'Hidden/Tools',
+ 'description': """
+The module adds Microsoft user in res user.
+===========================================
+""",
+ 'depends': ['base_setup'],
+ 'data': [
+ 'data/microsoft_account_data.xml',
+ ],
+ 'license': 'LGPL-3',
+}
diff --git a/controllers/__init__.py b/controllers/__init__.py
new file mode 100644
index 0000000..5d4b25d
--- /dev/null
+++ b/controllers/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import main
diff --git a/controllers/main.py b/controllers/main.py
new file mode 100644
index 0000000..63aa82b
--- /dev/null
+++ b/controllers/main.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+import json
+
+from odoo import http
+from odoo.http import request
+
+
+class MicrosoftAuth(http.Controller):
+
+ @http.route('/microsoft_account/authentication', type='http', auth="public")
+ def oauth2callback(self, **kw):
+ """ This route/function is called by Microsoft when user Accept/Refuse the consent of Microsoft """
+ state = json.loads(kw['state'])
+ dbname = state.get('d')
+ service = state.get('s')
+ url_return = state.get('f')
+
+ if kw.get('code'):
+ access_token, refresh_token, ttl = request.env['microsoft.service']._get_microsoft_tokens(kw['code'], service)
+ request.env.user._set_microsoft_auth_tokens(access_token, refresh_token, ttl)
+ return request.redirect(url_return)
+ elif kw.get('error'):
+ return request.redirect("%s%s%s" % (url_return, "?error=", kw['error']))
+ else:
+ return request.redirect("%s%s" % (url_return, "?error=Unknown_error"))
diff --git a/data/microsoft_account_data.xml b/data/microsoft_account_data.xml
new file mode 100644
index 0000000..da61e3d
--- /dev/null
+++ b/data/microsoft_account_data.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ microsoft_redirect_uri
+ urn:ietf:wg:oauth:2.0:oob
+
+
+
diff --git a/i18n/ar.po b/i18n/ar.po
new file mode 100644
index 0000000..e4813c9
--- /dev/null
+++ b/i18n/ar.po
@@ -0,0 +1,74 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"الطريقة غير مدعومة [%s] ليست واحدة من [GET, POST, PUT, PATCH or DELETE]! "
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "رمز تحديث Microsoft "
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "خدمة Microsoft "
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "صلاحية رمز Microsoft "
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "رمز مستخدم Microsoft "
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"حدث خطأ أثناء إنشاء كلمة الرمز الخاص بك. قد يكون رمز التفويض غير صالح "
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"حدث خطأ ما خلال إنشاء الرمز الخاص بك. قد يكون رمز التفويض غير صالح أو نتهت "
+"مدة صلاحيته بالفعل "
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "المستخدم"
diff --git a/i18n/bg.po b/i18n/bg.po
new file mode 100644
index 0000000..6a9d603
--- /dev/null
+++ b/i18n/bg.po
@@ -0,0 +1,77 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Maria Boyadjieva , 2023
+# aleksandar ivanov, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: aleksandar ivanov, 2023\n"
+"Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: bg\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Методът не е поддържан [%s] не и във [ВЗЕМЕТЕ, ПУБЛИКУВАЙТЕ, ПОСТАВЕТЕ, "
+"УРЕДЕТЕ или ИЗТРИЙТЕ]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Нещо се обърка при създаването на токена Ви. Възможно е кодът Ви за "
+"упълномощаване да е невалиден"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Нещо се обърка при създаването на токена Ви. Възможно е кодът Ви за "
+"упълномощаване да е невалиден или вече да е изтекъл"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Потребител"
diff --git a/i18n/ca.po b/i18n/ca.po
new file mode 100644
index 0000000..7296cb0
--- /dev/null
+++ b/i18n/ca.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Arnau Ros, 2023
+# Martin Trigaux, 2023
+# marcescu, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: marcescu, 2023\n"
+"Language-Team: Catalan (https://app.transifex.com/odoo/teams/41243/ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Mètode no suportat [%s] no en [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Token d'actualizació de Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Servei de Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Validesa del Token de Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Token d'usuari de Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Alguna cosa ha anat malament durant la generació del token. Pot ser el teu "
+"Codi d'Autorització no és vàlid. "
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Alguna cosa ha anat malament durant la generació del token. Pot ser el teu "
+"Codi d'Autorització no és vàlid o ha expirat."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Usuari"
diff --git a/i18n/cs.po b/i18n/cs.po
new file mode 100644
index 0000000..80beafb
--- /dev/null
+++ b/i18n/cs.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+# Jiří Podhorecký, 2023
+# Jakub Smolka, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Jakub Smolka, 2023\n"
+"Language-Team: Czech (https://app.transifex.com/odoo/teams/41243/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: cs\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Metoda není podporována [%s] v [GET, POST, PUT, PATCH nebo DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft služba"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Během vaší generace tokenů se něco pokazilo. Možná je váš autorizační kód "
+"neplatný"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Během vaší generace tokenů se něco pokazilo. Možná je váš autorizační kód "
+"neplatný nebo již vypršel"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Uživatel"
diff --git a/i18n/da.po b/i18n/da.po
new file mode 100644
index 0000000..a6f92e6
--- /dev/null
+++ b/i18n/da.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Martin Trigaux, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Martin Trigaux, 2023\n"
+"Language-Team: Danish (https://app.transifex.com/odoo/teams/41243/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Metode ikke understøttet [%s] ikke i [GET, POST, PUT, PATCH, eller DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft Genopfrisk Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft Tjeneste"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft Token Gyldighed"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft Bruger Token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Noget gik galt under din token generering. Måske er din autoriserings kode "
+"ugyldig"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Noget gik galt under din token generering. Måske er din autoriserings kode "
+"ugyldig eller allerede udløbet"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Bruger"
diff --git a/i18n/de.po b/i18n/de.po
new file mode 100644
index 0000000..5366bb6
--- /dev/null
+++ b/i18n/de.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Methode nicht unterstützt [%s] nicht in [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft-Aktualisierungstoken"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft-Service"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Gültigkeit des Microsoft-Tokens"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft-Benutzertoken"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Während der Generierung des Tokens ist ein Fehler aufgetreten. Eventuell ist"
+" Ihr Autorisierungscode ungültig."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Während der Generierung des Tokens ist ein Fehler aufgetreten. Eventuell ist"
+" Ihr Autorisierungscode ungültig oder bereits abgelaufen."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Benutzer"
diff --git a/i18n/es.po b/i18n/es.po
new file mode 100644
index 0000000..a9c1b51
--- /dev/null
+++ b/i18n/es.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Metodo no soportado [%s] no está en [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Token de actualización de Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Servicio de Microsoft "
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Validez del token de Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Token de usuario de Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Algo salió mal durante la generación del token. Es probable que el código de"
+" autorización sea inválido."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Algo salió mal durante la generación del token. Es probable que el código de"
+" autorización sea inválido o esté expirado."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Usuario"
diff --git a/i18n/es_419.po b/i18n/es_419.po
new file mode 100644
index 0000000..f03afb0
--- /dev/null
+++ b/i18n/es_419.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_419\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Método no compatible, [%s] no se encuentra en [GET, POST, PUT, PATCH o "
+"DELETE]"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Actualizar token de Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Servicio de Microsoft "
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Validez del token de Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Token de usuario de Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Ocurrió un error al generar el token. Es probable que el código de "
+"autorización no sea válido."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Ocurrió un error al generar el token. Es probable que el código de "
+"autorización no sea válido o haya vencido."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Usuario"
diff --git a/i18n/et.po b/i18n/et.po
new file mode 100644
index 0000000..79cd2c2
--- /dev/null
+++ b/i18n/et.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Arma Gedonsky , 2023
+# Eneli Õigus , 2023
+# Anna, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Anna, 2023\n"
+"Language-Team: Estonian (https://app.transifex.com/odoo/teams/41243/et/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: et\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Meetodit ei toetata [%s] ei ole [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft Refresh Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft'i teenus"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft'i Tokeni kehtivus"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft'i kasutaja Token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Teie \"token\"-i genereerimisel läks midagi valesti. Võimalik, et teie "
+"autoriseerimiskood on kehtetu."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Teie \"token\"-i genereerimisel läks midagi valesti. Võimalik, et teie "
+"autoriseerimiskood on vale või aegunud."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Kasutaja"
diff --git a/i18n/fa.po b/i18n/fa.po
new file mode 100644
index 0000000..6a0745f
--- /dev/null
+++ b/i18n/fa.po
@@ -0,0 +1,70 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Martin Trigaux, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Martin Trigaux, 2023\n"
+"Language-Team: Persian (https://app.transifex.com/odoo/teams/41243/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fa\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "کاربر"
diff --git a/i18n/fi.po b/i18n/fi.po
new file mode 100644
index 0000000..af31892
--- /dev/null
+++ b/i18n/fi.po
@@ -0,0 +1,77 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Jarmo Kortetjärvi , 2023
+# Ossi Mantylahti , 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Ossi Mantylahti , 2023\n"
+"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Metodia [%s] ei löydy tuetuista metodeista [GET, POST, PUT, PATCH or "
+"DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft tunnisteen virkistys"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoftin palvelu"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoftin tunnisteen voimassaolo"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft-käyttäjätunniste"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Jotain meni pieleen tokenin luonnissa. Valtuutusavain saattaa olla "
+"virheellinen"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Jotain meni pieleen tokenin luonnissa. Valtuutusavain saattaa olla "
+"vanhentunut"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Käyttäjä"
diff --git a/i18n/fr.po b/i18n/fr.po
new file mode 100644
index 0000000..86f9f9d
--- /dev/null
+++ b/i18n/fr.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: French (https://app.transifex.com/odoo/teams/41243/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fr\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Méthode non prise en charge [%s] pas dans [GET, POST, PUT, PATCH or DELETE] "
+"!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Actualiser le jeton Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft Service"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Validité du jeton Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Jeton d'utilisateur Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Une erreur est survenue durant la génération du jeton. Votre code "
+"d'autorisation est peut-être invalide."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Une erreur est survenue durant la génération du jeton. Votre code "
+"d'autorisation est peut-être invalide ou expiré."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Utilisateur"
diff --git a/i18n/he.po b/i18n/he.po
new file mode 100644
index 0000000..bae97d8
--- /dev/null
+++ b/i18n/he.po
@@ -0,0 +1,72 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Yihya Hugirat , 2023
+# ExcaliberX , 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: ExcaliberX , 2023\n"
+"Language-Team: Hebrew (https://app.transifex.com/odoo/teams/41243/he/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: he\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"הפעולה [%s] לא נמצאת בפעולות האפשריות [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr "אירעה שגיאה במהלך יצירת הטוקן שלך. יתכן כי קוד האישור שלך לא תקין"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr "אירעה שגיאה במהלך יצירת הטוקן שלך. יתכן כי קוד האישור שלך פג תוקף"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "משתמש"
diff --git a/i18n/hu.po b/i18n/hu.po
new file mode 100644
index 0000000..105491f
--- /dev/null
+++ b/i18n/hu.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Tamás Németh , 2023
+# krnkris, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: krnkris, 2023\n"
+"Language-Team: Hungarian (https://app.transifex.com/odoo/teams/41243/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Ez a mód [%s] nem támogatott ezekben [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Valami rosszul sikerült a token létrehozásakor. Talán az engedélyezési kódja"
+" érvénytelen"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Valami rosszul sikerült a token létrehozásakor. Talán az engedélyezési kódja"
+" már lejárt"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Felhasználó"
diff --git a/i18n/id.po b/i18n/id.po
new file mode 100644
index 0000000..4eb7e82
--- /dev/null
+++ b/i18n/id.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Indonesian (https://app.transifex.com/odoo/teams/41243/id/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: id\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Metode tidak didukung [%s] tidak di dalam [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Token Refresh Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft Service"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Validitas Token Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Token User Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Terdapat kesalahan pada pembuatan token Anda. Mungkin Kode Otorisasi Anda "
+"tidak valid"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Terjadi kesalahan selama pembuatan token Anda. Mungkin Kode Otorisasi Anda "
+"tidak valid atau sudah kadaluwarsa"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Pengguna"
diff --git a/i18n/it.po b/i18n/it.po
new file mode 100644
index 0000000..081a197
--- /dev/null
+++ b/i18n/it.po
@@ -0,0 +1,74 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Italian (https://app.transifex.com/odoo/teams/41243/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: it\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Metodo non supportato [%s] non in [GET, POST, PUT, PATCH o DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Token di aggiornamento Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Servizio Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Validità token Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Token utente Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Qualcosa è andato storto durante la generazione del tuo token. Probabilmente"
+" il tuo Authorization Code non è valido"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Qualcosa è andato storto durante la generazione del tuo token. Probabilmente"
+" il tuo Authorization Code non è valido o è scaduto"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Utente"
diff --git a/i18n/ja.po b/i18n/ja.po
new file mode 100644
index 0000000..cb820b0
--- /dev/null
+++ b/i18n/ja.po
@@ -0,0 +1,70 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "サポートされていないメソッド [%s]これらは[GET、POST、PUT、PATCH、DELETE]内にありません!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoftリフレッシュトークン"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoftサービス"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoftトークンの有効性"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoftユーザトークン"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr "トークンの生成中に何か問題が発生しました。 承認コードが無効である可能性があります"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr "トークンの生成中に何か問題が発生しました。 承認コードが無効であるかすでに失効している可能性があります "
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "ユーザ"
diff --git a/i18n/ko.po b/i18n/ko.po
new file mode 100644
index 0000000..1288e04
--- /dev/null
+++ b/i18n/ko.po
@@ -0,0 +1,70 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Korean (https://app.transifex.com/odoo/teams/41243/ko/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ko\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "[%s] 메서드가 지원되지 않습니다. [GET, POST, PUT, PATCH 또는 DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft 새로고침 토큰"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft 서비스"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft 토큰 유효 기간"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft 사용자 토큰"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr "토큰 생성 중에 문제가 발생했습니다. 인증 코드가 잘못되었을 수 있습니다."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr "토큰 생성 중에 문제가 발생했습니다. 인증 코드가 잘못되었거나 이미 만료되었을 수 있습니다."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "사용자"
diff --git a/i18n/lt.po b/i18n/lt.po
new file mode 100644
index 0000000..1776655
--- /dev/null
+++ b/i18n/lt.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Linas Versada , 2023
+# Monika Raciunaite , 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Monika Raciunaite , 2023\n"
+"Language-Team: Lithuanian (https://app.transifex.com/odoo/teams/41243/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: lt\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Būdas nepalaikomas [%s] jei ne tarp [GET, POST, PUT, PATCH ar DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Generuojant prieigos kodą įvyko klaida. Galbūt jūsų patvirtinimo kodas yra "
+"neteisingas."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Generuojant prieigos kodą įvyko klaida. Galbūt jūsų patvirtinimo kodas "
+"nebegalioja ar yra neteisingas."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Vartotojas"
diff --git a/i18n/lv.po b/i18n/lv.po
new file mode 100644
index 0000000..b85eeb6
--- /dev/null
+++ b/i18n/lv.po
@@ -0,0 +1,70 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# ievaputnina , 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: ievaputnina , 2023\n"
+"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Lietotājs"
diff --git a/i18n/microsoft_account.pot b/i18n/microsoft_account.pot
new file mode 100644
index 0000000..c1e017b
--- /dev/null
+++ b/i18n/microsoft_account.pot
@@ -0,0 +1,66 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 21:55+0000\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: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr ""
diff --git a/i18n/nl.po b/i18n/nl.po
new file mode 100644
index 0000000..5acbc0e
--- /dev/null
+++ b/i18n/nl.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Methode niet ondersteund [%s] niet in [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft ververs token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft service"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft token geldigheid"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft gebruiker token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Er is iets fout gegaan tijdens het genereren van het token. Mogelijk is je "
+"authenticatie code foutief"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Er is iets fout gegaan tijdens het genereren van het token. Mogelijk is je "
+"authenticatie code foutief of al vervallen"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Gebruiker"
diff --git a/i18n/pl.po b/i18n/pl.po
new file mode 100644
index 0000000..fbb8a68
--- /dev/null
+++ b/i18n/pl.po
@@ -0,0 +1,74 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Polish (https://app.transifex.com/odoo/teams/41243/pl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pl\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Metoda bez wsparcia [%s] brak w [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Odświeżenie tokena Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Usługa Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Ważność tokena Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Token użytkownika Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Coś poszło nie tak podczas generowania znaczka. Może twój autoryzowany kod "
+"jest zły"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Coś poszło nie tak podczas generowania tokena. Być może Twój kod "
+"autoryzacyjny jest nieważny lub już wygasł."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Użytkownik"
diff --git a/i18n/pt.po b/i18n/pt.po
new file mode 100644
index 0000000..5cf151b
--- /dev/null
+++ b/i18n/pt.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Portuguese (https://app.transifex.com/odoo/teams/41243/pt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Método não suportado [%s] não é um de [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Algo correu mal durante a geração do token. É possível que o seu Código de "
+"Autorização seja inválido"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Algo correu mal durante a geração do token. É possível que o seu Código de "
+"Autorização seja inválido ou tenha expirado"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Utilizador"
diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po
new file mode 100644
index 0000000..42ad050
--- /dev/null
+++ b/i18n/pt_BR.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+# Maitê Dietze, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Maitê Dietze, 2023\n"
+"Language-Team: Portuguese (Brazil) (https://app.transifex.com/odoo/teams/41243/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Método não suportado [%s] não está em [GET, POST, PUT, PATCH ou DELETE]]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Token de atualização da Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Serviço Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Validade do token da Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Token de usuário da Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Erro ao gerar seu token de acesso. Talvez seu código de autorização seja "
+"inválido"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Erro ao gerar seu token de acesso. Talvez seu código de autorização seja "
+"inválido ou já expirou"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Usuário"
diff --git a/i18n/ru.po b/i18n/ru.po
new file mode 100644
index 0000000..84fe19a
--- /dev/null
+++ b/i18n/ru.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Martin Trigaux, 2023
+# Wil Odoo, 2024
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2024\n"
+"Language-Team: Russian (https://app.transifex.com/odoo/teams/41243/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Метод не поддерживается [%s] не в [GET, POST, PUT, PATCH или DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft Refresh Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Служба Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Срок действия токена Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Токен пользователя Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Что-то пошло не так во время генерации токенов. Возможно, ваш код "
+"авторизации недействителен."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Что-то пошло не так во время генерации токенов. Возможно, ваш код "
+"авторизации недействителен или уже устарел"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Пользователь"
diff --git a/i18n/sk.po b/i18n/sk.po
new file mode 100644
index 0000000..43c2ea8
--- /dev/null
+++ b/i18n/sk.po
@@ -0,0 +1,74 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sk\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Metóda nepodporovaná [%s] nie je [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Niečo sa pokazilo počas generovania vášho tokenu. Možno je váš autorizačný "
+"kód neplatný"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Niečo sa pokazilo počas generovania vášho tokenu. Možno je váš autorizačný "
+"kód neplatný alebo už expirovaný"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Užívateľ"
diff --git a/i18n/sl.po b/i18n/sl.po
new file mode 100644
index 0000000..d002b35
--- /dev/null
+++ b/i18n/sl.po
@@ -0,0 +1,70 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Matjaz Mozetic , 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Matjaz Mozetic , 2023\n"
+"Language-Team: Slovenian (https://app.transifex.com/odoo/teams/41243/sl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Uporabnik"
diff --git a/i18n/sr.po b/i18n/sr.po
new file mode 100644
index 0000000..b1fda33
--- /dev/null
+++ b/i18n/sr.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Milan Bojovic , 2023
+# コフスタジオ, 2024
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: コフスタジオ, 2024\n"
+"Language-Team: Serbian (https://app.transifex.com/odoo/teams/41243/sr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sr\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Metoda nije podržana [%s] nije u [GET, POST, PUT, PATCH ili DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft osvežite Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft Servis"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft Token Validnost"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft Korisnički token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Nešto je pošlo po zlu prilikom generisanja vašeg tokena. Možda je vaš "
+"Autorizacioni kod nevažeći."
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Nešto je pošlo po zlu tokom generisanja vašeg tokena. Možda je vaš "
+"Autorizacioni kod nevažeći ili već istekao."
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Korisnik"
diff --git a/i18n/sv.po b/i18n/sv.po
new file mode 100644
index 0000000..6208b57
--- /dev/null
+++ b/i18n/sv.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Kim Asplund , 2023
+# Chrille Hedberg , 2023
+# Anders Wallenquist , 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Anders Wallenquist , 2023\n"
+"Language-Team: Swedish (https://app.transifex.com/odoo/teams/41243/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Metoden stöds inte [%s] inte i [GET, POST, PUT, PATCH eller DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr ""
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr ""
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Någonting gick fel vid generering av din token. Din auktoriseringskod kan "
+"vara ogiltig"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Något gick fel under din token-generation. Kanske är din auktoriseringskod "
+"ogiltig eller redan utgången"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Användare"
diff --git a/i18n/th.po b/i18n/th.po
new file mode 100644
index 0000000..0e53bb4
--- /dev/null
+++ b/i18n/th.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+# Rasareeyar Lappiam, 2024
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Rasareeyar Lappiam, 2024\n"
+"Language-Team: Thai (https://app.transifex.com/odoo/teams/41243/th/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: th\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"ไม่รองรับวิธีการ [%s] ไม่ได้อยู่ใน [GET, POST, PUT, PATCH หรือ DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "โทเค็นการรีเฟรชของ Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "บริการของ Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "ความถูกต้องของโทเค็นของ Microsoft"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "โทเค็นผู้ใช้ Microsoft"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"มีข้อผิดพลาดเกิดขึ้นระหว่างการสร้างโทเค็นของคุณ "
+"รหัสการยืนยันของคุณอาจไม่ถูกต้อง"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"มีข้อผิดพลาดเกิดขึ้นระหว่างการสร้างโทเค็นของคุณ "
+"บางทีรหัสอนุญาตของคุณอาจไม่ถูกต้องหรือหมดอายุแล้ว"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "ผู้ใช้"
diff --git a/i18n/tr.po b/i18n/tr.po
new file mode 100644
index 0000000..8cba836
--- /dev/null
+++ b/i18n/tr.po
@@ -0,0 +1,77 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Martin Trigaux, 2023
+# Murat Kaplan , 2023
+# Halil, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Halil, 2023\n"
+"Language-Team: Turkish (https://app.transifex.com/odoo/teams/41243/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Yöntem desteklenmiyor [%s] [GET, POST, PUT, PATCH veya DELETE] içinde değil!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft Yenileme Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft Hizmeti"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft Token Geçerliliği"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft Kullanıcı token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Belirteç oluşturma işleminiz sırasında bir şeyler ters gitti. Yetkilendirme "
+"Kodunuz geçersiz olabilir"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Belirteç oluşturma işleminiz sırasında bir şeyler ters gitti. Yetkilendirme "
+"Kodunuz geçersiz veya süresi dolmuş olabilir"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Kullanıcı"
diff --git a/i18n/uk.po b/i18n/uk.po
new file mode 100644
index 0000000..312ca4a
--- /dev/null
+++ b/i18n/uk.po
@@ -0,0 +1,74 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Ukrainian (https://app.transifex.com/odoo/teams/41243/uk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: uk\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "Метод не підтримується [%s] не в [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft Refresh Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft Service"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft Token Validity"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft User token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Щось пішло не так під час генерації ваших токенів. Можливо, ваш код "
+"авторизації недійсний"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Щось пішло не так під час вашої генерації токенів. Може, ваш код "
+"авторизації недійсний або вже минув"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Користувач"
diff --git a/i18n/vi.po b/i18n/vi.po
new file mode 100644
index 0000000..33343bc
--- /dev/null
+++ b/i18n/vi.po
@@ -0,0 +1,76 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Vietnamese (https://app.transifex.com/odoo/teams/41243/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr ""
+"Phương pháp không được hỗ trợ [%s] không có trong [GET, POST, PUT, PATCH "
+"hoặc DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "Microsoft Refresh Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "Microsoft Service"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "Microsoft Token Validity"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "Microsoft User token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr ""
+"Đã xảy ra lỗi trong quá trình tạo mã token của bạn. Có thể Mã ủy quyền của "
+"bạn không hợp lệ"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr ""
+"Đã xảy ra lỗi trong quá trình tạo mã Token của bạn. Có thể Mã ủy quyền của "
+"bạn không hợp lệ hoặc đã hết hạn"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "Người dùng"
diff --git a/i18n/zh_CN.po b/i18n/zh_CN.po
new file mode 100644
index 0000000..204616a
--- /dev/null
+++ b/i18n/zh_CN.po
@@ -0,0 +1,71 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2023\n"
+"Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "方法 [%s] 不被 [GET, POST, PUT, PATCH 或 DELETE]支持!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "微软刷新 Token"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "微软服务"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "微软 Token 有效性"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "微软用户 token"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr "令牌生成过程中出错了。请重新申请授权码"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr "令牌生成过程中出错了。可能您的授权码无效或已过期"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "用户"
diff --git a/i18n/zh_TW.po b/i18n/zh_TW.po
new file mode 100644
index 0000000..84a84cb
--- /dev/null
+++ b/i18n/zh_TW.po
@@ -0,0 +1,70 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * microsoft_account
+#
+# Translators:
+# Wil Odoo, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-26 21:55+0000\n"
+"PO-Revision-Date: 2023-10-26 23:09+0000\n"
+"Last-Translator: Wil Odoo, 2023\n"
+"Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid "Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!"
+msgstr "該方法不支援 [%s] 於 [GET, POST, PUT, PATCH or DELETE]!"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_rtoken
+msgid "Microsoft Refresh Token"
+msgstr "微軟更新金鑰"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_microsoft_service
+msgid "Microsoft Service"
+msgstr "微軟服務"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token_validity
+msgid "Microsoft Token Validity"
+msgstr "微軟金鑰有效性"
+
+#. module: microsoft_account
+#: model:ir.model.fields,field_description:microsoft_account.field_res_users__microsoft_calendar_token
+msgid "Microsoft User token"
+msgstr "微軟使用者金鑰"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid"
+msgstr "金鑰生成過程中出現錯誤。請重新申請授權碼。"
+
+#. module: microsoft_account
+#. odoo-python
+#: code:addons/microsoft_account/models/microsoft_service.py:0
+#, python-format
+msgid ""
+"Something went wrong during your token generation. Maybe your Authorization "
+"Code is invalid or already expired"
+msgstr "金鑰生成過程中出現錯誤。或許您的授權碼無效或已過期。"
+
+#. module: microsoft_account
+#: model:ir.model,name:microsoft_account.model_res_users
+msgid "User"
+msgstr "使用者"
diff --git a/models/__init__.py b/models/__init__.py
new file mode 100644
index 0000000..efaff2d
--- /dev/null
+++ b/models/__init__.py
@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import res_users
+from . import microsoft_service
diff --git a/models/microsoft_service.py b/models/microsoft_service.py
new file mode 100644
index 0000000..9383f77
--- /dev/null
+++ b/models/microsoft_service.py
@@ -0,0 +1,174 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from datetime import datetime
+import json
+import logging
+
+import requests
+from werkzeug import urls
+
+from odoo import api, fields, models, _
+
+_logger = logging.getLogger(__name__)
+
+TIMEOUT = 20
+
+DEFAULT_MICROSOFT_AUTH_ENDPOINT = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize'
+DEFAULT_MICROSOFT_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/common/oauth2/v2.0/token'
+DEFAULT_MICROSOFT_GRAPH_ENDPOINT = 'https://graph.microsoft.com'
+
+RESOURCE_NOT_FOUND_STATUSES = (204, 404)
+
+class MicrosoftService(models.AbstractModel):
+ _name = 'microsoft.service'
+ _description = 'Microsoft Service'
+
+ def _get_calendar_scope(self):
+ return 'offline_access openid Calendars.ReadWrite'
+
+ @api.model
+ def _get_auth_endpoint(self):
+ return self.env["ir.config_parameter"].sudo().get_param('microsoft_account.auth_endpoint', DEFAULT_MICROSOFT_AUTH_ENDPOINT)
+
+ @api.model
+ def _get_token_endpoint(self):
+ return self.env["ir.config_parameter"].sudo().get_param('microsoft_account.token_endpoint', DEFAULT_MICROSOFT_TOKEN_ENDPOINT)
+
+ @api.model
+ def generate_refresh_token(self, service, authorization_code):
+ """ Call Microsoft API to refresh the token, with the given authorization code
+ :param service : the name of the microsoft service to actualize
+ :param authorization_code : the code to exchange against the new refresh token
+ :returns the new refresh token
+ """
+ Parameters = self.env['ir.config_parameter'].sudo()
+ client_id = Parameters.get_param('microsoft_%s_client_id' % service)
+ client_secret = Parameters.get_param('microsoft_%s_client_secret' % service)
+ redirect_uri = Parameters.get_param('microsoft_redirect_uri')
+
+ scope = self._get_calendar_scope()
+
+ # Get the Refresh Token From Microsoft And store it in ir.config_parameter
+ headers = {"Content-type": "application/x-www-form-urlencoded"}
+ data = {
+ 'client_id': client_id,
+ 'redirect_uri': redirect_uri,
+ 'client_secret': client_secret,
+ 'scope': scope,
+ 'grant_type': "refresh_token"
+ }
+ try:
+ req = requests.post(self._get_token_endpoint(), data=data, headers=headers, timeout=TIMEOUT)
+ req.raise_for_status()
+ content = req.json()
+ except requests.exceptions.RequestException as exc:
+ error_msg = _("Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired")
+ raise self.env['res.config.settings'].get_config_warning(error_msg) from exc
+
+ return content.get('refresh_token')
+
+ @api.model
+ def _get_authorize_uri(self, from_url, service, scope):
+ """ This method return the url needed to allow this instance of Odoo to access to the scope
+ of gmail specified as parameters
+ """
+ state = {
+ 'd': self.env.cr.dbname,
+ 's': service,
+ 'f': from_url
+ }
+
+ get_param = self.env['ir.config_parameter'].sudo().get_param
+ base_url = get_param('web.base.url', default='http://www.odoo.com?NoBaseUrl')
+ client_id = get_param('microsoft_%s_client_id' % (service,), default=False)
+
+ encoded_params = urls.url_encode({
+ 'response_type': 'code',
+ 'client_id': client_id,
+ 'state': json.dumps(state),
+ 'scope': scope,
+ 'redirect_uri': base_url + '/microsoft_account/authentication',
+ 'access_type': 'offline'
+ })
+ return "%s?%s" % (self._get_auth_endpoint(), encoded_params)
+
+ @api.model
+ def _get_microsoft_tokens(self, authorize_code, service):
+ """ Call Microsoft API to exchange authorization code against token, with POST request, to
+ not be redirected.
+ """
+ get_param = self.env['ir.config_parameter'].sudo().get_param
+ base_url = get_param('web.base.url', default='http://www.odoo.com?NoBaseUrl')
+ client_id = get_param('microsoft_%s_client_id' % (service,), default=False)
+ client_secret = get_param('microsoft_%s_client_secret' % (service,), default=False)
+ scope = self._get_calendar_scope()
+
+ headers = {"content-type": "application/x-www-form-urlencoded"}
+ data = {
+ 'code': authorize_code,
+ 'client_id': client_id,
+ 'client_secret': client_secret,
+ 'grant_type': 'authorization_code',
+ 'scope': scope,
+ 'redirect_uri': base_url + '/microsoft_account/authentication'
+ }
+ try:
+ dummy, response, dummy = self._do_request(self._get_token_endpoint(), params=data, headers=headers, method='POST', preuri='')
+ access_token = response.get('access_token')
+ refresh_token = response.get('refresh_token')
+ ttl = response.get('expires_in')
+ return access_token, refresh_token, ttl
+ except requests.HTTPError:
+ error_msg = _("Something went wrong during your token generation. Maybe your Authorization Code is invalid")
+ raise self.env['res.config.settings'].get_config_warning(error_msg)
+
+ @api.model
+ def _do_request(self, uri, params=None, headers=None, method='POST', preuri=DEFAULT_MICROSOFT_GRAPH_ENDPOINT, timeout=TIMEOUT):
+ """ Execute the request to Microsoft API. Return a tuple ('HTTP_CODE', 'HTTP_RESPONSE')
+ :param uri : the url to contact
+ :param params : dict or already encoded parameters for the request to make
+ :param headers : headers of request
+ :param method : the method to use to make the request
+ :param preuri : pre url to prepend to param uri.
+ """
+ if params is None:
+ params = {}
+ if headers is None:
+ headers = {}
+
+ assert urls.url_parse(preuri + uri).host in [
+ urls.url_parse(url).host for url in (DEFAULT_MICROSOFT_TOKEN_ENDPOINT, DEFAULT_MICROSOFT_GRAPH_ENDPOINT)
+ ]
+
+ _logger.debug("Uri: %s - Type : %s - Headers: %s - Params : %s !" % (uri, method, headers, params))
+
+ ask_time = fields.Datetime.now()
+ try:
+ if method.upper() in ('GET', 'DELETE'):
+ res = requests.request(method.lower(), preuri + uri, headers=headers, params=params, timeout=timeout)
+ elif method.upper() in ('POST', 'PATCH', 'PUT'):
+ res = requests.request(method.lower(), preuri + uri, data=params, headers=headers, timeout=timeout)
+ else:
+ raise Exception(_('Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!', method))
+ res.raise_for_status()
+ status = res.status_code
+
+ if int(status) in RESOURCE_NOT_FOUND_STATUSES:
+ response = {}
+ else:
+ # Some answers return empty content
+ response = res.content and res.json() or {}
+
+ try:
+ ask_time = datetime.strptime(res.headers.get('date'), "%a, %d %b %Y %H:%M:%S %Z")
+ except:
+ pass
+ except requests.HTTPError as error:
+ if error.response.status_code in RESOURCE_NOT_FOUND_STATUSES:
+ status = error.response.status_code
+ response = {}
+ else:
+ _logger.exception("Bad microsoft request: %s!", error.response.content)
+ raise error
+ return (status, response, ask_time)
diff --git a/models/res_users.py b/models/res_users.py
new file mode 100644
index 0000000..d6587ff
--- /dev/null
+++ b/models/res_users.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from datetime import timedelta
+
+
+from odoo import api, fields, models, _
+
+
+class User(models.Model):
+ _inherit = 'res.users'
+
+ microsoft_calendar_rtoken = fields.Char('Microsoft Refresh Token', copy=False, groups="base.group_system")
+ microsoft_calendar_token = fields.Char('Microsoft User token', copy=False, groups="base.group_system")
+ microsoft_calendar_token_validity = fields.Datetime('Microsoft Token Validity', copy=False)
+
+ def _set_microsoft_auth_tokens(self, access_token, refresh_token, ttl):
+ self.write({
+ 'microsoft_calendar_rtoken': refresh_token,
+ 'microsoft_calendar_token': access_token,
+ 'microsoft_calendar_token_validity': fields.Datetime.now() + timedelta(seconds=ttl) if ttl else False,
+ })