mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-24 03:42:09 +02:00
19.0 vanilla
This commit is contained in:
parent
5df8c07b59
commit
daa394e8b0
2114 changed files with 564841 additions and 299642 deletions
|
|
@ -4,7 +4,7 @@
|
|||
from odoo import api, models
|
||||
|
||||
|
||||
class AlarmManager(models.AbstractModel):
|
||||
class CalendarAlarm_Manager(models.AbstractModel):
|
||||
_inherit = 'calendar.alarm_manager'
|
||||
|
||||
@api.model
|
||||
|
|
@ -21,3 +21,4 @@ class AlarmManager(models.AbstractModel):
|
|||
alarm = self.env['calendar.alarm'].browse(alarm_id).with_prefetch(list(events_by_alarm.keys()))
|
||||
events = self.env['calendar.event'].browse(event_ids).with_prefetch(all_events_ids)
|
||||
events._do_sms_reminder(alarm)
|
||||
events._setup_event_recurrent_alarms(events_by_alarm)
|
||||
|
|
|
|||
|
|
@ -4,31 +4,33 @@
|
|||
from odoo import models, _
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class CalendarEvent(models.Model):
|
||||
_inherit = 'calendar.event'
|
||||
|
||||
def _sms_get_default_partners(self):
|
||||
""" Method overridden from mail.thread (defined in the sms module).
|
||||
SMS text messages will be sent to attendees that haven't declined the event(s).
|
||||
"""
|
||||
return self.mapped('attendee_ids').filtered(lambda att: att.state != 'declined' and att.partner_id.phone_sanitized).mapped('partner_id')
|
||||
|
||||
def _do_sms_reminder(self, alarm):
|
||||
def _do_sms_reminder(self, alarms):
|
||||
""" Send an SMS text reminder to attendees that haven't declined the event """
|
||||
for event in self:
|
||||
event._message_sms_with_template(
|
||||
template=alarm.sms_template_id,
|
||||
template_fallback=_("Event reminder: %(name)s, %(time)s.", name=event.name, time=event.display_time),
|
||||
partner_ids=event._sms_get_default_partners().ids,
|
||||
put_in_queue=False
|
||||
)
|
||||
declined_partners = event.attendee_ids.filtered_domain([('state', '=', 'declined')]).partner_id
|
||||
for alarm in alarms:
|
||||
partners = event._mail_get_partners()[event.id].filtered(
|
||||
lambda partner: partner.phone_sanitized and partner not in declined_partners
|
||||
)
|
||||
if event.user_id and not alarm.notify_responsible:
|
||||
partners -= event.user_id.partner_id
|
||||
event._message_sms_with_template(
|
||||
template=alarm.sms_template_id,
|
||||
template_fallback=_("Event reminder: %(name)s, %(time)s.", name=event.name, time=event.display_time),
|
||||
partner_ids=partners.ids,
|
||||
put_in_queue=False
|
||||
)
|
||||
|
||||
def action_send_sms(self):
|
||||
if not self.partner_ids:
|
||||
raise UserError(_("There are no attendees on these events"))
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': _("Send SMS Text Message"),
|
||||
'name': _("Send SMS"),
|
||||
'res_model': 'sms.composer',
|
||||
'view_mode': 'form',
|
||||
'target': 'new',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue