From 89db2b9e825e4b9e662a18ad3d6ab8fc7eb4f464 Mon Sep 17 00:00:00 2001 From: Thomas Binsfeld Date: Mon, 4 Mar 2024 11:21:27 +0100 Subject: [PATCH 1/5] [ADD] queue_job_web_notify: send web notifications from queue jobs This module extends the mail notification feature of Queue Job. It adds the possibility to enable the web notification of failed jobs. When enabled, the user will be notified by a web notification. The web notification is a pop-up message that appears in the user's browser. --- queue_job_web_notify/__init__.py | 1 + queue_job_web_notify/__manifest__.py | 21 +++++++++ queue_job_web_notify/i18n/fr.po | 42 ++++++++++++++++++ .../i18n/queue_job_web_notify.pot | 42 ++++++++++++++++++ queue_job_web_notify/models/__init__.py | 2 + queue_job_web_notify/models/queue_job.py | 28 ++++++++++++ .../models/queue_job_function.py | 14 ++++++ queue_job_web_notify/readme/CONFIGURE.md | 4 ++ queue_job_web_notify/readme/CONTEXT.md | 2 + queue_job_web_notify/readme/CONTRIBUTORS.md | 1 + queue_job_web_notify/readme/DESCRIPTION.md | 4 ++ queue_job_web_notify/readme/ROADMAP.md | 2 + queue_job_web_notify/readme/USAGE.md | 4 ++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../views/queue_job_function.xml | 16 +++++++ 15 files changed, 183 insertions(+) create mode 100644 queue_job_web_notify/__init__.py create mode 100644 queue_job_web_notify/__manifest__.py create mode 100644 queue_job_web_notify/i18n/fr.po create mode 100644 queue_job_web_notify/i18n/queue_job_web_notify.pot create mode 100644 queue_job_web_notify/models/__init__.py create mode 100644 queue_job_web_notify/models/queue_job.py create mode 100644 queue_job_web_notify/models/queue_job_function.py create mode 100644 queue_job_web_notify/readme/CONFIGURE.md create mode 100644 queue_job_web_notify/readme/CONTEXT.md create mode 100644 queue_job_web_notify/readme/CONTRIBUTORS.md create mode 100644 queue_job_web_notify/readme/DESCRIPTION.md create mode 100644 queue_job_web_notify/readme/ROADMAP.md create mode 100644 queue_job_web_notify/readme/USAGE.md create mode 100644 queue_job_web_notify/static/description/icon.png create mode 100644 queue_job_web_notify/views/queue_job_function.xml diff --git a/queue_job_web_notify/__init__.py b/queue_job_web_notify/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/queue_job_web_notify/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/queue_job_web_notify/__manifest__.py b/queue_job_web_notify/__manifest__.py new file mode 100644 index 0000000000..cb5ed97ec7 --- /dev/null +++ b/queue_job_web_notify/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2024 ACSONE SA/NV,Odoo Community Association (OCA) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Queue Job Web Notify", + "summary": """ + This module allows to display a notification to the related user of a + failed job. It uses the web_notify notification feature.""", + "version": "13.0.1.0.0", + "author": "ACSONE SA/NV,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/queue", + "license": "AGPL-3", + "category": "Generic Modules", + "depends": [ + # OCA/queue + "queue_job", + # OCA/web + "web_notify", + ], + "data": ["views/queue_job_function.xml"], +} diff --git a/queue_job_web_notify/i18n/fr.po b/queue_job_web_notify/i18n/fr.po new file mode 100644 index 0000000000..13de6298c5 --- /dev/null +++ b/queue_job_web_notify/i18n/fr.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * queue_job_web_notify +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-03-04 13:47+0000\n" +"PO-Revision-Date: 2024-03-04 13:47+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: queue_job_web_notify +#: model:ir.model.fields,help:queue_job_web_notify.field_queue_job_function__is_web_notify_failure_enabled +msgid "Display a notification in the user interface when the job fails." +msgstr "Affiche une notification dans l'interface utilisateur lorsque le job échoue." + +#. module: queue_job_web_notify +#: model:ir.model,name:queue_job_web_notify.model_queue_job_function +msgid "Job Functions" +msgstr "" + +#. module: queue_job_web_notify +#: code:addons/queue_job_web_notify/models/queue_job.py:0 +#, python-format +msgid "Job failed" +msgstr "Job échoué" + +#. module: queue_job_web_notify +#: model:ir.model.fields,field_description:queue_job_web_notify.field_queue_job_function__is_web_notify_failure_enabled +msgid "Notify on failure" +msgstr "Notifier en cas d'échec" + +#. module: queue_job_web_notify +#: model:ir.model,name:queue_job_web_notify.model_queue_job +msgid "Queue Job" +msgstr "" diff --git a/queue_job_web_notify/i18n/queue_job_web_notify.pot b/queue_job_web_notify/i18n/queue_job_web_notify.pot new file mode 100644 index 0000000000..9995eb0067 --- /dev/null +++ b/queue_job_web_notify/i18n/queue_job_web_notify.pot @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * queue_job_web_notify +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-03-04 13:47+0000\n" +"PO-Revision-Date: 2024-03-04 13:47+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: queue_job_web_notify +#: model:ir.model.fields,help:queue_job_web_notify.field_queue_job_function__is_web_notify_failure_enabled +msgid "Display a notification in the user interface when the job fails." +msgstr "" + +#. module: queue_job_web_notify +#: model:ir.model,name:queue_job_web_notify.model_queue_job_function +msgid "Job Functions" +msgstr "" + +#. module: queue_job_web_notify +#: code:addons/queue_job_web_notify/models/queue_job.py:0 +#, python-format +msgid "Job failed" +msgstr "" + +#. module: queue_job_web_notify +#: model:ir.model.fields,field_description:queue_job_web_notify.field_queue_job_function__is_web_notify_failure_enabled +msgid "Notify on failure" +msgstr "" + +#. module: queue_job_web_notify +#: model:ir.model,name:queue_job_web_notify.model_queue_job +msgid "Queue Job" +msgstr "" diff --git a/queue_job_web_notify/models/__init__.py b/queue_job_web_notify/models/__init__.py new file mode 100644 index 0000000000..2cf4503488 --- /dev/null +++ b/queue_job_web_notify/models/__init__.py @@ -0,0 +1,2 @@ +from . import queue_job_function +from . import queue_job diff --git a/queue_job_web_notify/models/queue_job.py b/queue_job_web_notify/models/queue_job.py new file mode 100644 index 0000000000..0f2d5e8a81 --- /dev/null +++ b/queue_job_web_notify/models/queue_job.py @@ -0,0 +1,28 @@ +# Copyright 2024 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import _, models + + +class QueueJob(models.Model): + _inherit = "queue.job" + + def _get_web_notify_failure_title(self): + self.ensure_one() + return _("Job failed") + + def _get_web_notify_failure_message(self): + self.ensure_one() + return self.display_name + + def _message_post_on_failure(self): + res = super()._message_post_on_failure() + for job in self: + if not job.job_function_id.is_web_notify_failure_enabled: + continue + notification_title = job._get_web_notify_failure_title() + notification_message = job._get_web_notify_failure_message() + job.user_id.notify_danger( + message=notification_message, title=notification_title, sticky=True + ) + return res diff --git a/queue_job_web_notify/models/queue_job_function.py b/queue_job_web_notify/models/queue_job_function.py new file mode 100644 index 0000000000..5633d1e46c --- /dev/null +++ b/queue_job_web_notify/models/queue_job_function.py @@ -0,0 +1,14 @@ +# Copyright 2024 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class QueueJobFunction(models.Model): + _inherit = "queue.job.function" + + is_web_notify_failure_enabled = fields.Boolean( + string="Notify on failure", + help="Display a notification in the user interface when the job fails.", + default=False, + ) diff --git a/queue_job_web_notify/readme/CONFIGURE.md b/queue_job_web_notify/readme/CONFIGURE.md new file mode 100644 index 0000000000..9c322159df --- /dev/null +++ b/queue_job_web_notify/readme/CONFIGURE.md @@ -0,0 +1,4 @@ +To configure this module, you need to: + +- Go to the list of queue job functions +- Enable the web notify feature diff --git a/queue_job_web_notify/readme/CONTEXT.md b/queue_job_web_notify/readme/CONTEXT.md new file mode 100644 index 0000000000..75f4b9e2d6 --- /dev/null +++ b/queue_job_web_notify/readme/CONTEXT.md @@ -0,0 +1,2 @@ +The notification feature of this module allows the user to get a immediate feedback +about the status of the job. diff --git a/queue_job_web_notify/readme/CONTRIBUTORS.md b/queue_job_web_notify/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..4b887b3c43 --- /dev/null +++ b/queue_job_web_notify/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Thomas Binsfeld (https://www.acsone.eu/) diff --git a/queue_job_web_notify/readme/DESCRIPTION.md b/queue_job_web_notify/readme/DESCRIPTION.md new file mode 100644 index 0000000000..8f1dbc70c0 --- /dev/null +++ b/queue_job_web_notify/readme/DESCRIPTION.md @@ -0,0 +1,4 @@ +This module extends the mail notification feature of Queue Job. It adds the possibility +to enable the web notification of failed jobs. When enabled, the user will be notified +by a web notification. The web notification is a pop-up message that appears in the +user's browser. diff --git a/queue_job_web_notify/readme/ROADMAP.md b/queue_job_web_notify/readme/ROADMAP.md new file mode 100644 index 0000000000..86a295f402 --- /dev/null +++ b/queue_job_web_notify/readme/ROADMAP.md @@ -0,0 +1,2 @@ +- other notification contexts could be added (job started, job finished, job canceled, + etc.) diff --git a/queue_job_web_notify/readme/USAGE.md b/queue_job_web_notify/readme/USAGE.md new file mode 100644 index 0000000000..969cf2e8ec --- /dev/null +++ b/queue_job_web_notify/readme/USAGE.md @@ -0,0 +1,4 @@ +To only usage of this module is its configuration: + +- Go to the list of queue job functions +- Enable the web notify feature diff --git a/queue_job_web_notify/static/description/icon.png b/queue_job_web_notify/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/queue_job_web_notify/views/queue_job_function.xml b/queue_job_web_notify/views/queue_job_function.xml new file mode 100644 index 0000000000..7940f58603 --- /dev/null +++ b/queue_job_web_notify/views/queue_job_function.xml @@ -0,0 +1,16 @@ + + + + + queue.job.function + + + + + + + + + + From fd56e2668ed38afceda7f9b82aec7ce793bde36b Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 4 Apr 2024 06:53:16 +0000 Subject: [PATCH 2/5] [UPD] Update queue_job_web_notify.pot --- queue_job_web_notify/i18n/queue_job_web_notify.pot | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/queue_job_web_notify/i18n/queue_job_web_notify.pot b/queue_job_web_notify/i18n/queue_job_web_notify.pot index 9995eb0067..5bc8e5e059 100644 --- a/queue_job_web_notify/i18n/queue_job_web_notify.pot +++ b/queue_job_web_notify/i18n/queue_job_web_notify.pot @@ -4,10 +4,8 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0+e\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-04 13:47+0000\n" -"PO-Revision-Date: 2024-03-04 13:47+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" From e116f39801c716541411a20e47f3254ba2457330 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 4 Apr 2024 06:55:26 +0000 Subject: [PATCH 3/5] [BOT] post-merge updates --- queue_job_web_notify/README.rst | 107 ++++ .../static/description/index.html | 455 ++++++++++++++++++ 2 files changed, 562 insertions(+) create mode 100644 queue_job_web_notify/README.rst create mode 100644 queue_job_web_notify/static/description/index.html diff --git a/queue_job_web_notify/README.rst b/queue_job_web_notify/README.rst new file mode 100644 index 0000000000..b36310b9c2 --- /dev/null +++ b/queue_job_web_notify/README.rst @@ -0,0 +1,107 @@ +==================== +Queue Job Web Notify +==================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:5323f093bbd847963317ba481fa1b5e7cf038371945dd75145ebc6d72af59e41 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fqueue-lightgray.png?logo=github + :target: https://github.com/OCA/queue/tree/13.0/queue_job_web_notify + :alt: OCA/queue +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/queue-13-0/queue-13-0-queue_job_web_notify + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/queue&target_branch=13.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the mail notification feature of Queue Job. It adds +the possibility to enable the web notification of failed jobs. When +enabled, the user will be notified by a web notification. The web +notification is a pop-up message that appears in the user's browser. + +**Table of contents** + +.. contents:: + :local: + +Use Cases / Context +=================== + +The notification feature of this module allows the user to get a +immediate feedback about the status of the job. + +Configuration +============= + +To configure this module, you need to: + +- Go to the list of queue job functions +- Enable the web notify feature + +Usage +===== + +To only usage of this module is its configuration: + +- Go to the list of queue job functions +- Enable the web notify feature + +Known issues / Roadmap +====================== + +- other notification contexts could be added (job started, job + finished, job canceled, etc.) + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* ACSONE SA/NV + +Contributors +------------ + +- Thomas Binsfeld thomas.binsfeld@acsone.eu (https://www.acsone.eu/) + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/queue `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/queue_job_web_notify/static/description/index.html b/queue_job_web_notify/static/description/index.html new file mode 100644 index 0000000000..50cab7f631 --- /dev/null +++ b/queue_job_web_notify/static/description/index.html @@ -0,0 +1,455 @@ + + + + + +Queue Job Web Notify + + + +
+

Queue Job Web Notify

+ + +

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

+

This module extends the mail notification feature of Queue Job. It adds +the possibility to enable the web notification of failed jobs. When +enabled, the user will be notified by a web notification. The web +notification is a pop-up message that appears in the user’s browser.

+

Table of contents

+ +
+

Use Cases / Context

+

The notification feature of this module allows the user to get a +immediate feedback about the status of the job.

+
+
+

Configuration

+

To configure this module, you need to:

+
    +
  • Go to the list of queue job functions
  • +
  • Enable the web notify feature
  • +
+
+
+

Usage

+

To only usage of this module is its configuration:

+
    +
  • Go to the list of queue job functions
  • +
  • Enable the web notify feature
  • +
+
+
+

Known issues / Roadmap

+
    +
  • other notification contexts could be added (job started, job +finished, job canceled, etc.)
  • +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • ACSONE SA/NV
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/queue project on GitHub.

+

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

+
+
+
+ + From 29c27f23007ccf17ac6b0165fcbedf461f2d11d2 Mon Sep 17 00:00:00 2001 From: Hans Henrik Gabelgaard Date: Tue, 23 Sep 2025 14:27:55 +0200 Subject: [PATCH 4/5] [IMP] queue_job_web_notify: pre-commit execution --- queue_job_web_notify/pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 queue_job_web_notify/pyproject.toml diff --git a/queue_job_web_notify/pyproject.toml b/queue_job_web_notify/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/queue_job_web_notify/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" From 0a31a154b91a9cfde80cdae09da3354478903d08 Mon Sep 17 00:00:00 2001 From: Hans Henrik Gabelgaard Date: Tue, 23 Sep 2025 14:27:55 +0200 Subject: [PATCH 5/5] [MIG] queue_job_web_notify: Migration to 18.0 --- queue_job_web_notify/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queue_job_web_notify/__manifest__.py b/queue_job_web_notify/__manifest__.py index cb5ed97ec7..90ecd0359a 100644 --- a/queue_job_web_notify/__manifest__.py +++ b/queue_job_web_notify/__manifest__.py @@ -6,7 +6,7 @@ "summary": """ This module allows to display a notification to the related user of a failed job. It uses the web_notify notification feature.""", - "version": "13.0.1.0.0", + "version": "18.0.1.0.0", "author": "ACSONE SA/NV,Odoo Community Association (OCA)", "website": "https://github.com/OCA/queue", "license": "AGPL-3",