django-dans-notifications 1.2.1

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangodansnotifications 1.2.1

Django Dans Notifications












Description
A Django app to handle notifications.
Support for basic notifications, push notifications, and email notifications.
Available on PyPi
Quick start

Install the package via pip:

pip install django-dans-notifications


Add "django_dans_notifications" to your INSTALLED_APPS setting like this:

INSTALLED_APPS = [
...
'django_dans_notifications',
]


Include the URL configs in your project urls.py for the REST API endpoints like this:

path("api/notifications/", include("django_dans_notifications.urls")),



Run python manage.py migrate to update your database schema.


Use the API endpoints, in code or your Django admin portal.


Requirements

Python 3.8 or higher
Django 3.1 or higher
Django Rest Framework

NOTE: not only must you have this installed, you must have set DEFAULT_AUTHENTICATION_CLASSES and DEFAULT_PAGINATION_CLASS in your settings.py to work with the APIs properly. An example config would be:



REST_FRAMEWORK = {
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
"PAGE_SIZE": 20,
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework.authentication.TokenAuthentication",
),
}

Available Settings
Currently all available settings are optional:

TEAM_NAME - Default team name to use for emails, can be added to message context manually as well still.
IN_TEST - Whether running in tests or not. Used to determine whether to actually send email.

Add these to your settings.py file to customize the app's behavior like so:
TEAM_NAME = "My Team"
IN_TEST = True

Features
Models

NotificationEmail: Handles email notifications.
NotificationBasic: Handles basic notifications.
NotificationPush: Handles push notifications.

Managers

NotificationEmailManager: Handles sending and managing email notifications.
NotificationBasicManager: Handles basic notifications.
NotificationPushManager: Handles push notifications.

API ViewSets

NotificationEmailViewSet: API endpoints for email notifications.
NotificationBasicViewSet: API endpoints for basic notifications.
NotificationPushViewSet: API endpoints for push notifications.

Utility Classes

NotificationManager: Exposes common functionality and maintains object permissions.

Methods: get_notifications_push/email/basic/all, mark_notification_basic_read.



Usage
The main way to interact with this app is to create and use the appropriate models and their managers' methods as needed.
Also included is the NotificationManager class to expose some common functionality and maintain object permissions.
Some of its methods currently are:

get_notifications_push/email/basic/all

Enforce object ownership and notification 'direction'


mark_notification_basic_read

You can also interact directly, so for example to send an email notification:
from django_dans_notifications.models.notifications import NotificationEmail

email_notification = NotificationEmail.objects.send_email(
subject="Hello",
template="django-dans-emails/default.html",
sender="sender@example.com",
recipients=["recipient@example.com"],
context={"user": "John Doe"},
file_attachment=None
)

Docs
Model docs.
API docs.
Email Template docs.

https://danielnazarian.com
Copyright 2024 © Daniel Nazarian.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.