dmn
django-magic-notifier
pypi i django-magic-notifier
dmn

django-magic-notifier

The notifications library for Djangonauts

by jefcolbi

0.1.3 (see all)License:MIT
pypi i django-magic-notifier
Readme

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",
        }
    },
}
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

  • Send sms :tw-2705:
  • Send push notifications
  • Generate full documentation
  • Translate documentation

Contributing

Contribution are welcome.

License

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

GitHub Stars

12

LAST COMMIT

9mos ago

MAINTAINERS

1

CONTRIBUTORS

1

OPEN ISSUES

0

OPEN PRs

0
VersionTagPublished
0.1.3
9mos ago
0.1.2
1yr ago
0.1.1
1yr ago
0.1.0
1yr ago
No alternatives found
No tutorials found
Add a tutorial