forked from Techsystech/web
[IMP] web_notify: migration improvements
- Use ES6 in js files - Update screenshots - Clean old lint exceptions - New icon TT3835018.0
parent
5c6085d4a6
commit
304f519749
|
@ -14,13 +14,13 @@ Web Notify
|
|||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
|
||||
:target: https://github.com/OCA/web/tree/14.0/web_notify
|
||||
:target: https://github.com/OCA/web/tree/15.0/web_notify
|
||||
:alt: OCA/web
|
||||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
||||
:target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_notify
|
||||
:target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_notify
|
||||
:alt: Translate me on Weblate
|
||||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
|
||||
:target: https://runbot.odoo-community.org/runbot/162/14.0
|
||||
:target: https://runbot.odoo-community.org/runbot/162/15.0
|
||||
:alt: Try me on Runbot
|
||||
|
||||
|badge1| |badge2| |badge3| |badge4| |badge5|
|
||||
|
@ -50,7 +50,7 @@ Usage
|
|||
=====
|
||||
|
||||
|
||||
To send a notification to the logged in user or target audience you just need to call one of the new methods defined on res.users:
|
||||
To send a notification to the user you just need to call one of the new methods defined on res.users:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
|
@ -80,14 +80,14 @@ or
|
|||
|
||||
self.env.user.notify_default(message='My default message')
|
||||
|
||||
.. figure:: https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/notifications_screenshot.png
|
||||
.. figure:: https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/notifications_screenshot.gif
|
||||
:scale: 80 %
|
||||
:alt: Sample notifications
|
||||
|
||||
You can test the behaviour of the notifications by installing this module in a demo database.
|
||||
Access the users form through Settings -> Users & Companies. You'll see a tab called "Test web notify", here you'll find five buttons that'll allow you test the module.
|
||||
Access the users form through Settings -> Users & Companies. You'll see a tab called "Test web notify", here you'll find two buttons that'll allow you test the module.
|
||||
|
||||
.. figure:: https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/test_notifications_demo.png
|
||||
.. figure:: https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/test_notifications_demo.png
|
||||
:scale: 80 %
|
||||
:alt: Sample notifications
|
||||
|
||||
|
@ -97,7 +97,7 @@ Bug Tracker
|
|||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_notify%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_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.
|
||||
|
||||
|
@ -118,6 +118,9 @@ Contributors
|
|||
* Aitor Bouzas <aitor.bouzas@adaptivecity.com>
|
||||
* Shepilov Vladislav <shepilov.v@protonmail.com>
|
||||
* Kevin Khao <kevin.khao@akretion.com>
|
||||
* `Tecnativa <https://www.tecnativa.com>`_:
|
||||
|
||||
* David Vidal
|
||||
|
||||
Maintainers
|
||||
~~~~~~~~~~~
|
||||
|
@ -132,6 +135,6 @@ 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/web <https://github.com/OCA/web/tree/14.0/web_notify>`_ project on GitHub.
|
||||
This module is part of the `OCA/web <https://github.com/OCA/web/tree/15.0/web_notify>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
"depends": ["web", "bus", "base", "mail"],
|
||||
"assets": {
|
||||
"web.assets_backend": [
|
||||
"web_notify/static/src/js/services/notification.js",
|
||||
"web_notify/static/src/js/services/notification_services.js",
|
||||
"web_notify/static/src/js/services/*.js",
|
||||
]
|
||||
},
|
||||
"demo": ["views/res_users_demo.xml"],
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
# pylint: disable=missing-docstring
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import res_users
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
# pylint: disable=missing-docstring
|
||||
# Copyright 2016 ACSONE SA/NV
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
|
||||
from odoo import _, api, exceptions, fields, models
|
||||
|
||||
from odoo.addons.bus.models.bus import channel_with_db, json_dump
|
||||
|
@ -82,7 +79,6 @@ class ResUsers(models.Model):
|
|||
sticky=False,
|
||||
target=None,
|
||||
):
|
||||
# pylint: disable=protected-access
|
||||
if not self.env.user._is_admin() and any(
|
||||
user.id != self.env.uid for user in self
|
||||
):
|
||||
|
|
|
@ -3,3 +3,6 @@
|
|||
* Aitor Bouzas <aitor.bouzas@adaptivecity.com>
|
||||
* Shepilov Vladislav <shepilov.v@protonmail.com>
|
||||
* Kevin Khao <kevin.khao@akretion.com>
|
||||
* `Tecnativa <https://www.tecnativa.com>`_:
|
||||
|
||||
* David Vidal
|
||||
|
|
|
@ -29,7 +29,7 @@ or
|
|||
|
||||
self.env.user.notify_default(message='My default message')
|
||||
|
||||
.. figure:: static/description/notifications_screenshot.png
|
||||
.. figure:: static/description/notifications_screenshot.gif
|
||||
:scale: 80 %
|
||||
:alt: Sample notifications
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 8.2 KiB |
|
@ -3,7 +3,7 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
|
||||
<meta name="generator" content="Docutils: http://docutils.sourceforge.net/" />
|
||||
<title>Web Notify</title>
|
||||
<style type="text/css">
|
||||
|
||||
|
@ -367,10 +367,10 @@ ul.auto-toc {
|
|||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_notify"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_notify"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/14.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
||||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_notify"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_notify"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
||||
<p>Send instant notification messages to the user in live.</p>
|
||||
<p>This technical module allows you to send instant notification messages from the server to the user in live.
|
||||
Five kinds of notification are supported.</p>
|
||||
Two kinds of notification are supported.</p>
|
||||
<ul class="simple">
|
||||
<li>Success: Displayed in a <cite>success</cite> theme color flying popup div</li>
|
||||
<li>Danger: Displayed in a <cite>danger</cite> theme color flying popup div</li>
|
||||
|
@ -419,12 +419,12 @@ Five kinds of notification are supported.</p>
|
|||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">notify_default</span><span class="p">(</span><span class="n">message</span><span class="o">=</span><span class="s1">'My default message'</span><span class="p">)</span>
|
||||
</pre>
|
||||
<div class="figure">
|
||||
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/notifications_screenshot.png" />
|
||||
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/notifications_screenshot.gif" />
|
||||
</div>
|
||||
<p>You can test the behaviour of the notifications by installing this module in a demo database.
|
||||
Access the users form through Settings -> Users & Companies. You’ll see a tab called “Test web notify”, here you’ll find two buttons that’ll allow you test the module.</p>
|
||||
<div class="figure">
|
||||
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/14.0/web_notify/static/description/test_notifications_demo.png" />
|
||||
<img alt="Sample notifications" src="https://raw.githubusercontent.com/OCA/web/15.0/web_notify/static/description/test_notifications_demo.png" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="bug-tracker">
|
||||
|
@ -432,7 +432,7 @@ Access the users form through Settings -> Users & Companies. You’ll see
|
|||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_notify%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_notify%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||||
</div>
|
||||
<div class="section" id="credits">
|
||||
|
@ -452,6 +452,10 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
|
|||
<li>Aitor Bouzas <<a class="reference external" href="mailto:aitor.bouzas@adaptivecity.com">aitor.bouzas@adaptivecity.com</a>></li>
|
||||
<li>Shepilov Vladislav <<a class="reference external" href="mailto:shepilov.v@protonmail.com">shepilov.v@protonmail.com</a>></li>
|
||||
<li>Kevin Khao <<a class="reference external" href="mailto:kevin.khao@akretion.com">kevin.khao@akretion.com</a>></li>
|
||||
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
|
||||
<li>David Vidal</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="maintainers">
|
||||
|
@ -461,7 +465,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
|
|||
<p>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.</p>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_notify">OCA/web</a> project on GitHub.</p>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_notify">OCA/web</a> project on GitHub.</p>
|
||||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 211 KiB |
Binary file not shown.
Before Width: | Height: | Size: 56 KiB |
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 55 KiB |
|
@ -0,0 +1,12 @@
|
|||
/** @odoo-module */
|
||||
import {Notification} from "@web/core/notifications/notification";
|
||||
import {patch} from "web.utils";
|
||||
|
||||
patch(Notification.props, "webNotifyProps", {
|
||||
type: {
|
||||
type: String,
|
||||
optional: true,
|
||||
validate: (t) =>
|
||||
["warning", "danger", "success", "info", "default"].includes(t),
|
||||
},
|
||||
});
|
|
@ -1,14 +0,0 @@
|
|||
odoo.define("web_notify.Notification", function (require) {
|
||||
"use strict";
|
||||
const {Notification} = require("@web/core/notifications/notification");
|
||||
const {patch} = require("web.utils");
|
||||
|
||||
patch(Notification.props, "webNotifyProps", {
|
||||
type: {
|
||||
type: String,
|
||||
optional: true,
|
||||
validate: (t) =>
|
||||
["warning", "danger", "success", "info", "default"].includes(t),
|
||||
},
|
||||
});
|
||||
});
|
|
@ -0,0 +1,45 @@
|
|||
/** @odoo-module **/
|
||||
import {browser} from "@web/core/browser/browser";
|
||||
import {registry} from "@web/core/registry";
|
||||
|
||||
export const webNotificationService = {
|
||||
dependencies: ["notification"],
|
||||
|
||||
start(env, {notification}) {
|
||||
let webNotifTimeouts = {};
|
||||
/**
|
||||
* Displays the web notification on user's screen
|
||||
*/
|
||||
|
||||
function displaywebNotification(notifications) {
|
||||
Object.values(webNotifTimeouts).forEach((notif) =>
|
||||
browser.clearTimeout(notif)
|
||||
);
|
||||
webNotifTimeouts = {};
|
||||
|
||||
notifications.forEach(function (notif) {
|
||||
browser.setTimeout(function () {
|
||||
notification.add(notif.message, {
|
||||
title: notif.title,
|
||||
type: notif.type,
|
||||
sticky: notif.sticky,
|
||||
className: notif.className,
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
env.bus.on("WEB_CLIENT_READY", null, async () => {
|
||||
const legacyEnv = owl.Component.env;
|
||||
legacyEnv.services.bus_service.onNotification(this, (notifications) => {
|
||||
for (const {payload, type} of notifications) {
|
||||
if (type === "web.notify") {
|
||||
displaywebNotification(payload);
|
||||
}
|
||||
}
|
||||
});
|
||||
legacyEnv.services.bus_service.startPolling();
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
registry.category("services").add("webNotification", webNotificationService);
|
|
@ -1,47 +0,0 @@
|
|||
odoo.define("web_notify.NotificationService", function (require) {
|
||||
"use strict";
|
||||
const {browser} = require("@web/core/browser/browser");
|
||||
const {registry} = require("@web/core/registry");
|
||||
|
||||
const webNotificationService = {
|
||||
dependencies: ["notification"],
|
||||
|
||||
start(env, {notification}) {
|
||||
let webNotifTimeouts = {};
|
||||
/**
|
||||
* Displays the web notification on user's screen
|
||||
*/
|
||||
|
||||
function displaywebNotification(notifications) {
|
||||
Object.values(webNotifTimeouts).forEach((notif) =>
|
||||
browser.clearTimeout(notif)
|
||||
);
|
||||
webNotifTimeouts = {};
|
||||
|
||||
notifications.forEach(function (notif) {
|
||||
browser.setTimeout(function () {
|
||||
notification.add(notif.message, {
|
||||
title: notif.title,
|
||||
type: notif.type,
|
||||
sticky: notif.sticky,
|
||||
className: notif.className,
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
env.bus.on("WEB_CLIENT_READY", null, async () => {
|
||||
const legacyEnv = owl.Component.env;
|
||||
legacyEnv.services.bus_service.onNotification(this, (notifications) => {
|
||||
for (const {payload, type} of notifications) {
|
||||
if (type === "web.notify") {
|
||||
displaywebNotification(payload);
|
||||
}
|
||||
}
|
||||
});
|
||||
legacyEnv.services.bus_service.startPolling();
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
registry.category("services").add("webNotification", webNotificationService);
|
||||
});
|
Loading…
Reference in New Issue