Includes: - Odoo 19 framework (odoo/) - 27 custom EnCoach addons (new_project/custom_addons/) - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media - encoach_courseware, encoach_communication, encoach_subscription - encoach_notification, encoach_approval, encoach_branding - encoach_classroom, encoach_registration, encoach_stats - encoach_faq, encoach_ticket, encoach_training, encoach_resources - encoach_adaptive_ai, encoach_sis - 21 OpenEduCat Enterprise modules (new_project/enterprise-19/) - 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/) - Configuration: odoo.conf, requirements.txt, scripts - 200+ REST API endpoints with JWT authentication - SRS and test documentation Made-with: Cursor
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models
|
|
|
|
|
|
class MailFollowers(models.Model):
|
|
_inherit = 'mail.followers'
|
|
|
|
def _get_recipient_data(self, records, message_type, subtype_id, pids=None):
|
|
recipients_data = super()._get_recipient_data(records, message_type, subtype_id, pids=pids)
|
|
if message_type != 'sms' or not (pids or records):
|
|
return recipients_data
|
|
|
|
if pids is None and records:
|
|
records_pids = dict(
|
|
(rec_id, partners.ids)
|
|
for rec_id, partners in records._mail_get_partners().items()
|
|
)
|
|
elif pids and records:
|
|
records_pids = dict((record.id, pids) for record in records)
|
|
else:
|
|
records_pids = {0: pids if pids else []}
|
|
for rid, rdata in recipients_data.items():
|
|
sms_pids = records_pids.get(rid) or []
|
|
for pid, pdata in rdata.items():
|
|
if pid in sms_pids:
|
|
pdata['notif'] = 'sms'
|
|
return recipients_data
|