Django package that handles sending of notifications
Project description
UNICEF Notification
Notification is a library that provides handles sending of notifications.
Installation
pip install unicef-notification
Setup
Add unicef_notification to INSTALLED_APPS in settings:
INSTALLED_APPS = [ ... 'post_office', 'unicef_notification', ]
Add POST_OFFICE configuration to settings:
POST_OFFICE = { 'DEFAULT_PRIORITY': 'now', 'BACKENDS': { 'default': 'djcelery_email.backends.CeleryEmailBackend' } }
Update TEMPLATES in settings by adding EmailTemplateLoader and marking APP_DIRS as False:
TEMPLATES = [ ... 'APP_DIRS': False, # False because we set loaders manually below 'OPTIONS': { 'loaders': [ 'django.template.loaders.app_directories.Loader', 'unicef_notification.loaders.EmailTemplateLoader', ], ... ]
Optional
If you want to override the notification template directory to be used:
UNICEF_NOTIFICATION_TEMPLATE_DIR = 'notifications'
This is the directory where notifcation templates are to be placed in your applications. These are loaded with the upload_notifications management command.
If you want to override the email template prefix:
UNICEF_NOTIFICATION_EMAIL_TEMPLATE_PREFIX = 'email-templates/'
Usage
Create notification template in defined UNICEF_NOTIFICATION_TEMPLATE_DIR from setup:
name = "<unique name for notification"> defaults = { "description": "Sample notification", "subject": "Subject of notification", "content": "Content of notification", "html_content": "Notificaton content in HTML format", }
Update the notifications:
python manage.py update_notifications
Send notification with template:
from unicef_notification.utils import send_notification_with_template context = {} send_notification_with_template( ["to@example.com"], "<name-of-template>", context, )
Send notification without a template:
from unicef_notification.utils import send_notification send_notification( ["to@example.com"], subject="Subject of notification", content="Content of notification", html_content="Notification content in HTML format", )
Contributing
Environment Setup
To install the necessary libraries:
$ make install
Coding Standards
See PEP 8 Style Guide for Python Code for complete details on the coding standards.
To run checks on the code to ensure code is in compliance:
$ make lint
Testing
Testing is important and tests are located in tests/ directory and can be run with:
$ make test
Coverage report is viewable in build/coverage directory, and can be generated with
Project Links
Continuos Integration - https://circleci.com/gh/unicef/unicef-notification/tree/develop
Source Code - https://github.com/unicef/unicef-notification
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
Built Distribution
Hashes for unicef_notification-1.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 001b8624e600e3b7453447f9543e8a331bc18f5bbf6d5198eff95c905258ffc8 |
|
MD5 | 270ff92169b5eda54a96085b1f979279 |
|
BLAKE2b-256 | da36ffa2ec9b2260d4555d37418dc2c398cf9cc45ae79cf57db94bc3bd3965cf |