djangoldp_notification | ||
.gitignore | ||
.gitlab-ci.yml | ||
MANIFEST.in | ||
README.md | ||
setup.cfg | ||
setup.py |
Synopsis
This module is an add-on for Django REST Framework, based on Django LDP add-on. It serves django models for a notifications component, respecting the Linked Data Platform convention. It aims at enabling people with little development skills to serve their own data, to be used with a LDP application.
Models
Notification
An object representing a notification. A notification has the following fields:
Field | Type | Default | Description |
---|---|---|---|
user |
ForeignKey to User |
User targeted by the notification. | |
author |
LDPUrlField |
ID of the user at the origin of the notification | |
object |
LDPUrlField |
ID of the object which is the subject of the notification | |
type |
CharField |
Short description of the notification | |
summary |
TextField |
Longer description of the notification | |
date |
DateTimeField |
now |
Date of the notification |
unread |
BooleanField |
True |
Indicates that the notification has not been read yet. |
NB: You can access to all the notifications of a User at [host]/users/[id]/inbox
Subscription
An object allowing a User to be notified of any change on a resource or a container. A subscription has the following fields:
Field | Type | Default | Description |
---|---|---|---|
object |
URLField |
ID of the resource or the container to watch | |
inbox |
URLField |
ID of the inbox to notify when the resource or the container change |
Signals
Create notification on subscribed objects
When an object is saved, a notification is created for all the subscriptions related to this object.
Send email when new notification
When a notification is created, an email is sent to the user.
Django commands
This package also bring a few Django managment command. You can use them at the root of your SIB project.
mock_notification
This lets you create mocked notifications. Useful for develpment.
Usage:
python3 manage.py mock_notification [--size <number_of_notifications>]
Will create the number of dummy notifications specified by --size
.
By default, 0.
suppress_old_notifications
Will suppress old notification. This is a maintenance command to prevent the server to blow under the weight of your notifications.
Usage:
python3 manage.py mock_notification [--older <time_period>]
This will erase notification older than the time period specified by
--older
. By default, 72h ago. time_period
is expressed in minutes.
d
, h
and m
suffix are also valid to express periods in days,
hours and minutes.
Examples:
# Default. Will delete notifications older than 72h
python3 manage.py mock_notification
# Default. Will delete notifications older than 10 minutes ago
python3 manage.py mock_notification --older 10
# Default. Will delete notifications older than 10 days ago
python3 manage.py mock_notification --older 10d
# Default. Will delete notifications older than 10 hours ago
python3 manage.py mock_notification --older 10h