From aad28a8cfbf8906b6c994e19ffa906a16a71a30b Mon Sep 17 00:00:00 2001 From: Federico Capoano Date: Sat, 3 Aug 2024 11:56:21 -0400 Subject: [PATCH 1/8] [qa/ci] Reformatted, updated CI, cache pip deps --- .github/workflows/build.yml | 7 +++++-- openwisp_notifications/base/forms.py | 8 +++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b80b49a8..07404263 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,12 +43,15 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + cache: 'pip' + cache-dependency-path: | + **/requirements*.txt - name: Install Dependencies id: deps run: | - sudo apt update - sudo apt-get -qq -y install sqlite3 gdal-bin + sudo apt -qq update + sudo apt -qq -y install sqlite3 gdal-bin pip install -U pip wheel setuptools pip install -U -r requirements-test.txt pip install -U -e . diff --git a/openwisp_notifications/base/forms.py b/openwisp_notifications/base/forms.py index 4b1b91f5..b2bc6add 100644 --- a/openwisp_notifications/base/forms.py +++ b/openwisp_notifications/base/forms.py @@ -9,9 +9,11 @@ def __init__(self, *args, **kwargs): if instance: kwargs['initial'] = { 'web': instance.web_notification, - 'email': instance.email_notification - if instance.web_notification - else instance.web_notification, + 'email': ( + instance.email_notification + if instance.web_notification + else instance.web_notification + ), } super().__init__(*args, **kwargs) try: From e0a4f92b8027fb0713a25ee347166adf70cbee9f Mon Sep 17 00:00:00 2001 From: Gagan Deep Date: Sat, 3 Aug 2024 23:09:34 +0530 Subject: [PATCH 2/8] [docs] Restructured Documentation Restructured the documentation in a way that allows it to be included in the Unified Documentation of OpenWISP. For more information see https://github.com/openwisp/openwisp-docs/issues/107. --------- Co-authored-by: Federico Capoano --- README.rst | 1557 +---------------- docs/developer/extending.rst | 363 ++++ docs/developer/index.rst | 16 + docs/developer/installation.rst | 132 ++ docs/developer/utils.rst | 135 ++ ...architecture-v2-openwisp-notifications.png | Bin 0 -> 396446 bytes docs/index.rst | 56 + docs/partials/developer-docs.rst | 12 + docs/user/intro.rst | 17 + docs/user/management-commands.rst | 37 + docs/user/notification-cache.rst | 55 + docs/user/notification-preferences.rst | 53 + docs/user/notification-types.rst | 145 ++ docs/user/rest-api.rst | 189 ++ .../scheduled-deletion-of-notifications.rst | 39 + docs/user/sending-notifications.rst | 133 ++ docs/user/settings.rst | 158 ++ docs/user/web-email-notifications.rst | 56 + pyproject.toml | 4 +- 19 files changed, 1634 insertions(+), 1523 deletions(-) create mode 100644 docs/developer/extending.rst create mode 100644 docs/developer/index.rst create mode 100644 docs/developer/installation.rst create mode 100644 docs/developer/utils.rst create mode 100644 docs/images/architecture-v2-openwisp-notifications.png create mode 100644 docs/index.rst create mode 100644 docs/partials/developer-docs.rst create mode 100644 docs/user/intro.rst create mode 100644 docs/user/management-commands.rst create mode 100644 docs/user/notification-cache.rst create mode 100644 docs/user/notification-preferences.rst create mode 100644 docs/user/notification-types.rst create mode 100644 docs/user/rest-api.rst create mode 100644 docs/user/scheduled-deletion-of-notifications.rst create mode 100644 docs/user/sending-notifications.rst create mode 100644 docs/user/settings.rst create mode 100644 docs/user/web-email-notifications.rst diff --git a/README.rst b/README.rst index dc6139e8..b3594ac9 100644 --- a/README.rst +++ b/README.rst @@ -1,39 +1,38 @@ -====================== OpenWISP Notifications ====================== .. image:: https://github.com/openwisp/openwisp-notifications/workflows/OpenWISP%20CI%20Build/badge.svg?branch=master - :target: https://github.com/openwisp/openwisp-notifications/actions?query=workflow%3A%22OpenWISP+CI+Build%22 - :alt: CI build status + :target: https://github.com/openwisp/openwisp-notifications/actions?query=workflow%3A%22OpenWISP+CI+Build%22 + :alt: CI build status .. image:: https://coveralls.io/repos/github/openwisp/openwisp-notifications/badge.svg?branch=master - :target: https://coveralls.io/github/openwisp/openwisp-notifications?branch=master - :alt: Test Coverage + :target: https://coveralls.io/github/openwisp/openwisp-notifications?branch=master + :alt: Test Coverage .. image:: https://img.shields.io/librariesio/github/openwisp/openwisp-notifications - :target: https://libraries.io/github/openwisp/openwisp-notifications#repository_dependencies - :alt: Dependency monitoring + :target: https://libraries.io/github/openwisp/openwisp-notifications#repository_dependencies + :alt: Dependency monitoring .. image:: https://img.shields.io/gitter/room/nwjs/nw.js.svg - :target: https://gitter.im/openwisp/general - :alt: chat + :target: https://gitter.im/openwisp/general + :alt: chat .. image:: https://badge.fury.io/py/openwisp-notifications.svg - :target: http://badge.fury.io/py/openwisp-notifications - :alt: Pypi Version + :target: http://badge.fury.io/py/openwisp-notifications + :alt: Pypi Version .. image:: https://pepy.tech/badge/openwisp-notifications - :target: https://pepy.tech/project/openwisp-notifications - :alt: downloads + :target: https://pepy.tech/project/openwisp-notifications + :alt: downloads .. image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://pypi.org/project/black/ - :alt: code style: black + :target: https://pypi.org/project/black/ + :alt: code style: black ------------- +---- .. figure:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/notification-demo.gif - :align: center + :align: center **OpenWISP Notifications** provides email and web notifications for `OpenWISP `_. @@ -41,1517 +40,30 @@ OpenWISP Notifications Its main goal is to allow the other OpenWISP modules to notify users about meaningful events that happen in their network. -**For a more complete overview of the OpenWISP modules and architecture**, -see the -`OpenWISP Architecture Overview -`_. - ------------- - -.. contents:: **Table of Contents**: - :backlinks: none - :depth: 3 - ------------- - -Available features ------------------- - -- `Sending notifications <#sending-notifications>`_ -- `Web notifications <#web-notifications>`_ -- `Email notifications <#email-notifications>`_ -- `Notification types <#notification-types>`_ -- `Registering new notification types <#registering--unregistering-notification-types>`_ -- `User notification preferences <#notification-preferences>`_ -- `Silencing notifications for specific objects temporarily or permanently <#silencing-notifications-for-specific-objects-temporarily-or-permanently>`_ -- `Automatic cleanup of old notifications <#scheduled-deletion-of-notifications>`_ -- `Configurable host for API endpoints <#openwisp_notifications_host>`_ - -Installation instructions -------------------------- - -Install stable version from pypi -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Install from pypi: - -.. code-block:: shell - - pip install openwisp-notifications - -Install development version -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Install tarball: - -.. code-block:: shell - - pip install https://github.com/openwisp/openwisp-notifications/tarball/master - -Alternatively, you can install via pip using git: - -.. code-block:: shell - - pip install -e git+git://github.com/openwisp/openwisp-notifications#egg=openwisp_notifications - -Installing for development -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We use Redis as celery broker (you can use a different broker if you want). -The recommended way for development is running it using Docker so you will need to -`install docker and docker-compose `_ beforehand. - -In case you prefer not to use Docker you can -`install Redis from your repositories `_, but keep in mind that -the version packaged by your distribution may be different. - -Install SQLite: - -.. code-block:: shell - - sudo apt install sqlite3 libsqlite3-dev openssl libssl-dev - -Fork and clone the forked repository: - -.. code-block:: shell - - git clone git://github.com//openwisp-notifications - -Navigate into the cloned repository: - -.. code-block:: shell - - cd openwisp-notifications/ - -Setup and activate a virtual-environment. (we'll be using `virtualenv `_) - -.. code-block:: shell - - python -m virtualenv env - source env/bin/activate - -Upgrade the following base python packages: - -.. code-block:: shell - - pip install -U pip wheel setuptools - -Install development dependencies: - -.. code-block:: shell - - pip install -e . - pip install -r requirements-test.txt - npm install -g jslint stylelint - -Start Redis using docker-compose: - -.. code-block:: shell - - docker-compose up -d - -Create a database: - -.. code-block:: shell - - cd tests/ - ./manage.py migrate - ./manage.py createsuperuser - -Launch the development server: - -.. code-block:: shell - - ./manage.py runserver - -You can access the admin interface at http://127.0.0.1:8000/admin/. - -Run celery worker (separate terminal window is needed): - -.. code-block:: shell - - # (cd tests) - celery -A openwisp2 worker -l info - -Run tests with: - -.. code-block:: shell - - # run qa checks - ./run-qa-checks - - # standard tests - ./runtests.py - - # tests for the sample app - SAMPLE_APP=1 ./runtests.py - - # If you running tests on PROD environment - ./runtests.py --exclude skip_prod - -When running the last line of the previous example, the environment variable ``SAMPLE_APP`` activates -the sample app in ``/tests/openwisp2/`` which is a simple django app that extends ``openwisp-notifications`` -with the sole purpose of testing its extensibility, for more information regarding this concept, -read the following section. - -Setup (integrate into an existing Django project) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``INSTALLED_APPS`` in ``settings.py`` should look like the following: - -.. code-block:: python - - INSTALLED_APPS = [ - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'django.contrib.sites', - 'django_extensions', - 'allauth', - 'allauth.account', - 'allauth.socialaccount', - # rest framework - 'rest_framework', - 'rest_framework.authtoken', - 'drf_yasg', - 'django_filters', - 'openwisp_users', - # notifications module - 'openwisp_notifications', - # add openwisp theme - # (must be loaded here) - 'openwisp_utils.admin_theme', - # admin - 'admin_auto_filters', - 'django.contrib.admin', - # channels - 'channels', - ] - -**Note**: ``openwisp_utils.admin_theme`` and ``django.contrib.admin`` should always -follow ``openwisp_notifications`` in ``INSTALLED_APPS`` as shown in the example above. -It might result in undesired behavior otherwise, e.g. notification bell not being -shown on admin site. - -Add ``notification_api_settings`` context processor: - -.. code-block:: python - - TEMPLATES = [ - { - # ... - 'OPTIONS': { - # ... - 'context_processors': [ - # ... - 'openwisp_notifications.context_processors.notification_api_settings', - # ... - ], - }, - }, - ] - -``urls.py``: - -.. code-block:: python - - from django.contrib import admin - from django.urls import include, path - from django.contrib.staticfiles.urls import staticfiles_urlpatterns - - urlpatterns = [ - path('admin/', admin.site.urls), - path('api/v1/', include(('openwisp_users.api.urls', 'users'), namespace='users')), - path('', include('openwisp_notifications.urls', namespace='notifications')), - ] - - urlpatterns += staticfiles_urlpatterns() - -Add routes for websockets: - -.. code-block:: python - - # In yourproject/asgi.py - from channels.auth import AuthMiddlewareStack - from channels.routing import ProtocolTypeRouter, URLRouter - from django.core.asgi import get_asgi_application - from openwisp_notifications.websockets.routing import get_routes - - application = ProtocolTypeRouter( - {'websocket': AuthMiddlewareStack(URLRouter(get_routes()))} - ) - -Configure caching (you may use a different cache storage if you want): - -.. code-block:: python - - CACHES = { - 'default': { - 'BACKEND': 'django_redis.cache.RedisCache', - 'LOCATION': 'redis://localhost/0', - 'OPTIONS': { - 'CLIENT_CLASS': 'django_redis.client.DefaultClient', - } - } - } - - SESSION_ENGINE = 'django.contrib.sessions.backends.cache' - SESSION_CACHE_ALIAS = 'default' - -Configure celery: - -.. code-block:: python - - # Here we are showing how to configure celery with Redis but you can - # use other brokers if you want, consult the celery docs - CELERY_BROKER_URL = 'redis://localhost/1' - -Configure celery beat: - -.. code-block:: python - - CELERY_BEAT_SCHEDULE = { - 'delete_old_notifications': { - 'task': 'openwisp_notifications.tasks.delete_old_notifications', - 'schedule': timedelta(days=1), - 'args': (90,), - }, - } - -**Note**: You will only need to add ``CELERY_BEAT_SCHEDULE`` setting if you want -automatic deletion of old notifications. Please read -`Scheduled deletion of notifications <#scheduled-deletion-of-notifications>`_ -section to learn more about this feature. - -If you decide to use redis (as shown in these examples), make sure the python -dependencies are installed in your system: - -.. code-block:: shell - - pip install redis django-redis - -Configure ``ASGI_APPLICATION``: - -.. code-block:: python - - ASGI_APPLICATION = 'yourproject.asgi.application' - -Configure channel layers (you may use a `different channel layer `_): - -.. code-block:: python - - CHANNEL_LAYERS = { - 'default': { - 'BACKEND': 'channels_redis.core.RedisChannelLayer', - 'CONFIG': { - 'hosts': ['redis://localhost/7'], - }, - }, - } - -While development, you can configure it to localhost as shown below: - -.. code-block:: python - - INTERNAL_IPS = ['127.0.0.1'] - -Run migrations - -.. code-block:: shell - - ./manage.py migrate - -**Note**: Running migrations is also required for creating `notification settings <#notification-preferences>`_ -apart from creating database schema. - -Sending notifications ---------------------- - -Notifications can be created using the ``notify`` signal. Eg: - -.. code-block:: python - - from django.contrib.auth import get_user_model - from swapper import load_model - - from openwisp_notifications.signals import notify - - User = get_user_model() - Group = load_model('openwisp_users', 'Group') - admin = User.objects.get(email='admin@admin.com') - operators = Group.objects.get(name='Operator') - - notify.send( - sender=admin, - recipient=operators, - description="Test Notification", - verb="Test Notification", - email_subject='Test Email Subject', - url='https://localhost:8000/admin', - ) - -The above code snippet creates and sends a notification to all users belonging to the ``Operators`` -group if they have opted-in to receive notifications. Non-superusers receive notifications -only for organizations which they are a member of. - -**Note**: If recipient is not provided, it defaults to all superusers. If the target is provided, users -of same organization of the target object are added to the list of recipients given that they have staff -status and opted-in to receive notifications. - -The complete syntax for ``notify`` is: - -.. code-block:: python - - notify.send( - actor, - recipient, - verb, - action_object, - target, - level, - description, - **kwargs - ) - -**Note**: Since ``openwisp-notifications`` uses ``django-notifications`` under the hood, usage of the -``notify signal`` has been kept unaffected to maintain consistency with ``django-notifications``. -You can learn more about accepted parameters from `django-notifications documentation -`_. - -Additional ``notify`` keyword arguments -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -+-------------------+-------------------------------------------------------------------+ -| **Parameter** | **Description** | -+-------------------+-------------------------------------------------------------------+ -| ``email_subject`` | Sets subject of email notification to be sent. | -| | | -| | Defaults to the notification message. | -+-------------------+-------------------------------------------------------------------+ -| ``url`` | Adds a URL in the email text, eg: | -| | | -| | ``For more information see .`` | -| | | -| | Defaults to ``None``, meaning the above message would | -| | not be added to the email text. | -+-------------------+-------------------------------------------------------------------+ -| ``type`` | Set values of other parameters based on registered | -| | `notification types <#notification-types>`_ | -| | | -| | Defaults to ``None`` meaning you need to provide other arguments. | -+-------------------+-------------------------------------------------------------------+ - -Web Notifications ------------------ - -*Openwisp Notifications* send a web notification to the recipients through -django's admin site. Following are the components which allows browsing -web notifications: - -Notification Widget -~~~~~~~~~~~~~~~~~~~ - -.. figure:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/notification-widget.gif - :align: center - -A javascript widget has been added to make consuming notifications easy for users. -The notification widget provides following features: - -- A minimalistic UI to help getting things done quickly. -- Dynamically loading notifications with infinite scrolling to prevent unnecessary - network requests. -- Option to filter unread notifications. -- Option to mark all notifications as read on a single click. - -Notification Toasts -~~~~~~~~~~~~~~~~~~~ - -.. figure:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/notification-toast.gif - :align: center - -A notification toast delivers notifications at real-time. This allows -users to read notifications without even opening the notification widget. -A notification bell is also played to alert each time a notification is -displayed through notification toast. - -Email Notifications -------------------- - -.. figure:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/email-template.png - -Along with web notifications *OpenWISP Notifications* also sends email notifications -leveraging the `openwisp-utils send_email feature -`_. - - -Notification Cache ------------------- - -In a typical OpenWISP installation, ``actor``, ``action_object`` and ``target`` objects are same -for a number of notifications. To optimize database queries, these objects are cached using -`Django's cache framework `_. -The cached values are updated automatically to reflect actual data from database. You can control -the duration of caching these objects using -`OPENWISP_NOTIFICATIONS_CACHE_TIMEOUT setting <#OPENWISP_NOTIFICATIONS_CACHE_TIMEOUT>`_. - -Cache invalidation -~~~~~~~~~~~~~~~~~~ - -The function ``register_notification_cache_update`` can be used to register a signal of a model which is being used as an -``actor``, ``action_object`` and ``target`` objects. As these values are cached for the optimization purpose so their cached -values are need to be changed when they are changed. You can register any signal you want which will delete the cached value. -To register a signal you need to include following code in your ``apps.py``. - -.. code-block:: python - - from django.db.models.signals import post_save - from swapper import load_model - - def ready(self): - super().ready() - - # Include lines after this inside - # ready function of you app config class - from openwisp_notifications.handlers import register_notification_cache_update - - model = load_model('app_name', 'model_name') - register_notification_cache_update(model, post_save, dispatch_uid="myapp_mymodel_notification_cache_invalidation") - -**Note**: You need to import ``register_notification_cache_update`` inside the ``ready`` function or -you can define another funtion to register signals which will be called in ``ready`` and then it will be -imported in this function. Also ``dispatch_uid`` is unique identifier of a signal. You can pass any -value you want but it needs to be unique. For more details read `preventing duplicate signals section of Django documentation `_ - -Notification Types ------------------- - -**OpenWISP Notifications** allows defining notification types for -recurring events. Think of a notification type as a template -for notifications. - -``generic_message`` -~~~~~~~~~~~~~~~~~~~ - -.. figure:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/1.1/generic_message.png - :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/1.1/generic_message.png - :align: center - -This module includes a notification type called ``generic_message``. - -This notification type is designed to deliver custom messages in the -user interface for infrequent events or errors that occur during -background operations and cannot be communicated easily to the user -in other ways. - -These messages may require longer explanations and are therefore -displayed in a dialog overlay, as shown in the screenshot above. -This notification type does not send emails. - -The following code example demonstrates how to send a notification -of this type: - -.. code-block:: python - - from openwisp_notifications.signals import notify - notify.send( - type='generic_message', - level='error', - message='An unexpected error happened!', - sender=User.objects.first(), - target=User.objects.last(), - description="""Lorem Ipsum is simply dummy text - of the printing and typesetting industry. - - ### Heading 3 - - Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, - when an unknown printer took a galley of type and scrambled it to make a - type specimen book. - - It has survived not only **five centuries**, but also the leap into - electronic typesetting, remaining essentially unchanged. - - It was popularised in the 1960s with the release of Letraset sheets - containing Lorem Ipsum passages, and more recently with desktop publishing - software like Aldus PageMaker including versions of *Lorem Ipsum*.""" - ) - -Properties of Notification Types -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following properties can be configured for each notification type: - -+------------------------+----------------------------------------------------------------+ -| **Property** | **Description** | -+------------------------+----------------------------------------------------------------+ -| ``level`` | Sets ``level`` attribute of the notification. | -+------------------------+----------------------------------------------------------------+ -| ``verb`` | Sets ``verb`` attribute of the notification. | -+------------------------+----------------------------------------------------------------+ -| ``verbose_name`` | Sets display name of notification type. | -+------------------------+----------------------------------------------------------------+ -| ``message`` | Sets ``message`` attribute of the notification. | -+------------------------+----------------------------------------------------------------+ -| ``email_subject`` | Sets subject of the email notification. | -+------------------------+----------------------------------------------------------------+ -| ``message_template`` | Path to file having template for message of the notification. | -+------------------------+----------------------------------------------------------------+ -| ``email_notification`` | Sets preference for email notifications. Defaults to ``True``. | -+------------------------+----------------------------------------------------------------+ -| ``web_notification`` | Sets preference for web notifications. Defaults to ``True``. | -+------------------------+----------------------------------------------------------------+ -| ``actor_link`` | Overrides the default URL used for the ``actor`` object. | -| | | -| | You can pass a static URL or a dotted path to a callable | -| | which returns the object URL. | -+------------------------+----------------------------------------------------------------+ -| ``action_object_link`` | Overrides the default URL used for the ``action`` object. | -| | | -| | You can pass a static URL or a dotted path to a callable | -| | which returns the object URL. | -+------------------------+----------------------------------------------------------------+ -| ``target_link`` | Overrides the default URL used for the ``target`` object. | -| | | -| | You can pass a static URL or a dotted path to a callable | -| | which returns the object URL. | -+------------------------+----------------------------------------------------------------+ - - -**Note**: It is recommended that a notification type configuration -for recurring events contains either the ``message`` or -``message_template`` properties. If both are present, -``message`` is given preference over ``message_template``. - -If you don't plan on using ``message`` or ``message_template``, -it may be better to use the existing ``generic_message`` type. -However, it's advised to do so only if the event being notified -is infrequent. - -**Note**: The callable for ``actor_link``, ``action_object_link`` and ``target_link`` should -have the following signature: - -.. code-block:: python - - def related_object_link_callable(notification, field, absolute_url=True): - """ - notification: the notification object for which the URL will be created - field: the related object field, any one of "actor", "action_object" or - "target" field of the notification object - absolute_url: boolean to flag if absolute URL should be returned - """ - return 'https://custom.domain.com/custom/url/' - -Defining ``message_template`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can either extend default message template or write your own markdown formatted message template -from scratch. An example to extend default message template is shown below. - -.. code-block:: django - - # In templates/your_notifications/your_message_template.md - {% extends 'openwisp_notifications/default_message.md' %} - {% block body %} - [{{ notification.target }}]({{ notification.target_link }}) has malfunctioned. - {% endblock body %} - -**Note**: You can access all attributes of the notification using ``notification`` variables in your message -template as shown above. Additional attributes ``actor_link``, ``action_link`` and ``target_link`` are -also available for providing hyperlinks to respective object. - -**Note**: After writing code for registering or unregistering notification types, it is recommended to run -database migrations to create `notification settlings <#notification-preferences>`_ for these notification types. - -Registering / Unregistering Notification Types ----------------------------------------------- - -**OpenWISP Notifications** provides registering and unregistering notifications through utility functions -``openwisp_notifications.types.register_notification_type`` and ``openwisp_notifications.types.unregister_notification_type``. -Using these functions you can register or unregister notification types from your code. - -register_notification_type -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This function is used to register a new notification type from your code. - -Syntax: - -.. code-block:: python - - register_notification_type(type_name, type_config, models) - -+---------------+-------------------------------------------------------------+ -| **Parameter** | **Description** | -+---------------+-------------------------------------------------------------+ -| type_name | A ``str`` defining name of the notification type. | -+---------------+-------------------------------------------------------------+ -| type_config | A ``dict`` defining configuration of the notification type. | -+---------------+-------------------------------------------------------------+ -| models | An optional ``list`` of models that can be associated with | -| | the notification type. | -+---------------+-------------------------------------------------------------+ - -An example usage has been shown below. - -.. code-block:: python - - from openwisp_notifications.types import register_notification_type - from django.contrib.auth import get_user_model - - User = get_user_model() - - # Define configuration of your notification type - custom_type = { - 'level': 'info', - 'verb': 'added', - 'verbose_name': 'device added', - 'message': '[{notification.target}]({notification.target_link}) was {notification.verb} at {notification.timestamp}', - 'email_subject' : '[{site.name}] A device has been added', - 'web_notification': True, - 'email_notification': True, - # static URL for the actor object - 'actor': 'https://openwisp.org/admin/config/device', - # URL generation using callable for target object - 'target': 'mymodule.target_object_link' - } - - # Register your custom notification type - register_notification_type('custom_type', custom_type, models=[User]) - -**Note**: It will raise ``ImproperlyConfigured`` exception if a notification type is already registered -with same name(not to be confused with ``verbose_name``). - -**Note**: You can use ``site`` and ``notification`` variables while defining ``message`` and -``email_subject`` configuration of notification type. They refer to objects of -``django.contrib.sites.models.Site`` and ``openwisp_notifications.models.Notification`` respectively. -This allows you to use any of their attributes in your configuration. Similarly to ``message_template``, -``message`` property can also be formatted using markdown. - -unregister_notification_type -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This function is used to unregister a notification type from anywhere in your code. - -Syntax: - -.. code-block:: python - - unregister_notification_type(type_name) - -+---------------+---------------------------------------------------+ -| **Parameter** | **Description** | -+---------------+---------------------------------------------------+ -| type_name | A ``str`` defining name of the notification type. | -+---------------+---------------------------------------------------+ - -An example usage is shown below. - -.. code-block:: python - - from openwisp_notifications.types import unregister_notification_type - - # Unregister previously registered notification type - unregister_notification_type('custom type') - -**Note**: It will raise ``ImproperlyConfigured`` exception if the concerned -notification type is not registered. - -Passing extra data to notifications -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If needed, additional data, not known beforehand, can be included in the notification message. - -A perfect example for this case is an error notification, the error message will vary -depending on what has happened, so we cannot know until the notification is generated. - -Here's how to do it: - -.. code-block:: python - - from openwisp_notifications.types import register_notification_type - - register_notification_type('error_type', { - 'verbose_name': 'Error', - 'level': 'error', - 'verb': 'error', - 'message': 'Error: {error}', - 'email_subject': 'Error subject: {error}', - }) - -Then in the application code: - -.. code-block:: python - - from openwisp_notifications.signals import notify - - try: - operation_which_can_fail() - except Exception as error: - notify.send( - type='error_type', - sender=sender, - error=str(error) - ) - -**Note**: It is recommended that all notification types are registered or -unregistered in ``ready`` method of your Django application's ``AppConfig``. - -Notification Preferences ------------------------- - -.. image:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/notification-settings.png - -*OpenWISP Notifications* allows users to select their preferred way of receiving notifications. -Users can choose from web or email notifications. These settings have been categorized -over notification type and organization, therefore allowing users to only receive notifications -from selected organization or notification type. - -Notification settings are automatically created for all notification types and organizations for all users. -While superusers can add or delete notification settings for everyone, staff users can only modify their -preferred ways for receiving notifications. With provided functionality, users can choose to receive both -web and email notifications or only web notifications. Users can also stop receiving notifications -by disabling both web and email option for a notification setting. - -**Note**: If a user has not configured their email or web preference for a particular notification setting, -then ``email_notification`` or ``web_notification`` option of concerned notification type will be used -respectively. - -Deleting Notification Preferences -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Deleting the notification preferences is an advanced option. Users should turn off web and email -notifications instead of deleting notification preferences. Deleted notification preferences -may be re-created automatically if the system needs it. - -Silencing notifications for specific objects temporarily or permanently ------------------------------------------------------------------------ - -.. image:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/silence-notifications.png - :align: center - -*OpenWISP Notifications* allows users to silence all notifications generated by -specific objects they are not interested in for a desired period of time or even permanently, -while other users will keep receiving notifications normally. - -Using the widget on an object's admin change form, a user can disable all notifications -generated by that object for a day, week, month or permanently. - -**Note**: This feature requires configuring -`"OPENWISP_NOTIFICATIONS_IGNORE_ENABLED_ADMIN" <#openwisp_notifications_ignore_enabled_admin>`_ -to enable the widget in the admin section of the required models. - -Scheduled deletion of notifications ------------------------------------ - -*OpenWISP Notifications* provides a celery task to automatically delete -notifications older than a pre-configured number of days. In order to run this -task periodically, you will need to configure ``CELERY_BEAT_SCHEDULE`` setting as shown -in `setup instructions <#setup-integrate-into-an-existing-django-project>`_. - -The celery task takes only one argument, i.e. number of days. You can provide -any number of days in `args` key while configuring ``CELERY_BEAT_SCHEDULE`` setting. - -E.g., if you want notifications older than 10 days to get deleted automatically, -then configure ``CELERY_BEAT_SCHEDULE`` as follows: - -.. code-block:: python - - CELERY_BEAT_SCHEDULE = { - 'delete_old_notifications': { - 'task': 'openwisp_notifications.tasks.delete_old_notifications', - 'schedule': timedelta(days=1), - 'args': (10,), # Here we have defined 10 instead of 90 as shown in setup instructions - }, - } - -Please refer to `"Periodic Tasks" section of Celery's documentation `_ -to learn more. - -Settings --------- - -``OPENWISP_NOTIFICATIONS_HOST`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -+---------+----------------------------------------+ -| type | ``str`` | -+---------+----------------------------------------+ -| default | Any domain defined in ``ALLOWED_HOST`` | -+---------+----------------------------------------+ - -This setting defines the domain at which API and Web Socket communicate for -working of notification widget. - -**Note**: You don't need to configure this setting if you -don't host your API endpoints on a different sub-domain. - -If your root domain is ``example.com`` and API and Web Socket are hosted at -``api.example.com``, then configure setting as follows: - -.. code-block:: python - - OPENWISP_NOTIFICATIONS_HOST = 'https://api.example.com' - -This feature requires you to allow `CORS `_ -on your server. We use ``django-cors-headers`` module to easily setup CORS headers. -Please refer `django-core-headers' setup documentation `_. - -Configure ``django-cors-headers`` settings as follows: - -.. code-block:: python - - CORS_ALLOW_CREDENTIALS = True - CORS_ORIGIN_WHITELIST = ['https://www.example.com'] - -Configure Django's settings as follows: - -.. code-block:: python - - SESSION_COOKIE_DOMAIN = 'example.com' - CSRF_COOKIE_DOMAIN = 'example.com' - -Please refer to `Django's settings documentation `_ -for more information on ``SESSION_COOKIE_DOMAIN`` and ``CSRF_COOKIE_DOMAIN`` settings. - -``OPENWISP_NOTIFICATIONS_SOUND`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -+---------+-------------------------------------------------------------------------------------------+ -| type | ``str`` | -+---------+-------------------------------------------------------------------------------------------+ -| default | `notification_bell.mp3 `_ | -+---------+-------------------------------------------------------------------------------------------+ - -This setting defines notification sound to be played when notification is received -in real-time on admin site. - -Provide a relative path (hosted on your webserver) to audio file as show below. - -.. code-block:: python - - OPENWISP_NOTIFICATIONS_SOUND = 'your-appname/audio/notification.mp3' - -``OPENWISP_NOTIFICATIONS_CACHE_TIMEOUT`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -+---------+-----------------------------------+ -| type | ``int`` | -+---------+-----------------------------------+ -| default | ``172800`` `(2 days, in seconds)` | -+---------+-----------------------------------+ - -It sets the number of seconds the notification contents should be stored in the cache. -If you want cached notification content to never expire, then set it to ``None``. -Set it to ``0`` if you don't want to store notification contents in cache at all. - -``OPENWISP_NOTIFICATIONS_IGNORE_ENABLED_ADMIN`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -+-----------+-----------+ -| type | ``list`` | -+-----------+-----------+ -| default | [] | -+-----------+-----------+ - -This setting enables the widget which allows users to -`silence notifications for specific objects temporarily or permanently. <#silencing-notifications-for-specific-objects-temporarily-or-permanently>`_ -in the change page of the specified ``ModelAdmin`` classes. - -E.g., if you want to enable the widget for objects of ``openwisp_users.models.User`` -model, then configure the setting as following: - -.. code-block:: python - - OPENWISP_NOTIFICATIONS_IGNORE_ENABLED_ADMIN = ['openwisp_users.admin.UserAdmin'] - -``OPENWISP_NOTIFICATIONS_POPULATE_PREFERENCES_ON_MIGRATE`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -+---------+----------+ -| type | ``bool`` | -+---------+----------+ -| default | ``True`` | -+---------+----------+ - -This setting allows to disable creating `notification preferences <#notification-preferences>`_ -on running migrations. - -``OPENWISP_NOTIFICATIONS_NOTIFICATION_STORM_PREVENTION`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When the system starts creating a lot of notifications because of a -general network outage (e.g.: a power outage, a global misconfiguration), -the notification storm prevention mechanism avoids the constant displaying -of new notification alerts as well as their sound, only the notification -counter will continue updating periodically, although it won't emit any -sound or create any other visual element until the -notification storm is over. - -This setting allows tweaking how this mechanism works. - -The default configuration is as follows: - -.. code-block:: python - - OPENWISP_NOTIFICATIONS_NOTIFICATION_STORM_PREVENTION = { - # Time period for tracking burst of notifications (in seconds) - 'short_term_time_period': 10, - # Number of notifications considered as a notification burst - 'short_term_notification_count': 6, - # Time period for tracking notifications in long time interval (in seconds) - 'long_term_time_period': 180, - # Number of notifications in long time interval to be considered as a notification storm - 'long_term_notification_count': 30, - # Initial time for which notification updates should be skipped (in seconds) - 'initial_backoff': 1, - # Time by which skipping of notification updates should be increased (in seconds) - 'backoff_increment': 1, - # Maximum interval after which the notification widget should get updated (in seconds) - 'max_allowed_backoff': 15, - } - -Exceptions ----------- - -``NotificationRenderException`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - openwisp_notifications.exceptions.NotificationRenderException - -Raised when notification properties(``email`` or ``message``) cannot be rendered from -concerned *notification type*. It sub-classes ``Exception`` class. - -It can be raised due to accessing non-existing keys like missing related objects -in ``email`` or ``message`` setting of concerned *notification type*. - -REST API --------- - -Live documentation -~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/api-docs.png - -A general live API documentation (following the OpenAPI specification) is available at ``/api/v1/docs/``. - -Browsable web interface -~~~~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/openwisp/openwisp-notifications/raw/docs/docs/images/api-ui.png - -Additionally, opening any of the endpoints `listed below <#list-of-endpoints>`_ -directly in the browser will show the `browsable API interface of Django-REST-Framework -`_, -which makes it even easier to find out the details of each endpoint. - -Authentication -~~~~~~~~~~~~~~ - -See openwisp-users: `authenticating with the user token -`_. - -When browsing the API via the `Live documentation <#live-documentation>`_ -or the `Browsable web interface <#browsable-web-interface>`_, you can use -the session authentication by logging in the django admin. - -Pagination -~~~~~~~~~~ - -The *list* endpoint support the ``page_size`` parameter that allows paginating -the results in conjunction with the ``page`` parameter. - -.. code-block:: text - - GET /api/v1/notifications/notification/?page_size=10 - GET /api/v1/notifications/notification/?page_size=10&page=2 - -List of endpoints -~~~~~~~~~~~~~~~~~ - -Since the detailed explanation is contained in the `Live documentation <#live-documentation>`_ -and in the `Browsable web page <#browsable-web-interface>`_ of each endpoint, -here we'll provide just a list of the available endpoints, -for further information please open the URL of the endpoint in your browser. - -List user's notifications -######################### - -.. code-block:: text - - GET /api/v1/notifications/notification/ - -**Available Filters** - -You can filter the list of notifications based on -whether they are read or unread using the ``unread`` parameter. - -To list read notifications: - -.. code-block:: text - - GET /api/v1/notifications/notification/?unread=false - -To list unread notifications: - -.. code-block:: text - - GET /api/v1/notifications/notification/?unread=true - -Mark all user's notifications as read -##################################### - -.. code-block:: text - - POST /api/v1/notifications/notification/read/ - -Get notification details -######################## - -.. code-block:: text - - GET /api/v1/notifications/notification/{pk}/ - -Mark a notification read -######################## - -.. code-block:: text - - PATCH /api/v1/notifications/notification/{pk}/ - -Delete a notification -##################### - -.. code-block:: text - - DELETE /api/v1/notifications/notification/{pk}/ - -List user's notification setting -################################ - -.. code-block:: text - - GET /api/v1/notifications/notification/user-setting/ - -**Available Filters** - -You can filter the list of user's -notification setting based on their ``organization_id``. - -.. code-block:: text - - GET /api/v1/notifications/notification/user-setting/?organization={organization_id} - -You can filter the list of user's -notification setting based on their ``organization_slug``. - -.. code-block:: text - - GET /api/v1/notifications/notification/user-setting/?organization_slug={organization_slug} - -You can filter the list of user's -notification setting based on their ``type``. - -.. code-block:: text - - GET /api/v1/notifications/notification/user-setting/?type={type} - -Get notification setting details -################################ - -.. code-block:: text - - GET /api/v1/notifications/notification/user-setting/{pk}/ - -Update notification setting details -################################### - -.. code-block:: text - - PATCH /api/v1/notifications/notification/user-setting/{pk}/ - -List user's object notification setting -####################################### - -.. code-block:: text - - GET /api/v1/notifications/notification/ignore/ - -Get object notification setting details -####################################### - -.. code-block:: text - - GET /api/v1/notifications/notification/ignore/{app_label}/{model_name}/{object_id}/ - -Create object notification setting -################################## - -.. code-block:: text - - PUT /api/v1/notifications/notification/ignore/{app_label}/{model_name}/{object_id}/ - -Delete object notification setting -################################## - -.. code-block:: text - - DELETE /api/v1/notifications/notification/ignore/{app_label}/{model_name}/{object_id}/ - - -Management Commands -------------------- - -``populate_notification_preferences`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This command will populate notification preferences for all users for organizations -they are member of. - -Example usage: - -.. code-block:: shell - - # cd tests/ - ./manage.py populate_notification_preferences - -**Note**: Before running this command make sure that the celery broker is -running and **reachable** by celery workers. - -``create_notification`` -~~~~~~~~~~~~~~~~~~~~~~~ - -This command will create a dummy notification with ``default`` notification type -for the members of ``default`` organization. -This command is primarily provided for the sole purpose of testing notification -in development only. - -Example usage: - -.. code-block:: shell - - # cd tests/ - ./manage.py create_notification - -Extending openwisp-notifications --------------------------------- - -One of the core values of the OpenWISP project is `Software Reusability `_, -for this reason *OpenWISP Notifications* provides a set of base classes which can be imported, extended -and reused to create derivative apps. - -In order to implement your custom version of *openwisp-notifications*, you need to perform the steps -described in the rest of this section. - -When in doubt, the code in `test project `_ -and `sample_notifications `_ -will guide you in the correct direction: just replicate and adapt that code to get a basic derivative of -*openwisp-notifications* working. - -**Premise**: if you plan on using a customized version of this module, we suggest to start with it since -the beginning, because migrating your data from the default module to your extended version may be time -consuming. - -1. Initialize your custom module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The first thing you need to do in order to extend *openwisp-notifications* is create a new django app which -will contain your custom version of that *openwisp-notifications* app. - -A django app is nothing more than a `python package `_ -(a directory of python scripts), in the following examples we'll call this django app as ``mynotifications`` -but you can name it how you want: - -.. code-block:: shell - - django-admin startapp mynotifications - -Keep in mind that the command mentioned above must be called from a directory which is available in your -`PYTHON_PATH `_ so that you can then import -the result into your project. - -Now you need to add ``mynotifications`` to ``INSTALLED_APPS`` in your ``settings.py``, ensuring also that -``openwisp_notifications`` has been removed: - -.. code-block:: python - - INSTALLED_APPS = [ - # ... other apps ... - # 'openwisp_notifications', <-- comment out or delete this line - 'mynotifications', - ] - -For more information about how to work with django projects and django apps, please refer to the -`django documentation `_. - -2. Install ``openwisp-notifications`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Install (and add to the requirement of your project) *openwisp-notifications*: - -.. code-block:: shell - - pip install -U https://github.com/openwisp/openwisp-notifications/tarball/master - -3. Add ``EXTENDED_APPS`` -~~~~~~~~~~~~~~~~~~~~~~~~ - -Add the following to your ``settings.py``: - -.. code-block:: python - - EXTENDED_APPS = ['openwisp_notifications'] - -4. Add ``openwisp_utils.staticfiles.DependencyFinder`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Add ``openwisp_utils.staticfiles.DependencyFinder`` to ``STATICFILES_FINDERS`` in your ``settings.py``: - -.. code-block:: python - - STATICFILES_FINDERS = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', - 'openwisp_utils.staticfiles.DependencyFinder', - ] - -5. Add ``openwisp_utils.loaders.DependencyLoader`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Add ``openwisp_utils.loaders.DependencyLoader`` to ``TEMPLATES`` in your ``settings.py``: - -.. code-block:: python - - TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'OPTIONS': { - 'loaders': [ - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - 'openwisp_utils.loaders.DependencyLoader', - ], - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], - }, - } - ] - -6. Inherit the AppConfig class -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Please refer to the following files in the sample app of the test project: - -- `sample_notifications/__init__.py `_. -- `sample_notifications/apps.py `_. - -For more information regarding the concept of ``AppConfig`` please refer to the -`"Applications" section in the django documentation `_. - -7. Create your custom models -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For the purpose of showing an example, we added a simple "details" field to the -`models of the sample app in the test project `_. - -You can add fields in a similar way in your ``models.py`` file. - -**Note**: For doubts regarding how to use, extend or develop models please refer to -the `"Models" section in the django documentation `_. - -8. Add swapper configurations -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Add the following to your ``settings.py``: - -.. code-block:: python - - # Setting models for swapper module - OPENWISP_NOTIFICATIONS_NOTIFICATION_MODEL = 'mynotifications.Notification' - OPENWISP_NOTIFICATIONS_NOTIFICATIONSETTING_MODEL = 'mynotifications.NotificationSetting' - OPENWISP_NOTIFICATIONS_IGNOREOBJECTNOTIFICATION_MODEL = 'mynotifications.IgnoreObjectNotification' - -9. Create database migrations -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Create and apply database migrations:: - - ./manage.py makemigrations - ./manage.py migrate - -For more information, refer to the -`"Migrations" section in the django documentation `_. - -10. Create your custom admin -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Refer to the `admin.py file of the sample app `_. - -To introduce changes to the admin, you can do it in two main ways which are described below. - -**Note**: For more information regarding how the django admin works, or how it can be customized, -please refer to `"The django admin site" section in the django documentation `_. - -1. Monkey patching -################## - -If the changes you need to add are relatively small, you can resort to monkey patching. - -For example: - -.. code-block:: python - - from openwisp_notifications.admin import NotificationSettingInline - - NotificationSettingInline.list_display.insert(1, 'my_custom_field') - NotificationSettingInline.ordering = ['-my_custom_field'] - -2. Inheriting admin classes -########################### - -If you need to introduce significant changes and/or you don't want to resort to -monkey patching, you can proceed as follows: - -.. code-block:: python - - from django.contrib import admin - from openwisp_notifications.admin import ( - NotificationSettingInline as BaseNotificationSettingInline, - ) - from openwisp_notifications.swapper import load_model - - NotificationSetting = load_model('NotificationSetting') - - admin.site.unregister(NotificationSettingAdmin) - admin.site.unregister(NotificationSettingInline) - - - @admin.register(NotificationSetting) - class NotificationSettingInline(BaseNotificationSettingInline): - # add your changes here - pass - -11. Create root URL configuration -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Please refer to the `urls.py `_ -file in the test project. - -For more information about URL configuration in django, please refer to the -`"URL dispatcher" section in the django documentation `_. - -12. Create root routing configuration -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Please refer to the `routing.py `_ -file in the test project. - -For more information about URL configuration in django, please refer to the -`"Routing" section in the Channels documentation `_. - -13. Create celery.py -~~~~~~~~~~~~~~~~~~~~ - -Please refer to the `celery.py `_ -file in the test project. - -For more information about the usage of celery in django, please refer to the -`"First steps with Django" section in the celery documentation `_. - -14. Import Celery Tasks -~~~~~~~~~~~~~~~~~~~~~~~ - -Add the following in your settings.py to import celery tasks from ``openwisp_notifications`` app. - -.. code-block:: python - - CELERY_IMPORTS = ('openwisp_notifications.tasks',) - -15. Register Template Tags -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you need to use template tags of *openwisp_notifications*, you will need to register as shown in -`"templatetags/notification_tags.py" of sample_notifications -`_. - -For more information about template tags in django, please refer to the -`"Custom template tags and filters" section in the django documentation `_. - -16. Register Notification Types -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can register notification types as shown in the `section for registering notification types <#register_notification_type>`_. - -A reference for registering a notification type is also provided in -`sample_notifications/apps.py `_. -The registered notification type of ``sample_notifications`` app is used for creating notifications -when an object of ``TestApp`` model is created. You can use -`sample_notifications/models.py `_ -as reference for your implementation. - -17. Import the automated tests -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When developing a custom application based on this module, it's a good idea to import and run the base tests -too, so that you can be sure the changes you're introducing are not breaking some of the existing feature -of openwisp-notifications. - -In case you need to add breaking changes, you can overwrite the tests defined in the base classes to test -your own behavior. - -See the `tests of the sample_notifications -`_ -to find out how to do this. - -**Note**: Some tests will fail if ``templatetags`` and ``admin/base.html`` are not configured properly. -See preceeding sections to configure them properly. - -Other base classes that can be inherited and extended -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following steps are not required and are intended for more advanced customization. - -API views -######### - -The API view classes can be extended into other django applications as well. Note -that it is not required for extending openwisp-notifications to your app and this change -is required only if you plan to make changes to the API views. - -Create a view file as done in `sample_notifications/views.py `_ - -For more information regarding Django REST Framework API views, please refer to the -`"Generic views" section in the Django REST Framework documentation `_. - -Web Socket Consumers -#################### +For a complete overview of features, refer to the `Notifications: Features +`_ section of +the OpenWISP documentation. -The Web Socket Consumer classes can be extended into other django applications as well. Note -that it is not required for extending openwisp-notifications to your app and this change -is required only if you plan to make changes to the consumers. +Documentation +------------- -Create a consumer file as done in `sample_notifications/consumers.py `_ +- `Developer documentation + `_ +- `User documentation `_ -For more information regarding Channels' Consumers, please refer to the -`"Consumers" section in the Channels documentation `_. +---- Contributing ------------ -Please read the `OpenWISP contributing guidelines `_. +Please read the `OpenWISP contributing guidelines +`_. License ------- -See `LICENSE `_. +See `LICENSE +`_. Support ------- @@ -1564,15 +76,18 @@ Attributions Icons ~~~~~ -`Icons `_ +`Icons +`_ used are taken from `Font Awesome `_ project. -LICENSE: `https://fontawesome.com/license `_ +LICENSE: https://fontawesome.com/license Sound ~~~~~ -`Notification sound `_ +`Notification sound +`_ is taken from `Notification Sounds `_. -LICENSE: `Creative Commons Attribution license `_ +LICENSE: `Creative Commons Attribution license +`_ diff --git a/docs/developer/extending.rst b/docs/developer/extending.rst new file mode 100644 index 00000000..6ee3062b --- /dev/null +++ b/docs/developer/extending.rst @@ -0,0 +1,363 @@ +Extending openwisp-notifications +================================ + +.. include:: ../partials/developer-docs.rst + +One of the core values of the OpenWISP project is :ref:`Software +Reusability `, for this reason OpenWISP +Notifications provides a set of base classes which can be imported, +extended and reused to create derivative apps. + +In order to implement your custom version of *openwisp-notifications*, you +need to perform the steps described in the rest of this section. + +When in doubt, the code in `test project +`_ +and `sample_notifications +`_ +will guide you in the correct direction: just replicate and adapt that +code to get a basic derivative of *openwisp-notifications* working. + +.. important:: + + If you plan on using a customized version of this module, we suggest + to start with it since the beginning, because migrating your data from + the default module to your extended version may be time consuming. + +.. contents:: **Table of Contents**: + :depth: 2 + :local: + +1. Initialize your custom module +-------------------------------- + +The first thing you need to do in order to extend *openwisp-notifications* +is create a new django app which will contain your custom version of that +*openwisp-notifications* app. + +A django app is nothing more than a `python package +`_ (a directory +of python scripts), in the following examples we'll call this django app +as ``mynotifications`` but you can name it how you want: + +.. code-block:: shell + + django-admin startapp mynotifications + +Keep in mind that the command mentioned above must be called from a +directory which is available in your `PYTHON_PATH +`_ so that +you can then import the result into your project. + +Now you need to add ``mynotifications`` to ``INSTALLED_APPS`` in your +``settings.py``, ensuring also that ``openwisp_notifications`` has been +removed: + +.. code-block:: python + + INSTALLED_APPS = [ + # ... other apps ... + # 'openwisp_notifications', <-- comment out or delete this line + "mynotifications", + ] + +For more information about how to work with django projects and django +apps, please refer to the `django documentation +`_. + +2. Install ``openwisp-notifications`` +------------------------------------- + +Install (and add to the requirement of your project) +*openwisp-notifications*: + +.. code-block:: shell + + pip install -U https://github.com/openwisp/openwisp-notifications/tarball/master + +3. Add ``EXTENDED_APPS`` +------------------------ + +Add the following to your ``settings.py``: + +.. code-block:: python + + EXTENDED_APPS = ["openwisp_notifications"] + +4. Add ``openwisp_utils.staticfiles.DependencyFinder`` +------------------------------------------------------ + +Add ``openwisp_utils.staticfiles.DependencyFinder`` to +``STATICFILES_FINDERS`` in your ``settings.py``: + +.. code-block:: python + + STATICFILES_FINDERS = [ + "django.contrib.staticfiles.finders.FileSystemFinder", + "django.contrib.staticfiles.finders.AppDirectoriesFinder", + "openwisp_utils.staticfiles.DependencyFinder", + ] + +5. Add ``openwisp_utils.loaders.DependencyLoader`` +-------------------------------------------------- + +Add ``openwisp_utils.loaders.DependencyLoader`` to ``TEMPLATES`` in your +``settings.py``: + +.. code-block:: python + + TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "OPTIONS": { + "loaders": [ + "django.template.loaders.filesystem.Loader", + "django.template.loaders.app_directories.Loader", + "openwisp_utils.loaders.DependencyLoader", + ], + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + } + ] + +6. Inherit the AppConfig class +------------------------------ + +Please refer to the following files in the sample app of the test project: + +- `sample_notifications/__init__.py + `_. +- `sample_notifications/apps.py + `_. + +For more information regarding the concept of ``AppConfig`` please refer +to the `"Applications" section in the django documentation +`_. + +7. Create your custom models +---------------------------- + +For the purpose of showing an example, we added a simple "details" field +to the `models of the sample app in the test project +`_. + +You can add fields in a similar way in your ``models.py`` file. + +**Note**: For doubts regarding how to use, extend or develop models please +refer to the `"Models" section in the django documentation +`_. + +8. Add swapper configurations +----------------------------- + +Add the following to your ``settings.py``: + +.. code-block:: python + + # Setting models for swapper module + OPENWISP_NOTIFICATIONS_NOTIFICATION_MODEL = "mynotifications.Notification" + OPENWISP_NOTIFICATIONS_NOTIFICATIONSETTING_MODEL = ( + "mynotifications.NotificationSetting" + ) + OPENWISP_NOTIFICATIONS_IGNOREOBJECTNOTIFICATION_MODEL = ( + "mynotifications.IgnoreObjectNotification" + ) + +9. Create database migrations +----------------------------- + +Create and apply database migrations: + +.. code-block:: + + ./manage.py makemigrations + ./manage.py migrate + +For more information, refer to the `"Migrations" section in the django +documentation +`_. + +10. Create your custom admin +---------------------------- + +Refer to the `admin.py file of the sample app +`_. + +To introduce changes to the admin, you can do it in two main ways which +are described below. + +**Note**: For more information regarding how the django admin works, or +how it can be customized, please refer to `"The django admin site" section +in the django documentation +`_. + +1. Monkey patching +~~~~~~~~~~~~~~~~~~ + +If the changes you need to add are relatively small, you can resort to +monkey patching. + +For example: + +.. code-block:: python + + from openwisp_notifications.admin import NotificationSettingInline + + NotificationSettingInline.list_display.insert(1, "my_custom_field") + NotificationSettingInline.ordering = ["-my_custom_field"] + +2. Inheriting admin classes +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you need to introduce significant changes and/or you don't want to +resort to monkey patching, you can proceed as follows: + +.. code-block:: python + + from django.contrib import admin + from openwisp_notifications.admin import ( + NotificationSettingInline as BaseNotificationSettingInline, + ) + from openwisp_notifications.swapper import load_model + + NotificationSetting = load_model("NotificationSetting") + + admin.site.unregister(NotificationSettingAdmin) + admin.site.unregister(NotificationSettingInline) + + + @admin.register(NotificationSetting) + class NotificationSettingInline(BaseNotificationSettingInline): + # add your changes here + pass + +11. Create root URL configuration +--------------------------------- + +Please refer to the `urls.py +`_ +file in the test project. + +For more information about URL configuration in django, please refer to +the `"URL dispatcher" section in the django documentation +`_. + +12. Create root routing configuration +------------------------------------- + +Please refer to the `routing.py +`_ +file in the test project. + +For more information about URL configuration in django, please refer to +the `"Routing" section in the Channels documentation +`_. + +13. Create celery.py +-------------------- + +Please refer to the `celery.py +`_ +file in the test project. + +For more information about the usage of celery in django, please refer to +the `"First steps with Django" section in the celery documentation +`_. + +14. Import Celery Tasks +----------------------- + +Add the following in your settings.py to import celery tasks from +``openwisp_notifications`` app. + +.. code-block:: python + + CELERY_IMPORTS = ("openwisp_notifications.tasks",) + +15. Register Template Tags +-------------------------- + +If you need to use template tags of *openwisp_notifications*, you will +need to register as shown in `"templatetags/notification_tags.py" of +sample_notifications +`_. + +For more information about template tags in django, please refer to the +`"Custom template tags and filters" section in the django documentation +`_. + +16. Register Notification Types +------------------------------- + +You can register notification types as shown in the :ref:`section for +registering notification types `. + +A reference for registering a notification type is also provided in +`sample_notifications/apps.py +`_. +The registered notification type of ``sample_notifications`` app is used +for creating notifications when an object of ``TestApp`` model is created. +You can use `sample_notifications/models.py +`_ +as reference for your implementation. + +17. Import the automated tests +------------------------------ + +When developing a custom application based on this module, it's a good +idea to import and run the base tests too, so that you can be sure the +changes you're introducing are not breaking some of the existing feature +of openwisp-notifications. + +In case you need to add breaking changes, you can overwrite the tests +defined in the base classes to test your own behavior. + +See the `tests of the sample_notifications +`_ +to find out how to do this. + +**Note**: Some tests will fail if ``templatetags`` and ``admin/base.html`` +are not configured properly. See preceeding sections to configure them +properly. + +Other base classes that can be inherited and extended +----------------------------------------------------- + +The following steps are not required and are intended for more advanced +customization. + +API views +~~~~~~~~~ + +The API view classes can be extended into other django applications as +well. Note that it is not required for extending openwisp-notifications to +your app and this change is required only if you plan to make changes to +the API views. + +Create a view file as done in `sample_notifications/views.py +`_ + +For more information regarding Django REST Framework API views, please +refer to the `"Generic views" section in the Django REST Framework +documentation +`_. + +Web Socket Consumers +~~~~~~~~~~~~~~~~~~~~ + +The Web Socket Consumer classes can be extended into other django +applications as well. Note that it is not required for extending +openwisp-notifications to your app and this change is required only if you +plan to make changes to the consumers. + +Create a consumer file as done in `sample_notifications/consumers.py +`_ + +For more information regarding Channels' Consumers, please refer to the +`"Consumers" section in the Channels documentation +`_. diff --git a/docs/developer/index.rst b/docs/developer/index.rst new file mode 100644 index 00000000..99915fc9 --- /dev/null +++ b/docs/developer/index.rst @@ -0,0 +1,16 @@ +Developer Docs +============== + +.. include:: ../partials/developer-docs.rst + +.. toctree:: + :maxdepth: 2 + + ./installation.rst + ./utils.rst + ./extending.rst + +Other useful resources: + + - :doc:`../user/rest-api` + - :doc:`../user/settings` diff --git a/docs/developer/installation.rst b/docs/developer/installation.rst new file mode 100644 index 00000000..917605ec --- /dev/null +++ b/docs/developer/installation.rst @@ -0,0 +1,132 @@ +Developer Installation Instructions +=================================== + +.. include:: ../partials/developer-docs.rst + +.. contents:: **Table of Contents**: + :depth: 2 + :local: + +Installing for Development +-------------------------- + +Install the system dependencies: + +.. code-block:: shell + + sudo apt install sqlite3 libsqlite3-dev openssl libssl-dev + +Fork and clone the forked repository: + +.. code-block:: shell + + git clone git://github.com//openwisp-notifications + +Navigate into the cloned repository: + +.. code-block:: shell + + cd openwisp-notifications/ + +Launch Redis: + +.. code-block:: shell + + docker-compose up -d redis + +Setup and activate a virtual-environment (we'll be using `virtualenv +`_): + +.. code-block:: shell + + python -m virtualenv env + source env/bin/activate + +Make sure that your base python packages are up to date before moving to +the next step: + +.. code-block:: shell + + pip install -U pip wheel setuptools + +Install development dependencies: + +.. code-block:: shell + + pip install -e . + pip install -r requirements-test.txt + sudo npm install -g jshint stylelint + +Create database: + +.. code-block:: shell + + cd tests/ + ./manage.py migrate + ./manage.py createsuperuser + +Launch celery worker (for background jobs): + +.. code-block:: shell + + celery -A openwisp2 worker -l info + +Launch development server: + +.. code-block:: shell + + ./manage.py runserver + +You can access the admin interface at ``http://127.0.0.1:8000/admin/``. + +Run tests with: + +.. code-block:: shell + + # standard tests + ./runtests.py + + # If you running tests on PROD environment + ./runtests.py --exclude skip_prod + + # tests for the sample app + SAMPLE_APP=1 ./runtests.py + +When running the last line of the previous example, the environment +variable ``SAMPLE_APP`` activates the sample app in ``/tests/openwisp2/`` +which is a simple django app that extends ``openwisp-notifications`` with +the sole purpose of testing its extensibility, for more information +regarding this concept, read the following section. + +Run quality assurance tests with: + +.. code-block:: shell + + ./run-qa-checks + +Alternative Sources +------------------- + +Pypi +~~~~ + +To install the latest stable version from pypi: + +.. code-block:: shell + + pip install openwisp-notifications + +Github +~~~~~~ + +To install the latest development version tarball via HTTPs: + +.. code-block:: shell + + pip install https://github.com/openwisp/openwisp-notifications/tarball/master + +Alternatively you can use the git protocol: + +.. code-block:: shell + + pip install -e git+git://github.com/openwisp/openwisp-notifications#egg=openwisp_notifications diff --git a/docs/developer/utils.rst b/docs/developer/utils.rst new file mode 100644 index 00000000..3e09a637 --- /dev/null +++ b/docs/developer/utils.rst @@ -0,0 +1,135 @@ +Code Utilities +============== + +.. include:: ../partials/developer-docs.rst + +.. contents:: **Table of Contents**: + :depth: 2 + :local: + +.. _dd: + +Registering / Unregistering Notification Types +---------------------------------------------- + +OpenWISP Notifications provides registering and unregistering +notifications through utility functions +``openwisp_notifications.types.register_notification_type`` and +``openwisp_notifications.types.unregister_notification_type``. Using these +functions you can register or unregister notification types from your +code. + +.. important:: + + It is recommended that all notification types are registered or + unregistered in ``ready`` method of your Django application's + ``AppConfig``. + +.. _notifications_register_type: + +``register_notification_type`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This function is used to register a new notification type from your code. + +Syntax: + +.. code-block:: python + + register_notification_type(type_name, type_config, models) + +============= =========================================================== +**Parameter** **Description** +type_name A ``str`` defining name of the notification type. +type_config A ``dict`` defining configuration of the notification type. +models An optional ``list`` of models that can be associated with + the notification type. +============= =========================================================== + +An example usage has been shown below. + +.. code-block:: python + + from openwisp_notifications.types import register_notification_type + from django.contrib.auth import get_user_model + + User = get_user_model() + + # Define configuration of your notification type + custom_type = { + "level": "info", + "verb": "added", + "verbose_name": "device added", + "message": "[{notification.target}]({notification.target_link}) was {notification.verb} at {notification.timestamp}", + "email_subject": "[{site.name}] A device has been added", + "web_notification": True, + "email_notification": True, + # static URL for the actor object + "actor": "https://openwisp.org/admin/config/device", + # URL generation using callable for target object + "target": "mymodule.target_object_link", + } + + # Register your custom notification type + register_notification_type("custom_type", custom_type, models=[User]) + +It will raise ``ImproperlyConfigured`` exception if a notification type is +already registered with same name(not to be confused with +``verbose_name``). + +.. note:: + + You can use ``site`` and ``notification`` variables while defining + ``message`` and ``email_subject`` configuration of notification type. + They refer to objects of ``django.contrib.sites.models.Site`` and + ``openwisp_notifications.models.Notification`` respectively. This + allows you to use any of their attributes in your configuration. + Similarly to ``message_template``, ``message`` property can also be + formatted using markdown. + +``unregister_notification_type`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This function is used to unregister a notification type from anywhere in +your code. + +Syntax: + +.. code-block:: python + + unregister_notification_type(type_name) + +============= ================================================= +**Parameter** **Description** +type_name A ``str`` defining name of the notification type. +============= ================================================= + +An example usage is shown below. + +.. code-block:: python + + from openwisp_notifications.types import unregister_notification_type + + # Unregister previously registered notification type + unregister_notification_type("custom type") + +It will raise ``ImproperlyConfigured`` exception if the concerned +notification type is not registered. + +Exceptions +~~~~~~~~~~ + +``NotificationRenderException`` ++++++++++++++++++++++++++++++++ + +.. code-block:: python + + openwisp_notifications.exceptions.NotificationRenderException + +Raised when notification properties(``email`` or ``message``) cannot be +rendered from concerned *notification type*. It sub-classes ``Exception`` +class. + +It can be raised due to accessing non-existing keys like missing related +objects in ``email`` or ``message`` setting of concerned *notification +type*. diff --git a/docs/images/architecture-v2-openwisp-notifications.png b/docs/images/architecture-v2-openwisp-notifications.png new file mode 100644 index 0000000000000000000000000000000000000000..4aa5c0bd6a84a4fa0a6fe3657dd2755673007396 GIT binary patch literal 396446 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

dm2~M&Lpj!EY+FVH_EW2e?}Wkt^x*>; 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

q}9Kodxq}GLQ+u$9j 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%0AFQVV~hWtj| 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 M@})$c*t<{v57{C}`Tzg` literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..db07b475 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,56 @@ +Notifications +============= + +.. seealso:: + + **Source code**: `github.com/openwisp/openwisp-notifications + `_. + +OpenWISP Notifications is a versatile system designed to deliver email and +web notifications. Its primary function is to enable other OpenWISP +modules to alert users about significant events occurring within their +network. By seamlessly integrating with various OpenWISP components, it +ensures users are promptly informed about critical updates and changes. +This enhances the overall user experience by keeping network +administrators aware and responsive to important developments. + +For a comprehensive overview of features, please refer to the +:doc:`user/intro` page. + +The following diagram illustrates the role of the Notifications module +within the OpenWISP architecture. + +.. figure:: images/architecture-v2-openwisp-notifications.png + :target: ../_images/architecture-v2-openwisp-notifications.png + :align: center + :alt: OpenWISP Architecture: Notifications module + + **OpenWISP Architecture: highlighted notifications module** + +.. important:: + + For an enhanced viewing experience, open the image above in a new + browser tab. + + Refer to :doc:`/general/architecture` for more information. + +.. toctree:: + :caption: Notifications Usage Docs + :maxdepth: 1 + + ./user/intro.rst + ./user/notification-types.rst + ./user/sending-notifications.rst + ./user/web-email-notifications.rst + ./user/notification-preferences.rst + ./user/scheduled-deletion-of-notifications.rst + ./user/rest-api.rst + ./user/settings.rst + ./user/notification-cache.rst + ./user/management-commands.rst + +.. toctree:: + :caption: Notifications Developer Docs + :maxdepth: 2 + + Developer Docs Index diff --git a/docs/partials/developer-docs.rst b/docs/partials/developer-docs.rst new file mode 100644 index 00000000..e6cd4d63 --- /dev/null +++ b/docs/partials/developer-docs.rst @@ -0,0 +1,12 @@ +.. note:: + + This documentation page is aimed at developers who want to customize, + change or extend the code of OpenWISP Notifications in order to modify + its behavior (eg: for personal or commercial purposes or to fix a bug, + implement a new feature or contribute to the project in general). + + If you aren't a developer and you are looking for information on how + to use OpenWISP, please refer to: + + - :doc:`General OpenWISP Quickstart ` + - :doc:`OpenWISP Notifications User Docs ` diff --git a/docs/user/intro.rst b/docs/user/intro.rst new file mode 100644 index 00000000..2ff8ab49 --- /dev/null +++ b/docs/user/intro.rst @@ -0,0 +1,17 @@ +Notifications: Features +======================= + +OpenWISP Notifications offers a robust set of features to keep users +informed about significant events in their network. These features +include: + +- :doc:`sending-notifications` +- :ref:`notifications_web_notifications` +- :ref:`notifications_email_notifications` +- :doc:`notification-types` +- :doc:`User notification preferences ` +- :ref:`Silencing notifications for specific objects temporarily or + permanently ` +- :doc:`Automatic cleanup of old notifications + ` +- :ref:`Configurable host for API endpoints ` diff --git a/docs/user/management-commands.rst b/docs/user/management-commands.rst new file mode 100644 index 00000000..4eb9b64b --- /dev/null +++ b/docs/user/management-commands.rst @@ -0,0 +1,37 @@ +Management Commands +=================== + +.. include:: ../partials/developer-docs.rst + +``populate_notification_preferences`` +------------------------------------- + +This command will populate notification preferences for all users for +organizations they are member of. + +.. note:: + + Before running this command make sure that the celery broker is + running and **reachable** by celery workers. + +Example usage: + +.. code-block:: shell + + # cd tests/ + ./manage.py populate_notification_preferences + +``create_notification`` +----------------------- + +This command will create a dummy notification with ``default`` +notification type for the members of ``default`` organization. This +command is primarily provided for the sole purpose of testing notification +in development only. + +Example usage: + +.. code-block:: shell + + # cd tests/ + ./manage.py create_notification diff --git a/docs/user/notification-cache.rst b/docs/user/notification-cache.rst new file mode 100644 index 00000000..83ffe920 --- /dev/null +++ b/docs/user/notification-cache.rst @@ -0,0 +1,55 @@ +Notification Cache +================== + +In a typical OpenWISP installation, ``actor``, ``action_object`` and +``target`` objects are same for a number of notifications. To optimize +database queries, these objects are cached using `Django's cache framework +`_. The cached values +are updated automatically to reflect actual data from database. You can +control the duration of caching these objects using +:ref:`OPENWISP_NOTIFICATIONS_CACHE_TIMEOUT setting +`. + +Cache Invalidation +------------------ + +The function ``register_notification_cache_update`` can be used to +register a signal of a model which is being used as an ``actor``, +``action_object`` and ``target`` objects. As these values are cached for +the optimization purpose so their cached values are need to be changed +when they are changed. You can register any signal you want which will +delete the cached value. To register a signal you need to include +following code in your ``apps.py``. + +.. code-block:: python + + from django.db.models.signals import post_save + from swapper import load_model + + + def ready(self): + super().ready() + + # Include lines after this inside + # ready function of you app config class + from openwisp_notifications.handlers import ( + register_notification_cache_update, + ) + + model = load_model("app_name", "model_name") + register_notification_cache_update( + model, + post_save, + dispatch_uid="myapp_mymodel_notification_cache_invalidation", + ) + +.. important:: + + You need to import ``register_notification_cache_update`` inside the + ``ready`` function or you can define another function to register + signals which will be called in ``ready`` and then it will be imported + in this function. Also ``dispatch_uid`` is unique identifier of a + signal. You can pass any value you want but it needs to be unique. For + more details read `preventing duplicate signals section of Django + documentation + `_ diff --git a/docs/user/notification-preferences.rst b/docs/user/notification-preferences.rst new file mode 100644 index 00000000..1e2dfa8d --- /dev/null +++ b/docs/user/notification-preferences.rst @@ -0,0 +1,53 @@ +Notification Preferences +======================== + +.. image:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/notification-settings.png + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/notification-settings.png + :align: center + +OpenWISP Notifications enables users to customize their notification +preferences by selecting their preferred method of receiving +updates—either through web notifications or email. These settings are +organized by notification type and organization, allowing users to tailor +their notification experience by opting to receive updates only from +specific organizations or notification types. + +Notification settings are automatically generated for all notification +types and organizations for every user. Superusers have the ability to +manage notification settings for all users, including adding or deleting +them. Meanwhile, staff users can modify their preferred notification +delivery methods, choosing between receiving notifications via web, email, +or both. Additionally, users have the option to disable notifications +entirely by turning off both web and email notification settings. + +.. note:: + + If a user has not configured their preferences for email or web + notifications for a specific notification type, the system will + default to using the ``email_notification`` or ``web_notification`` + option defined for that notification type. + +.. _notifications_silencing: + +Silencing Notifications for Specific Objects +-------------------------------------------- + +.. image:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/silence-notifications.png + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/silence-notifications.png + :align: center + +OpenWISP Notifications allows users to silence all notifications generated +by specific objects they are not interested in for a desired period of +time or even permanently, while other users will keep receiving +notifications normally. + +Using the widget on an object's admin change form, a user can disable all +notifications generated by that object for a day, week, month or +permanently. + +.. note:: + + This feature requires configuring + :ref:`"OPENWISP_NOTIFICATIONS_IGNORE_ENABLED_ADMIN" + ` to enable the widget in + the admin section of the required models. diff --git a/docs/user/notification-types.rst b/docs/user/notification-types.rst new file mode 100644 index 00000000..91247df1 --- /dev/null +++ b/docs/user/notification-types.rst @@ -0,0 +1,145 @@ +Notification Types +================== + +.. contents:: **Table of contents**: + :depth: 2 + :local: + +OpenWISP Notifications allows defining notification types for recurring +events. Think of a notification type as a template for notifications. + +.. _notifications_generic_message_type: + +``generic_message`` +------------------- + +.. figure:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/1.1/generic_message.png + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/1.1/generic_message.png + :align: center + +This module includes a notification type called ``generic_message``. + +This notification type is designed to deliver custom messages in the user +interface for infrequent events or errors that occur during background +operations and cannot be communicated easily to the user in other ways. + +These messages may require longer explanations and are therefore displayed +in a dialog overlay, as shown in the screenshot above. This notification +type does not send emails. + +The following code example demonstrates how to send a notification of this +type: + +.. code-block:: python + + from openwisp_notifications.signals import notify + + notify.send( + type="generic_message", + level="error", + message="An unexpected error happened!", + sender=User.objects.first(), + target=User.objects.last(), + description="""Lorem Ipsum is simply dummy text + of the printing and typesetting industry. + + ### Heading 3 + + Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, + when an unknown printer took a galley of type and scrambled it to make a + type specimen book. + + It has survived not only **five centuries**, but also the leap into + electronic typesetting, remaining essentially unchanged. + + It was popularised in the 1960s with the release of Letraset sheets + containing Lorem Ipsum passages, and more recently with desktop publishing + software like Aldus PageMaker including versions of *Lorem Ipsum*.""", + ) + +Properties of Notification Types +-------------------------------- + +The following properties can be configured for each notification type: + +====================== ================================================== +**Property** **Description** +``level`` Sets ``level`` attribute of the notification. +``verb`` Sets ``verb`` attribute of the notification. +``verbose_name`` Sets display name of notification type. +``message`` Sets ``message`` attribute of the notification. +``email_subject`` Sets subject of the email notification. +``message_template`` Path to file having template for message of the + notification. +``email_notification`` Sets preference for email notifications. Defaults + to ``True``. +``web_notification`` Sets preference for web notifications. Defaults to + ``True``. +``actor_link`` Overrides the default URL used for the ``actor`` + object. + + You can pass a static URL or a dotted path to a + callable which returns the object URL. +``action_object_link`` Overrides the default URL used for the ``action`` + object. + + You can pass a static URL or a dotted path to a + callable which returns the object URL. +``target_link`` Overrides the default URL used for the ``target`` + object. + + You can pass a static URL or a dotted path to a + callable which returns the object URL. +====================== ================================================== + +.. note:: + + It is recommended that a notification type configuration for recurring + events contains either the ``message`` or ``message_template`` + properties. If both are present, ``message`` is given preference over + ``message_template``. + + If you don't plan on using ``message`` or ``message_template``, it may + be better to use the existing ``generic_message`` type. However, it's + advised to do so only if the event being notified is infrequent. + +The callable for ``actor_link``, ``action_object_link`` and +``target_link`` should have the following signature: + +.. code-block:: python + + def related_object_link_callable(notification, field, absolute_url=True): + """ + notification: the notification object for which the URL will be created + field: the related object field, any one of "actor", "action_object" or + "target" field of the notification object + absolute_url: boolean to flag if absolute URL should be returned + """ + return "https://custom.domain.com/custom/url/" + +Defining ``message_template`` +----------------------------- + +You can either extend default message template or write your own markdown +formatted message template from scratch. An example to extend default +message template is shown below. + +.. code-block:: django + + # In templates/your_notifications/your_message_template.md + {% extends 'openwisp_notifications/default_message.md' %} + {% block body %} + [{{ notification.target }}]({{ notification.target_link }}) has malfunctioned. + {% endblock body %} + +You can access all attributes of the notification using ``notification`` +variables in your message template as shown above. Additional attributes +``actor_link``, ``action_link`` and ``target_link`` are also available for +providing hyperlinks to respective object. + +.. important:: + + After writing code for registering or unregistering notification + types, it is recommended to run database migrations to create + :doc:`notification settlings ` for these + notification types. diff --git a/docs/user/rest-api.rst b/docs/user/rest-api.rst new file mode 100644 index 00000000..81bae1ad --- /dev/null +++ b/docs/user/rest-api.rst @@ -0,0 +1,189 @@ +REST API +======== + +.. contents:: **Table of Contents**: + :depth: 1 + :local: + +.. _notifications_live_documentation: + +Live Documentation +------------------ + +.. image:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/api-docs.png + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/api-docs.png + :align: center + +A general live API documentation (following the OpenAPI specification) is +available at ``/api/v1/docs/``. + +.. _notifications_browsable_web_interface: + +Browsable Web Interface +----------------------- + +.. image:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/api-ui.png + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/api-ui.png + :align: center + +Additionally, opening any of the endpoints :ref:`listed below +` directly in the browser will show the +`browsable API interface of Django-REST-Framework +`_, which +makes it even easier to find out the details of each endpoint. + +Authentication +-------------- + +See openwisp-users: :ref:`authenticating with the user token +`. + +When browsing the API via the :ref:`notifications_live_documentation` or +the :ref:`notifications_browsable_web_interface`, you can also use the +session authentication by logging in the django admin. + +Pagination +---------- + +The *list* endpoint support the ``page_size`` parameter that allows +paginating the results in conjunction with the ``page`` parameter. + +.. code-block:: text + + GET /api/v1/notifications/notification/?page_size=10 + GET /api/v1/notifications/notification/?page_size=10&page=2 + +.. _notifications_rest_endpoints: + +List of Endpoints +----------------- + +Since the detailed explanation is contained in the +:ref:`notifications_live_documentation` and in the +:ref:`notifications_browsable_web_interface` of each point, here we'll +provide just a list of the available endpoints, for further information +please open the URL of the endpoint in your browser. + +List User's Notifications +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + GET /api/v1/notifications/notification/ + +**Available Filters** + +You can filter the list of notifications based on whether they are read or +unread using the ``unread`` parameter. + +To list read notifications: + +.. code-block:: text + + GET /api/v1/notifications/notification/?unread=false + +To list unread notifications: + +.. code-block:: text + + GET /api/v1/notifications/notification/?unread=true + +Mark All User's Notifications as Read +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + POST /api/v1/notifications/notification/read/ + +Get Notification Details +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + GET /api/v1/notifications/notification/{pk}/ + +Mark a Notification Read +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + PATCH /api/v1/notifications/notification/{pk}/ + +Delete a Notification +~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + DELETE /api/v1/notifications/notification/{pk}/ + +List User's Notification Setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + GET /api/v1/notifications/notification/user-setting/ + +**Available Filters** + +You can filter the list of user's notification setting based on their +``organization_id``. + +.. code-block:: text + + GET /api/v1/notifications/notification/user-setting/?organization={organization_id} + +You can filter the list of user's notification setting based on their +``organization_slug``. + +.. code-block:: text + + GET /api/v1/notifications/notification/user-setting/?organization_slug={organization_slug} + +You can filter the list of user's notification setting based on their +``type``. + +.. code-block:: text + + GET /api/v1/notifications/notification/user-setting/?type={type} + +Get Notification Setting Details +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + GET /api/v1/notifications/notification/user-setting/{pk}/ + +Update Notification Setting Details +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + PATCH /api/v1/notifications/notification/user-setting/{pk}/ + +List User's Object Notification Setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + GET /api/v1/notifications/notification/ignore/ + +Get Object Notification Setting Details +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + GET /api/v1/notifications/notification/ignore/{app_label}/{model_name}/{object_id}/ + +Create Object Notification Setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + PUT /api/v1/notifications/notification/ignore/{app_label}/{model_name}/{object_id}/ + +Delete Object Notification Setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: text + + DELETE /api/v1/notifications/notification/ignore/{app_label}/{model_name}/{object_id}/ diff --git a/docs/user/scheduled-deletion-of-notifications.rst b/docs/user/scheduled-deletion-of-notifications.rst new file mode 100644 index 00000000..9fe76139 --- /dev/null +++ b/docs/user/scheduled-deletion-of-notifications.rst @@ -0,0 +1,39 @@ +Scheduled Deletion of Notifications +=================================== + +.. note:: + + If you have deployed OpenWISP using :doc:`ansible-openwisp2 + ` or :doc:`docker-openwisp `, then this + feature has been already configured for you. Refer to the + documentation of your deployment method to know the default value. + This section is only for reference for users who wish to customize + OpenWISP, or who have deployed OpenWISP in a different way. + +OpenWISP Notifications provides a celery task to automatically delete +notifications older than a pre-configured number of days. In order to run +this task periodically, you will need to configure +``CELERY_BEAT_SCHEDULE``. + +The celery task takes only one argument, i.e. number of days. You can +provide any number of days in `args` key while configuring +``CELERY_BEAT_SCHEDULE`` setting. + +E.g., if you want notifications older than 10 days to get deleted +automatically, then configure ``CELERY_BEAT_SCHEDULE`` as follows: + +.. code-block:: python + + CELERY_BEAT_SCHEDULE = { + "delete_old_notifications": { + "task": "openwisp_notifications.tasks.delete_old_notifications", + "schedule": timedelta(days=1), + "args": ( + 10, + ), # Here we have defined 10 instead of 90 as shown in setup instructions + }, + } + +Please refer to `"Periodic Tasks" section of Celery's documentation +`_ +to learn more. diff --git a/docs/user/sending-notifications.rst b/docs/user/sending-notifications.rst new file mode 100644 index 00000000..a512748c --- /dev/null +++ b/docs/user/sending-notifications.rst @@ -0,0 +1,133 @@ +Sending Notifications +===================== + +.. contents:: **Table of contents**: + :depth: 2 + :local: + +The ``notify`` signal +--------------------- + +Notifications can be created using the ``notify`` signal. Here's an +example which uses the :ref:`generic_message +` notification type to alert users of +an account being deactivated: + +.. code-block:: python + + from django.contrib.auth import get_user_model + from swapper import load_model + + from openwisp_notifications.signals import notify + + User = get_user_model() + admin = User.objects.get(username="admin") + deactivated_user = User.objects.get(username="johndoe", is_active=False) + + notify.send( + sender=admin, + type="generic_message", + level="info", + target=deactivated_user, + message="{notification.actor} has deactivated {notification.target}", + ) + +The above snippet will send notifications to all superusers and +organization administrators of the target object's organization who have +opted-in to receive notifications. If the target object is omitted or does +not have an organization, it will only send notifications to superusers. + +You can override the recipients of the notification by passing the +``recipient`` keyword argument. The ``recipient`` argument can be a: + +- ``Group`` object +- A list or queryset of ``User`` objects +- A single ``User`` object + +However, these users will only be notified if they have opted-in to +receive notifications. + +The complete syntax for ``notify`` is: + +.. code-block:: python + + notify.send( + actor, + recipient, + verb, + action_object, + target, + level, + description, + **kwargs, + ) + +Since ``openwisp-notifications`` uses ``django-notifications`` under the +hood, usage of the ``notify signal`` has been kept unaffected to maintain +consistency with ``django-notifications``. You can learn more about +accepted parameters from `django-notifications documentation +`_. + +The ``notify`` signal supports the following additional parameters: + +================= ====================================================== +**Parameter** **Description** +``type`` Set values of other parameters based on registered + :doc:`notification types <./notification-types>` + + Defaults to ``None`` meaning you need to provide other + arguments. +``email_subject`` Sets subject of email notification to be sent. + + Defaults to the notification message. +``url`` Adds a URL in the email text, eg: + + ``For more information see .`` + + Defaults to ``None``, meaning the above message would + not be added to the email text. +================= ====================================================== + +Passing Extra Data to Notifications +----------------------------------- + +If needed, additional data, not known beforehand, can be included in the +notification message. + +A perfect example for this case is an error notification, the error +message will vary depending on what has happened, so we cannot know until +the notification is generated. + +Here's how to do it: + +.. code-block:: python + + from openwisp_notifications.types import register_notification_type + + register_notification_type( + "error_type", + { + "verbose_name": "Error", + "level": "error", + "verb": "error", + "message": "Error: {error}", + "email_subject": "Error subject: {error}", + }, + ) + +Then in the application code: + +.. code-block:: python + + from openwisp_notifications.signals import notify + + try: + operation_which_can_fail() + except Exception as error: + notify.send(type="error_type", sender=sender, error=str(error)) + +Since the ``error_type`` notification type defined the notification +message, you don't need to pass the ``message`` argument in the notify +signal. The message defined in the notification type will be used by the +notification. The ``error`` argument is used to set the value of the +``{error}`` placeholder in the notification message. diff --git a/docs/user/settings.rst b/docs/user/settings.rst new file mode 100644 index 00000000..451704c5 --- /dev/null +++ b/docs/user/settings.rst @@ -0,0 +1,158 @@ +Settings +======== + +.. include:: /partials/settings-note.rst + +.. _openwisp_notifications_host: + +``OPENWISP_NOTIFICATIONS_HOST`` +------------------------------- + +======= ====================================== +type ``str`` +default Any domain defined in ``ALLOWED_HOST`` +======= ====================================== + +This setting defines the domain at which API and Web Socket communicate +for working of notification widget. + +.. note:: + + You don't need to configure this setting if you don't host your API + endpoints on a different sub-domain. + +If your root domain is ``example.com`` and API and Web Socket are hosted +at ``api.example.com``, then configure setting as follows: + +.. code-block:: python + + OPENWISP_NOTIFICATIONS_HOST = "https://api.example.com" + +This feature requires you to allow `CORS +`_ on your server. +We use ``django-cors-headers`` module to easily setup CORS headers. Please +refer `django-core-headers' setup documentation +`_. + +Configure ``django-cors-headers`` settings as follows: + +.. code-block:: python + + CORS_ALLOW_CREDENTIALS = True + CORS_ORIGIN_WHITELIST = ["https://www.example.com"] + +Configure Django's settings as follows: + +.. code-block:: python + + SESSION_COOKIE_DOMAIN = "example.com" + CSRF_COOKIE_DOMAIN = "example.com" + +Please refer to `Django's settings documentation +`_ for more +information on ``SESSION_COOKIE_DOMAIN`` and ``CSRF_COOKIE_DOMAIN`` +settings. + +``OPENWISP_NOTIFICATIONS_SOUND`` +-------------------------------- + +======= =================================================================================================================================================== +type ``str`` +default `notification_bell.mp3 + `_ +======= =================================================================================================================================================== + +This setting defines notification sound to be played when notification is +received in real-time on admin site. + +Provide a relative path (hosted on your webserver) to audio file as show +below. + +.. code-block:: python + + OPENWISP_NOTIFICATIONS_SOUND = "your-appname/audio/notification.mp3" + +.. _openwisp_notifications_cache_timeout: + +``OPENWISP_NOTIFICATIONS_CACHE_TIMEOUT`` +---------------------------------------- + +======= ================================= +type ``int`` +default ``172800`` `(2 days, in seconds)` +======= ================================= + +It sets the number of seconds the notification contents should be stored +in the cache. If you want cached notification content to never expire, +then set it to ``None``. Set it to ``0`` if you don't want to store +notification contents in cache at all. + +.. _openwisp_notifications_ignore_enabled_admin: + +``OPENWISP_NOTIFICATIONS_IGNORE_ENABLED_ADMIN`` +----------------------------------------------- + +======= ======== +type ``list`` +default [] +======= ======== + +This setting enables the widget which allows users to :ref:`silence +notifications for specific objects temporarily or permanently. +` in the change page of the specified +``ModelAdmin`` classes. + +E.g., if you want to enable the widget for objects of +``openwisp_users.models.User`` model, then configure the setting as +following: + +.. code-block:: python + + OPENWISP_NOTIFICATIONS_IGNORE_ENABLED_ADMIN = [ + "openwisp_users.admin.UserAdmin" + ] + +``OPENWISP_NOTIFICATIONS_POPULATE_PREFERENCES_ON_MIGRATE`` +---------------------------------------------------------- + +======= ======== +type ``bool`` +default ``True`` +======= ======== + +This setting allows to disable creating :doc:`notification preferences +` on running migrations. + +``OPENWISP_NOTIFICATIONS_NOTIFICATION_STORM_PREVENTION`` +-------------------------------------------------------- + +When the system starts creating a lot of notifications because of a +general network outage (e.g.: a power outage, a global misconfiguration), +the notification storm prevention mechanism avoids the constant displaying +of new notification alerts as well as their sound, only the notification +counter will continue updating periodically, although it won't emit any +sound or create any other visual element until the notification storm is +over. + +This setting allows tweaking how this mechanism works. + +The default configuration is as follows: + +.. code-block:: python + + OPENWISP_NOTIFICATIONS_NOTIFICATION_STORM_PREVENTION = { + # Time period for tracking burst of notifications (in seconds) + "short_term_time_period": 10, + # Number of notifications considered as a notification burst + "short_term_notification_count": 6, + # Time period for tracking notifications in long time interval (in seconds) + "long_term_time_period": 180, + # Number of notifications in long time interval to be considered as a notification storm + "long_term_notification_count": 30, + # Initial time for which notification updates should be skipped (in seconds) + "initial_backoff": 1, + # Time by which skipping of notification updates should be increased (in seconds) + "backoff_increment": 1, + # Maximum interval after which the notification widget should get updated (in seconds) + "max_allowed_backoff": 15, + } diff --git a/docs/user/web-email-notifications.rst b/docs/user/web-email-notifications.rst new file mode 100644 index 00000000..afe4da6c --- /dev/null +++ b/docs/user/web-email-notifications.rst @@ -0,0 +1,56 @@ +Web & Email Notifications +========================= + +.. contents:: **Table of Contents**: + :depth: 2 + :local: + +.. _notifications_web_notifications: + +Web Notifications +----------------- + +OpenWISP Notifications sends web notifications to recipients through +Django's admin site. The following components facilitate browsing web +notifications: + +Notification Widget +~~~~~~~~~~~~~~~~~~~ + +.. figure:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/notification-widget.gif + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/notification-widget.gif + :align: center + +A JavaScript widget has been added to make consuming notifications easy +for users. The notification widget provides the following features: + +- A minimalistic UI to help users complete tasks quickly. +- Dynamically loads notifications with infinite scrolling to prevent + unnecessary network requests. +- Option to filter unread notifications. +- Option to mark all notifications as read with a single click. + +Notification Toasts +~~~~~~~~~~~~~~~~~~~ + +.. figure:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/notification-toast.gif + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/notification-toast.gif + :align: center + +Notification toast delivers notifications in real-time, allowing users to +read notifications without opening the notification widget. A notification +bell sound is played each time a notification is displayed through the +notification toast. + +.. _notifications_email_notifications: + +Email Notifications +------------------- + +.. figure:: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/email-template.png + :target: https://raw.githubusercontent.com/openwisp/openwisp-notifications/docs/docs/images/email-template.png + :align: center + +Along with web notifications OpenWISP Notifications also sends email +notifications leveraging the :ref:`send_email feature of OpenWISP Utils +`. diff --git a/pyproject.toml b/pyproject.toml index 88a860d0..a1b2561e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,10 +9,10 @@ omit = [ ] [tool.docstrfmt] -extend_exclude = ["**/*.py", "README.rst"] +extend_exclude = ["**/*.py"] [tool.isort] -known_third_party = ["django", "django_x509"] +known_third_party = ["django", "django_x509", "notifications"] known_first_party = ["openwisp_users", "openwisp_utils", "openwisp_notifications"] default_section = "THIRDPARTY" line_length = 88 From 1c090fa36d11a189b382d6b85168cf96ae1f06c5 Mon Sep 17 00:00:00 2001 From: Federico Capoano Date: Sat, 3 Aug 2024 16:10:35 -0400 Subject: [PATCH 3/8] [docs] Updated links to docs in README [skip ci] --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index b3594ac9..d07ec353 100644 --- a/README.rst +++ b/README.rst @@ -47,9 +47,9 @@ the OpenWISP documentation. Documentation ------------- +- `Usage documentation `_ - `Developer documentation `_ -- `User documentation `_ ---- From 272414d046af7b5a902575ef08e9d72847ff43dc Mon Sep 17 00:00:00 2001 From: Federico Capoano Date: Tue, 6 Aug 2024 19:02:46 -0400 Subject: [PATCH 4/8] [docs] Spell check --- docs/developer/extending.rst | 9 ++++----- docs/developer/installation.rst | 2 +- docs/partials/developer-docs.rst | 9 +++------ docs/user/scheduled-deletion-of-notifications.rst | 2 +- docs/user/sending-notifications.rst | 2 +- docs/user/settings.rst | 2 +- docs/user/web-email-notifications.rst | 2 +- 7 files changed, 12 insertions(+), 16 deletions(-) diff --git a/docs/developer/extending.rst b/docs/developer/extending.rst index 6ee3062b..7cc868c2 100644 --- a/docs/developer/extending.rst +++ b/docs/developer/extending.rst @@ -272,7 +272,7 @@ the `"First steps with Django" section in the celery documentation 14. Import Celery Tasks ----------------------- -Add the following in your settings.py to import celery tasks from +Add the following in your ``settings.py`` to import Celery tasks from ``openwisp_notifications`` app. .. code-block:: python @@ -282,9 +282,8 @@ Add the following in your settings.py to import celery tasks from 15. Register Template Tags -------------------------- -If you need to use template tags of *openwisp_notifications*, you will -need to register as shown in `"templatetags/notification_tags.py" of -sample_notifications +If you need to use template tags, you will need to register them as shown +in `"templatetags/notification_tags.py" of sample_notifications `_. For more information about template tags in django, please refer to the @@ -322,7 +321,7 @@ See the `tests of the sample_notifications to find out how to do this. **Note**: Some tests will fail if ``templatetags`` and ``admin/base.html`` -are not configured properly. See preceeding sections to configure them +are not configured properly. See preceding sections to configure them properly. Other base classes that can be inherited and extended diff --git a/docs/developer/installation.rst b/docs/developer/installation.rst index 917605ec..627887e2 100644 --- a/docs/developer/installation.rst +++ b/docs/developer/installation.rst @@ -110,7 +110,7 @@ Alternative Sources Pypi ~~~~ -To install the latest stable version from pypi: +To install the latest Pypi: .. code-block:: shell diff --git a/docs/partials/developer-docs.rst b/docs/partials/developer-docs.rst index e6cd4d63..b391cf46 100644 --- a/docs/partials/developer-docs.rst +++ b/docs/partials/developer-docs.rst @@ -1,12 +1,9 @@ .. note:: - This documentation page is aimed at developers who want to customize, - change or extend the code of OpenWISP Notifications in order to modify - its behavior (eg: for personal or commercial purposes or to fix a bug, - implement a new feature or contribute to the project in general). + This page is for developers who want to customize or extend OpenWISP + Notifications, whether for bug fixes, new features, or contributions. - If you aren't a developer and you are looking for information on how - to use OpenWISP, please refer to: + For user guides and general information, please see: - :doc:`General OpenWISP Quickstart ` - :doc:`OpenWISP Notifications User Docs ` diff --git a/docs/user/scheduled-deletion-of-notifications.rst b/docs/user/scheduled-deletion-of-notifications.rst index 9fe76139..128b029a 100644 --- a/docs/user/scheduled-deletion-of-notifications.rst +++ b/docs/user/scheduled-deletion-of-notifications.rst @@ -11,7 +11,7 @@ Scheduled Deletion of Notifications OpenWISP, or who have deployed OpenWISP in a different way. OpenWISP Notifications provides a celery task to automatically delete -notifications older than a pre-configured number of days. In order to run +notifications older than a preconfigured number of days. In order to run this task periodically, you will need to configure ``CELERY_BEAT_SCHEDULE``. diff --git a/docs/user/sending-notifications.rst b/docs/user/sending-notifications.rst index a512748c..2abe62cc 100644 --- a/docs/user/sending-notifications.rst +++ b/docs/user/sending-notifications.rst @@ -80,7 +80,7 @@ The ``notify`` signal supports the following additional parameters: ``email_subject`` Sets subject of email notification to be sent. Defaults to the notification message. -``url`` Adds a URL in the email text, eg: +``url`` Adds a URL in the email text, e.g.: ``For more information see .`` diff --git a/docs/user/settings.rst b/docs/user/settings.rst index 451704c5..1ad84bb1 100644 --- a/docs/user/settings.rst +++ b/docs/user/settings.rst @@ -65,7 +65,7 @@ default `notification_bell.mp3 This setting defines notification sound to be played when notification is received in real-time on admin site. -Provide a relative path (hosted on your webserver) to audio file as show +Provide a relative path (hosted on your web server) to audio file as show below. .. code-block:: python diff --git a/docs/user/web-email-notifications.rst b/docs/user/web-email-notifications.rst index afe4da6c..dd57a332 100644 --- a/docs/user/web-email-notifications.rst +++ b/docs/user/web-email-notifications.rst @@ -24,7 +24,7 @@ Notification Widget A JavaScript widget has been added to make consuming notifications easy for users. The notification widget provides the following features: -- A minimalistic UI to help users complete tasks quickly. +- User Interface to help users complete tasks quickly. - Dynamically loads notifications with infinite scrolling to prevent unnecessary network requests. - Option to filter unread notifications. From e118a52a2ecc0f02da86d96dffa924347fac9c5a Mon Sep 17 00:00:00 2001 From: Federico Capoano Date: Tue, 6 Aug 2024 23:31:55 -0400 Subject: [PATCH 5/8] [docs] Minor spell check change [skip ci] --- docs/developer/extending.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/developer/extending.rst b/docs/developer/extending.rst index 7cc868c2..a91c54d9 100644 --- a/docs/developer/extending.rst +++ b/docs/developer/extending.rst @@ -258,8 +258,8 @@ For more information about URL configuration in django, please refer to the `"Routing" section in the Channels documentation `_. -13. Create celery.py --------------------- +13. Create ``celery.py`` +------------------------ Please refer to the `celery.py `_ From 58c293a83cb8ddb249fb118f0c217f0210392fb8 Mon Sep 17 00:00:00 2001 From: Federico Capoano Date: Thu, 8 Aug 2024 14:33:45 -0400 Subject: [PATCH 6/8] [docs] Recommend CELERY_BEAT_SCHEDULE.update() Recommend updating instead of redefining (which leads to issues). --- .../scheduled-deletion-of-notifications.rst | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/docs/user/scheduled-deletion-of-notifications.rst b/docs/user/scheduled-deletion-of-notifications.rst index 128b029a..b5e530be 100644 --- a/docs/user/scheduled-deletion-of-notifications.rst +++ b/docs/user/scheduled-deletion-of-notifications.rst @@ -1,7 +1,7 @@ Scheduled Deletion of Notifications =================================== -.. note:: +.. important:: If you have deployed OpenWISP using :doc:`ansible-openwisp2 ` or :doc:`docker-openwisp `, then this @@ -13,7 +13,9 @@ Scheduled Deletion of Notifications OpenWISP Notifications provides a celery task to automatically delete notifications older than a preconfigured number of days. In order to run this task periodically, you will need to configure -``CELERY_BEAT_SCHEDULE``. +``CELERY_BEAT_SCHEDULE`` in the Django project settings. + +.. include:: /partials/settings-note.rst The celery task takes only one argument, i.e. number of days. You can provide any number of days in `args` key while configuring @@ -24,15 +26,17 @@ automatically, then configure ``CELERY_BEAT_SCHEDULE`` as follows: .. code-block:: python - CELERY_BEAT_SCHEDULE = { - "delete_old_notifications": { - "task": "openwisp_notifications.tasks.delete_old_notifications", - "schedule": timedelta(days=1), - "args": ( - 10, - ), # Here we have defined 10 instead of 90 as shown in setup instructions - }, - } + CELERY_BEAT_SCHEDULE.update( + { + "delete_old_notifications": { + "task": "openwisp_notifications.tasks.delete_old_notifications", + "schedule": timedelta(days=1), + "args": ( + 10, + ), # Here we have defined 10 instead of 90 as shown in setup instructions + }, + } + ) Please refer to `"Periodic Tasks" section of Celery's documentation `_ From 73cd8589891e050784bf1e40439ccba9a654e099 Mon Sep 17 00:00:00 2001 From: Gagan Deep Date: Mon, 12 Aug 2024 23:18:43 +0530 Subject: [PATCH 7/8] [chores] Fixed configuration to track websocket coverage --- pyproject.toml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a1b2561e..ecf3108a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,13 @@ [tool.coverage.run] source = ["openwisp_notifications"] parallel = true -concurrency = ["multiprocessing"] +# To ensure correct coverage, we need to include both +# "multiprocessing" and "thread" in the concurrency list. +# This is because Django test suite incorrectly reports coverage +# when "multiprocessing" is omitted and the "--parallel" flag +# is used. Similarly, coverage for websocket consumers is +# incorrect when "thread" is omitted and pytest is used. +concurrency = ["multiprocessing", "thread"] omit = [ "openwisp_notifications/__init__.py", "*/tests/*", From 9ce2a9955b44b18db1235c4f7cdadf4188080643 Mon Sep 17 00:00:00 2001 From: Gagan Deep Date: Fri, 16 Aug 2024 22:38:25 +0530 Subject: [PATCH 8/8] [deps] Added compatibility for djangorestframework<=3.15.1 --- openwisp_notifications/tests/test_api.py | 36 ------------------------ 1 file changed, 36 deletions(-) diff --git a/openwisp_notifications/tests/test_api.py b/openwisp_notifications/tests/test_api.py index 5d5481aa..56f53abc 100644 --- a/openwisp_notifications/tests/test_api.py +++ b/openwisp_notifications/tests/test_api.py @@ -27,8 +27,6 @@ Organization = swapper_load_model('openwisp_users', 'Organization') OrganizationUser = swapper_load_model('openwisp_users', 'OrganizationUser') -NOT_FOUND_ERROR = ErrorDetail(string='Not found.', code='not_found') - class TestNotificationApi( TransactionTestCase, TestOrganizationMixin, AuthenticationMixin @@ -189,10 +187,6 @@ def test_retreive_notification_api(self): url = self._get_path('notification_detail', uuid.uuid4()) response = self.client.get(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual( - response.data, - {'detail': NOT_FOUND_ERROR}, - ) with self.subTest('Test retrieving details for existing notification'): url = self._get_path('notification_detail', n.pk) @@ -212,10 +206,6 @@ def test_read_single_notification_api(self): url = self._get_path('notification_detail', uuid.uuid4()) response = self.client.patch(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual( - response.data, - {'detail': NOT_FOUND_ERROR}, - ) with self.subTest('Test for existing notification'): self.assertTrue(n.unread) @@ -234,10 +224,6 @@ def test_notification_delete_api(self): url = self._get_path('notification_detail', uuid.uuid4()) response = self.client.delete(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual( - response.data, - {'detail': NOT_FOUND_ERROR}, - ) with self.subTest('Test for valid notification'): url = self._get_path('notification_detail', n.pk) @@ -404,13 +390,11 @@ def test_notification_recipients(self): url = self._get_path('notification_detail', n.pk) response = self.client.get(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual(response.data, {'detail': NOT_FOUND_ERROR}) with self.subTest('Test marking a notification as read'): url = self._get_path('notification_detail', n.pk) response = self.client.patch(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual(response.data, {'detail': NOT_FOUND_ERROR}) # Check Karen's notification is still unread n.refresh_from_db() self.assertTrue(n.unread) @@ -419,7 +403,6 @@ def test_notification_recipients(self): url = self._get_path('notification_detail', n.pk) response = self.client.delete(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual(response.data, {'detail': NOT_FOUND_ERROR}) # Check Karen's notification is not deleted self.assertEqual(Notification.objects.count(), 1) @@ -468,7 +451,6 @@ def test_malformed_notifications(self): url = self._get_path('notification_detail', n.pk) response = self.client.get(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual(response.data, {'detail': NOT_FOUND_ERROR}) @capture_any_output() @mock_notification_types @@ -514,7 +496,6 @@ def test_obsolete_notifications_busy_worker(self, mocked_task): url = self._get_path('notification_read_redirect', notification.pk) response = self.client.get(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual(response.data, {'detail': NOT_FOUND_ERROR}) def test_notification_setting_list_api(self): self._create_org_user(is_admin=True) @@ -618,10 +599,6 @@ def test_retreive_notification_setting_api(self): url = self._get_path('notification_setting', uuid.uuid4()) response = self.client.get(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual( - response.data, - {'detail': NOT_FOUND_ERROR}, - ) with self.subTest('Test retrieving details for existing notification setting'): url = self._get_path( @@ -644,10 +621,6 @@ def test_update_notification_setting_api(self): url = self._get_path('notification_setting', uuid.uuid4()) response = self.client.put(url, data=update_data) self.assertEqual(response.status_code, 404) - self.assertDictEqual( - response.data, - {'detail': NOT_FOUND_ERROR}, - ) with self.subTest('Test retrieving details for existing notification setting'): url = self._get_path( @@ -677,7 +650,6 @@ def _unread_notification(notification): url = self._get_path('notification_read_redirect', uuid.uuid4()) response = self.client.get(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual(response.data, {'detail': NOT_FOUND_ERROR}) with self.subTest('Test existent notification'): url = self._get_path('notification_read_redirect', notification.pk) @@ -767,10 +739,6 @@ def test_delete_ignore_obj_notification_api(self, mocked_task): ) response = self.client.delete(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual( - response.data, - {'detail': NOT_FOUND_ERROR}, - ) with self.subTest('Test for existing object notification'): url = self._get_path( @@ -799,10 +767,6 @@ def test_retrieve_ignore_obj_notification_api(self, mocked_task): ) response = self.client.delete(url) self.assertEqual(response.status_code, 404) - self.assertDictEqual( - response.data, - {'detail': NOT_FOUND_ERROR}, - ) with self.subTest('Test for existing object notification'): url = self._get_path(

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