Skip to main content

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

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)

Uploaded Source

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

Hashes for unicef_notification-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a11cc3faadb75421f7b7e0f76d6696e604e8c1872411c4066833b6413932518f
MD5 8e703429a80a3d4d243132575517f342
BLAKE2b-256 35af77b5d12a9c2c0e3ea9c1b100c4cebac885ec859ddf28c5c96098f781fc9a

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