From b02d5ce72cfee6ad82763c82c70738f75c7707c2 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Mon, 27 Oct 2025 12:22:24 +0100 Subject: [PATCH] [REV] mail_activity_team: revert obsolete monkey patch Issue fixed in https://github.com/odoo/odoo/pull/215880 --- mail_activity_team/__init__.py | 1 - mail_activity_team/__manifest__.py | 1 - mail_activity_team/hooks.py | 13 ------ mail_activity_team/patch.py | 65 ------------------------------ 4 files changed, 80 deletions(-) delete mode 100644 mail_activity_team/hooks.py delete mode 100644 mail_activity_team/patch.py diff --git a/mail_activity_team/__init__.py b/mail_activity_team/__init__.py index c19ab79ba..9b4296142 100644 --- a/mail_activity_team/__init__.py +++ b/mail_activity_team/__init__.py @@ -1,3 +1,2 @@ -from .hooks import post_load_hook from . import models from . import wizard diff --git a/mail_activity_team/__manifest__.py b/mail_activity_team/__manifest__.py index fa7d444fd..09a562f76 100644 --- a/mail_activity_team/__manifest__.py +++ b/mail_activity_team/__manifest__.py @@ -30,5 +30,4 @@ "mail_activity_team/static/src/models/*", ], }, - "post_load": "post_load_hook", } diff --git a/mail_activity_team/hooks.py b/mail_activity_team/hooks.py deleted file mode 100644 index 4611d85f0..000000000 --- a/mail_activity_team/hooks.py +++ /dev/null @@ -1,13 +0,0 @@ -import logging - -from odoo.addons.mail.models.mail_activity import MailActivity - -from .patch import mail_activity__create - -_logger = logging.getLogger(__name__) - - -def post_load_hook(): - """See patch.py for more info""" - MailActivity.create = mail_activity__create - _logger.info("PATCHED mail's mail.activity create") diff --git a/mail_activity_team/patch.py b/mail_activity_team/patch.py deleted file mode 100644 index e6ae6cfda..000000000 --- a/mail_activity_team/patch.py +++ /dev/null @@ -1,65 +0,0 @@ -from odoo import api, fields - -from odoo.addons.mail.models.mail_activity import MailActivity - - -@api.model_create_multi -def mail_activity__create(self, vals_list): - # Monkeypatch for mail's mail.activity's create method to prevent - # UnboundLocalError: cannot access local variable 'activity' - # where it is not associated with a value - # which occurs when this module creates activities without a user_id. - # Patch below is according to https://github.com/odoo/odoo/pull/197864 - activities = super(MailActivity, self).create(vals_list) - - # find partners related to responsible users, separate readable from unreadable - if any(user != self.env.user for user in activities.user_id): - user_partners = activities.user_id.partner_id - readable_user_partners = user_partners._filtered_access("read") - else: - readable_user_partners = self.env.user.partner_id - - # when creating activities for other: send a notification to assigned user; - if self.env.context.get("mail_activity_quick_update"): - activities_to_notify = self.env["mail.activity"] - else: - activities_to_notify = activities.filtered( - lambda act: act.user_id != self.env.user - ) - if activities_to_notify: - to_sudo = activities_to_notify.filtered( - lambda act: act.user_id.partner_id not in readable_user_partners - ) - other = activities_to_notify - to_sudo - to_sudo.sudo().action_notify() - other.action_notify() - - # subscribe (batch by model and user to speedup) - for model, activity_data in activities._classify_by_model().items(): - per_user = dict() - for activity in activity_data["activities"].filtered(lambda act: act.user_id): - if activity.user_id not in per_user: - per_user[activity.user_id] = [activity.res_id] - else: - per_user[activity.user_id].append(activity.res_id) - for user, res_ids in per_user.items(): - pids = ( - user.partner_id.ids - if user.partner_id in readable_user_partners - else user.sudo().partner_id.ids - ) - self.env[model].browse(res_ids).message_subscribe(partner_ids=pids) - - # send notifications about activity creation - todo_activities = activities.filtered( - lambda act: act.date_deadline <= fields.Date.today() - ) - if todo_activities: - # Monkeypatch start - # activity.user_id._bus_send("mail.activity/updated", - # {"activity_created": True}) - todo_activities.user_id._bus_send( - "mail.activity/updated", {"activity_created": True} - ) - # Monkeypatch end - return activities