Send instant notification messages to the user in live.
This technical module allows you to send instant notification messages from the server to the user in live.
Two kinds of notification are supported.
To send a notification to the user you just need to call one of the new methods defined on res.users:
self.env.user.notify_success(message='My success message')
or
self.env.user.notify_danger(message='My danger message')
or
self.env.user.notify_warning(message='My warning message')
or
self.env.user.notify_info(message='My information message')
or
self.env.user.notify_default(message='My default message')
You can also add sound to your notifications by using the sound parameter. The sound parameter expects a string containing the URL path to the audio file that should be played when the notification is displayed.
Example:
self.env.user.notify_success(message='My success message', sound='/<YOUR_MODULE>/static/audio/success.mp3' )
or
self.env.user.notify_info( message='My information message', sound='/<YOUR_MODULE>/static/audio/info.mp3' )
The sound parameter can be used with any notification type (success, danger, warning, info, or default). If the sound parameter is not provided, the notification will be displayed without any sound.
The notifications can bring interactivity with some buttons.
- One allowing to refresh the active view
- Another allowing to send a window / client action
The reload button is activated when sending the notification with:
The action can be used using the action keyword and we can choose which name to
give to our button with the button_name key in the action context params key:
action = self.env["ir.actions.act_window"]._for_xml_id('sale.action_orders')
action.update({
'res_id': self.id,
'views': [(False, 'form')],
})
action["context"].setdefault("params", {})
action["context"]["params"]["button_name"] = "Sales"
action["context"]["params"]["button_icon"] = "fa-eye"
self.env.user.notify_info('My information message', action=action)
You can test the behaviour of the notifications by installing this module in a demo database.
Access the users form through Settings -> Users & Companies. You’ll see a tab called “Test web notify”, here you’ll find two buttons that’ll allow you test the module.