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
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
Built Distribution
File details
Details for the file django-magic-notifier-0.0.12.tar.gz
.
File metadata
- Download URL: django-magic-notifier-0.0.12.tar.gz
- Upload date:
- Size: 12.2 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | acbb766ee73744dfbbf8551f6248899c0e30d2b0939ded8f5eb5c9c05db74110 |
|
MD5 | 9a3118ce61e3e12e214f4e48fab67cef |
|
BLAKE2b-256 | 89771c6d05327a1a16397963d4e730acbacc8ae7626efe97dedc23d1870e38d1 |
File details
Details for the file django_magic_notifier-0.0.12-py2.py3-none-any.whl
.
File metadata
- Download URL: django_magic_notifier-0.0.12-py2.py3-none-any.whl
- Upload date:
- Size: 31.3 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e33f045eec60ec7eda6a5026417a13d00ca197c6af2c6fcc78d4aa5e58a8252 |
|
MD5 | d1f649475af5f7484c2643308c468ce7 |
|
BLAKE2b-256 | 83b76078c7b114bbc0db79f41e1547baf91ed171b0c4caa3cbaf4c13056d81fa |