Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[15.0][MIG] queue_job_web_notify: Forward port from 13.0 #707

Open
wants to merge 5 commits into
base: 15.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions queue_job_web_notify/README.rst
Original file line number Diff line number Diff line change
@@ -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/15.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-15-0/queue-15-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=15.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 <https://github.com/OCA/queue/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 <https://github.com/OCA/queue/issues/new?body=module:%20queue_job_web_notify%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
-------

* ACSONE SA/NV

Contributors
------------

- Thomas Binsfeld [email protected] (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 <https://github.com/OCA/queue/tree/15.0/queue_job_web_notify>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions queue_job_web_notify/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
21 changes: 21 additions & 0 deletions queue_job_web_notify/__manifest__.py
Original file line number Diff line number Diff line change
@@ -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": "15.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"],
}
42 changes: 42 additions & 0 deletions queue_job_web_notify/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -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 ""
40 changes: 40 additions & 0 deletions queue_job_web_notify/i18n/queue_job_web_notify.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 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\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: 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 ""
2 changes: 2 additions & 0 deletions queue_job_web_notify/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import queue_job_function
from . import queue_job
28 changes: 28 additions & 0 deletions queue_job_web_notify/models/queue_job.py
Original file line number Diff line number Diff line change
@@ -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")

Check warning on line 12 in queue_job_web_notify/models/queue_job.py

View check run for this annotation

Codecov / codecov/patch

queue_job_web_notify/models/queue_job.py#L11-L12

Added lines #L11 - L12 were not covered by tests

def _get_web_notify_failure_message(self):
self.ensure_one()
return self.display_name

Check warning on line 16 in queue_job_web_notify/models/queue_job.py

View check run for this annotation

Codecov / codecov/patch

queue_job_web_notify/models/queue_job.py#L15-L16

Added lines #L15 - L16 were not covered by tests

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(

Check warning on line 25 in queue_job_web_notify/models/queue_job.py

View check run for this annotation

Codecov / codecov/patch

queue_job_web_notify/models/queue_job.py#L23-L25

Added lines #L23 - L25 were not covered by tests
message=notification_message, title=notification_title, sticky=True
)
return res
14 changes: 14 additions & 0 deletions queue_job_web_notify/models/queue_job_function.py
Original file line number Diff line number Diff line change
@@ -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,
)
4 changes: 4 additions & 0 deletions queue_job_web_notify/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
To configure this module, you need to:

- Go to the list of queue job functions
- Enable the web notify feature
2 changes: 2 additions & 0 deletions queue_job_web_notify/readme/CONTEXT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
The notification feature of this module allows the user to get a immediate feedback
about the status of the job.
1 change: 1 addition & 0 deletions queue_job_web_notify/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Thomas Binsfeld <[email protected]> (https://www.acsone.eu/)
4 changes: 4 additions & 0 deletions queue_job_web_notify/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 2 additions & 0 deletions queue_job_web_notify/readme/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- other notification contexts could be added (job started, job finished, job canceled,
etc.)
4 changes: 4 additions & 0 deletions queue_job_web_notify/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -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
Binary file added queue_job_web_notify/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading