Skip to main content

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

Project description

Django Magic Notifier

.. image:: https://api.travis-ci.com/jefcolbi/django-magic-notifier.svg?branch=main :target: https://travis-ci.com/github/jefcolbi/django-magic-notifier :alt: Build status on Travis-CI

.. image:: https://coveralls.io/repos/github/jefcolbi/django-magic-notifier/badge.svg?branch=main :target: https://coveralls.io/github/jefcolbi/django-magic-notifier?branch=main :alt: Coverage status on coverage.io

.. image:: https://img.shields.io/pypi/v/django-magic-notifier.svg :target: https://pypi.org/project/django-magic-notifier/ :alt: Current version on PyPi

.. image:: http://readthedocs.org/projects/django-magic-notifier/badge/?version=stable :target: https://django-magic-notifier.readthedocs.io/en/stable/ :alt: Documentation

.. image:: https://img.shields.io/pypi/pyversions/django-magic-notifier :alt: PyPI - Python Version

.. image:: https://img.shields.io/pypi/djversions/django-magic-notifier :alt: PyPI - Django Version

.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat :alt: PR Welcomes

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.

Installation

$pip install --upgrade django-magic-notifier

Features

  • Send emails
  • Email templates

Usage

1. Configure Settings

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

NOTIFIER = {
    "SMTP": {
        "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",
        }
    }
    "THREADED": False,
}

2. Create email 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

core/templates/notifier/base/email.html::

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

core/templates/notifier/base/email.txt::

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

core/templates/notifier/hello/email.html::

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

core/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 use the key 'user' in the notifiy function presented below.

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

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')

Docs and support

Coming

Roadmap

  • [] Send sms
  • [] 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.

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.0.9.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

django_magic_notifier-0.0.9-py2.py3-none-any.whl (27.7 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: django-magic-notifier-0.0.9.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.6.13

File hashes

Hashes for django-magic-notifier-0.0.9.tar.gz
Algorithm Hash digest
SHA256 ee35d624e1991168dfc52050884532a26506c2e5352c96c5776fbf21bc5d1e0d
MD5 3cd0d9ed1765f5909d6df16bde3be6c3
BLAKE2b-256 fc26a5a0de8ce9048f245aef5f6853712ba281b46042a57b693c242f614a122a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_magic_notifier-0.0.9-py2.py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.6.13

File hashes

Hashes for django_magic_notifier-0.0.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 af5a16b3f6e86522e1f28e3ebe18ea3eac8cdf25a3479b44f6a6cfa0e54061d4
MD5 8608313b346a3ba817474e637316ca89
BLAKE2b-256 f3008e1bc7fa79a9369bcce844859cb71d9fbf0b2a8271c39afd6c0abdef906a

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