Skip to main content

A Django app to send push notifications to users.

Project description

Mad Notifications

Mad Notifications app for django to send notifications to the user

Quick start

  1. Add "mad_notifications" to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = [
        ...
        'mad_notifications',
    ]
    
  2. Include the notifications URLconf in your project urls.py like this:

    path('notifications/', include('mad_notifications.api.urls')),
    
  3. Run python manage.py migrate to create the notifications models.

Usage

Shorthand method

from mad_notifications.shorthand import newNotification
# create and send
return newNotification(
    user=user, # django user object
    title="", # string
    content="", # string
    template_slug = None, # string - slug from mad_notification.NotificationTemplate
    data = {}, # dict
    actions = {} # dict
)

Notification Class

from mad_notifications.notification import Notification
# create a notification
notification = Notification(
    user = user,
    title = "New Order",
    content = "You have a new order!",
    data = {
        'order': order_data,
    },
    actions = {
        'click_action': "ORDER_SCREEN"
    },
    template = email_template, # mad_notification.NotificationTemplate Object
)
# send the notification
notification.notify()

Overriding default

MAD_NOTIFICATIONS_USER_NOTIFICATION_CONFIG_MODEL = "mad_notifications.UserNotificationConfig"
MAD_NOTIFICATIONS_NOTIFICATION_MODEL = "mad_notifications.Notification"
MAD_NOTIFICATIONS_TEMPLATE_MODEL = "mad_notifications.NotificationTemplate"
MAD_NOTIFICATIONS_DEVICE_MODEL = "mad_notifications.Device"
MAD_NOTIFICATIONS_DEFAULT_SMS_PROVIDER = "Twilio" # valid values "Twilio" / "Telnyx"

TWILIO_ACCOUNT_SID = ""
TWILIO_ACCOUNT_AUTH_TOKEN = ""
TWILIO_ACCOUNT_PHONE_NUMBER = ""

TELNYX_API_KEY = ""
TELNYX_MESSAGING_PROFILE = ""
TELNYX_FROM_PHONE_NUMBER = ""


MAD_NOTIFICATIONS = {
    "FIREBASE_MOBILE_PUSH_NOTIFICATION_CLASS": "mad_notifications.senders.firebase.FirebaseMobilePushNotification",
    "EMAIL_NOTIFICATION_CLASS": "mad_notifications.senders.email.EmailNotification",

    "TWILIO_NOTIFICATION_CLASS": "mad_notifications.senders.twilio.TwilioNotification",
    "TELNYX_NOTIFICATION_CLASS": "mad_notifications.senders.telnyx.TelnyxNotification",

    # User config
    "USER_NOTIFICATION_CONFIG_ADMIN_CLASS": "mad_notifications.admin.UserNotificationConfigAdmin",
    # Notification Templates
    "NOTIFICATION_TEMPLATE_ADMIN_CLASS": "mad_notifications.admin.NotificationTemplateAdmin",
    # Device
    "DEVICE_ADMIN_CLASS": "mad_notifications.admin.DeviceAdmin",
    "NOTIFICATION_ADMIN_CLASS": "mad_notifications.admin.NotificationAdmin",
}

Developer Guide

Setting up a new provider

Create logic in ~/senders/PROVIDER.py and call via tasks in ~/notify/PROVIDER.py

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mad_notifications-5.1.1.tar.gz (14.8 kB view details)

Uploaded Source

File details

Details for the file mad_notifications-5.1.1.tar.gz.

File metadata

  • Download URL: mad_notifications-5.1.1.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for mad_notifications-5.1.1.tar.gz
Algorithm Hash digest
SHA256 beb1279bf32b82a8dd34bf094ce647166aa63dbaa65598b4ae4c3fa1dc48a9fa
MD5 5790990753e27f8818514c99f0b66434
BLAKE2b-256 0baff6e938eb116ce86e80c9696fc2c880dcab41d262121b59ff5b3f45572f16

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page