mapan_loyalty_push/wizard/push_wizard.py
2026-03-21 15:21:52 +07:00

36 lines
1.2 KiB
Python

from odoo import models, fields, api
from odoo.exceptions import UserError
class PushNotificationWizard(models.TransientModel):
_name = 'mapan.push.wizard'
_description = 'Send Mobile App Notification'
title = fields.Char(string='Notification Title', required=True)
body = fields.Text(string='Notification Body', required=True)
partner_ids = fields.Many2many(
'res.partner',
string='Recipients'
)
def action_send_push(self):
# Create the notification record in the DB instead of calling Firebase
self.env['mapan.app.notification'].create({
'title': self.title,
'body': self.body,
'partner_ids': [(6, 0, self.partner_ids.ids)]
})
recipient_count = len(self.partner_ids)
target_msg = f"{recipient_count} selected partners" if recipient_count > 0 else "all app users"
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': 'App Notification Dispatched',
'message': f'Message successfully staged for {target_msg}!',
'type': 'success',
'sticky': False,
}
}