Skip to main content

A notifications library for Djangonauts that support email, sms and push.

Project description

Django Magic Notifier

travis django-magic-notifier coverage django-magic-notifier Pypi current version Documentation PRs welcome Python versions Django versions

Why Django Magic Notifier

Sending notifications in Django has always been a complex subject. Django Magic Notifier solves this by providing only one function notify(). The library [will] support sending notifications via email, sms and push notifications.

Documentation

Full documentation

Features

  • Send emails
  • Send sms, TWILIO support
  • Send push notifications
  • Support templates
  • Simple API
  • Support files
  • Support multiple gateways
  • Extensible

Installation

$pip install --upgrade django-magic-notifier

Usage

1. Configure settings

If you have already configured SMTP EMAIL SETTINGS in django settings then can ignore this step. Else add a NOTIFIER dict in your settings like this

NOTIFIER = {
    "EMAIL": {
        "default": {
            "HOST": "localhost",
            "PORT": 587,
            "USE_TLS": True,
            "USE_SSL": False,
            "USER": "root@localhost",
            "FROM": "Root <root@localhost>",
            "PASSWORD": "********",
            "CLIENT": "magic_notifier.email_clients.django_email.DjangoEmailClient",
        }
    },
    "USER_FROM_WS_TOKEN_FUNCTION": 'magic_notifier.utils.get_user_from_ws_token'
}
2. Create templates

Create a folder named notifier in one of app's templates dir. In this folder create another folder named base then created your base templates in this folder. Example

app_name/templates/notifier/base/email.html

    {% extends "base_notifier/email.html" %}

app_name/templates/notifier/base/email.txt

    {% extends "base_notifier/email.txt" %}

app_name/templates/notifier/hello/email.html

    {% extends "notifier/base/email.html" %}
    {% block content %}
    <tr>
        <td><p>Hello {{ user.email }}
        </td>
    </tr>
    {% endblock %}

app_name/templates/notifier/hello/email.txt

    {% extends "notifier/hello/email.txt" %}
    {% block content %}
    >Hello {{ user.email }}
    {% endblock %}

As you can see, the user to whom the notification goes is automatically added in the template's context. To avoid any clash to don't send the key 'user' in the context of the notifiy() function presented below.

Note that it is DMN (Django Magic Notifier) that has the base_notifier template.

3. Send notifications

To send a notification via email do

    from magic_notifier.notifier import notify

    # send an email from direct string
    user = User(email="testuser@localhost", username="testuser")
    subject = "Test magic notifier"
    notify(["email"], subject, [user], final_message="Nice if you get this")

    # send an email from a template
    user = User(email="testuser@localhost", username="testuser")
    subject = "Test magic notifier"
    notify(["email"], subject, [user], template='hello')
    
    # send a sms from a template
    user = User(email="testuser@localhost", username="testuser")
    subject = "Test magic notifier"
    notify(["sms"], subject, [user], template='hello')
    
    # send a notification via email and sms from a template
    user = User(email="testuser@localhost", username="testuser")
    subject = "Test magic notifier"
    notify(["email", "sms"], subject, [user], template='hello')

Docs and support

Coming

Roadmap

  • Generate full documentation
  • Translate documentation

Contributing

Contribution are welcome.

License

As per the license, feel free to use the library as you want.

Project details


Download files

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

Source Distribution

django-magic-notifier-0.1.7.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

django_magic_notifier-0.1.7-py2.py3-none-any.whl (21.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-magic-notifier-0.1.7.tar.gz.

File metadata

  • Download URL: django-magic-notifier-0.1.7.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for django-magic-notifier-0.1.7.tar.gz
Algorithm Hash digest
SHA256 14d2e27b1a6e03c1cd22504a054984f60bff2a43cc552bc00ba499cac65bff44
MD5 4b9258fb8589383ba5eb49e38184a58a
BLAKE2b-256 b6f97f6c0c651e915406beb1de6141755f1ef1199f2ddad9dc0013c2f4706a64

See more details on using hashes here.

File details

Details for the file django_magic_notifier-0.1.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_magic_notifier-0.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4bf53ec1a21f30244a44a60899c704ebe4370d081ce7c8b4806eb2c0ead48715
MD5 55f9ab1aba79cbf625af5248dca8c0af
BLAKE2b-256 bc5e0745b08d4914db76c0a13fbe0eb5768dcd7dbff3f76a13cec722aab95249

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