Creating custom notifications

AI-generated summary

Creating Custom Notifications

ririan is trying to create a custom notification in their plugin, but the notification is displaying as ‘undefined’. joebuhlig suggests two possible causes: the Notification type not being defined, or the I18n text not being defined in client.en.yml. However, since ririan is using the custom notification type (14), the issue is likely with the I18n text. joebuhlig also recommends sending a private message with more details, providing an example of how to do this using PostCreator.create. ririan finds this suggestion helpful and considers using private messages instead.

Hi!

I want to create a custom notification when something happens in my plugin. I can see there is a custom notification type but I’m unsure about how to use it.

Something like:

data = {title: 'some custom event happened'}
Notification.create!(user_id: 1, notification_type: 14, data: data.to_json)

I can create them but they show ‘undefined’:

Can someone please point me in the right direction? Any help much appreciated…

My first guess is that you haven’t defined the Notification type and throws an undefined error somewhere:

Guess #2 is that the I18n text hasn’t been defined in client.en.yml.

Depending on what you want to share with the user, I’ve found it’s sometimes better to send a PM and then spell out what happened in more detail.

PostCreator.create(
    Discourse.system_user,
    target_usernames: new_user.username,
    archetype: Archetype.private_message,
    subtype: TopicSubtype.system_message,
    title: I18n.t('translations.location'}),
    raw: I18n.t('translations.location'})
)

Edit: Just realized there’s a custom notification type (14) which you are using. So #1 is out.

I was thinking a private message would be a good idea also. Thanks for that!