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 <https://www.python.org/dev/peps/pep-0008/>`_ 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
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 <https://www.python.org/dev/peps/pep-0008/>`_ 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
unicef_notification-0.2.1.tar.gz
(16.8 kB
view details)
File details
Details for the file unicef_notification-0.2.1.tar.gz
.
File metadata
- Download URL: unicef_notification-0.2.1.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a11cc3faadb75421f7b7e0f76d6696e604e8c1872411c4066833b6413932518f |
|
MD5 | 8e703429a80a3d4d243132575517f342 |
|
BLAKE2b-256 | 35af77b5d12a9c2c0e3ea9c1b100c4cebac885ec859ddf28c5c96098f781fc9a |