Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
2
web_notify_channel_message/models/__init__.py
Executable file
2
web_notify_channel_message/models/__init__.py
Executable file
@@ -0,0 +1,2 @@
|
||||
from . import discuss_channel
|
||||
from . import res_users
|
||||
24
web_notify_channel_message/models/discuss_channel.py
Executable file
24
web_notify_channel_message/models/discuss_channel.py
Executable file
@@ -0,0 +1,24 @@
|
||||
# pylint: disable=missing-docstring
|
||||
# Copyright 2023 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import _, models
|
||||
|
||||
|
||||
class DiscussChannel(models.Model):
|
||||
_inherit = "discuss.channel"
|
||||
|
||||
def _notify_message(self, message):
|
||||
for partner in self.channel_partner_ids:
|
||||
users = partner.user_ids
|
||||
for user in users:
|
||||
if user in message.author_id.user_ids:
|
||||
continue
|
||||
user.with_context(_notify_channel_message=True).notify_info(
|
||||
message=_("You have a new message in channel %s") % self.name
|
||||
)
|
||||
|
||||
def message_post(self, *, message_type="notification", **kwargs):
|
||||
message = super().message_post(message_type=message_type, **kwargs)
|
||||
self._notify_message(message)
|
||||
return message
|
||||
38
web_notify_channel_message/models/res_users.py
Executable file
38
web_notify_channel_message/models/res_users.py
Executable file
@@ -0,0 +1,38 @@
|
||||
from odoo import models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = "res.users"
|
||||
|
||||
def _notify_channel(
|
||||
self,
|
||||
type_message="default",
|
||||
message="Default message",
|
||||
title=None,
|
||||
sticky=False,
|
||||
target=None,
|
||||
html=False,
|
||||
action=None,
|
||||
params=None,
|
||||
):
|
||||
if self.env.context.get("_notify_channel_message", False):
|
||||
return super(ResUsers, self.sudo())._notify_channel(
|
||||
type_message=type_message,
|
||||
message=message,
|
||||
title=title,
|
||||
sticky=sticky,
|
||||
target=target,
|
||||
html=html,
|
||||
action=action,
|
||||
params=params,
|
||||
)
|
||||
return super()._notify_channel(
|
||||
type_message=type_message,
|
||||
message=message,
|
||||
title=title,
|
||||
sticky=sticky,
|
||||
target=target,
|
||||
html=html,
|
||||
action=action,
|
||||
params=params,
|
||||
)
|
||||
Reference in New Issue
Block a user