Files
gzth/yuthon_base/models/mail_thread.py
T
2026-05-08 11:16:21 +08:00

44 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
# from odoo import models
# import json
#
#
# class MailThread(models.AbstractModel):
# _inherit = "mail.thread"
#
# def _notify_by_web_push(self, message, recipients_data, msg_vals=False):
# """
# 重写 Web Push 通知方法,强制使用异步发送方式,
# 避免同步发送导致的请求阻塞问题(如加班审批转交按钮反应慢)。
# """
# msg_vals = dict(msg_vals or {})
# partner_ids = self._extract_partner_ids_for_notifications(message, msg_vals, recipients_data)
# if not partner_ids:
# return
#
# partner_devices_sudo = self.env['mail.partner.device'].sudo()
# devices = partner_devices_sudo.search([
# ('partner_id', 'in', partner_ids)
# ])
# if not devices:
# return
#
# ir_parameter_sudo = self.env['ir.config_parameter'].sudo()
# vapid_private_key = ir_parameter_sudo.get_param('mail.web_push_vapid_private_key')
# vapid_public_key = ir_parameter_sudo.get_param('mail.web_push_vapid_public_key')
# if not vapid_private_key or not vapid_public_key:
# return
#
# payload = self._notify_by_web_push_prepare_payload(message, msg_vals=msg_vals)
# payload = self._truncate_payload(payload)
#
# # 强制使用异步发送方式
# # 不再同步调用 push_to_end_point,避免阻塞请求
# self.env['mail.notification.web.push'].sudo().create([{
# 'user_device': device.id,
# 'payload': json.dumps(payload),
# } for device in devices])
# self.env.ref('mail.ir_cron_web_push_notification')._trigger()