Work in progress.
- Fixed accidental overwriting of user preferences #427
- Added dedicated notification preferences page.
- Added organization notification settings.
- Added Email Batch Summary.
- Added email verification warning #281.
- Improved UI of email notifications.
- Disallowed changing preferences for
generic_messagenotification type #359. - Dropped dependency on
django-notifications#353. - Removed deprecated code for updating superuser notification settings #283.
- Bumped
openwisp-users~=1.2.0. - Bumped
openwisp-utils~=1.2.0. - Bumped
markdown~=3.9. - Added support for Django
5.x. - Added support for Python
3.11,3.12, and3.13. - Dropped support for Django
3.2and4.1. - Dropped support for Python
3.8.
- Prevented notification toast from appearing while leaving a page #264.
- Ensured notification widget closes only on user-initiated clicks.
- Fixed notification widget loading on non-admin pages #271.
- Allowed overriding
openwisp_usersapp label in tests. - Hid notification preferences for disabled organizations #366.
- Fixed JavaScript logic for creating notification toasts.
- Fixed issue with notification widget removing URL fragments.
- Added support for defining related object links in notification configurations.
- Introduced a "generic_message" notification type to deliver custom notifications in the user interface.
- Enabled filtering of
NotificationSettingusingorganization_slugin the REST API.
- Bumped
django-notifications-hq~=1.8.3. - Bumped
markdown~=3.6.0. - Bumped
openwisp-users~=1.1.0. - Bumped
openwisp-utils[rest,celery]~=1.1.1. - Added support for Python
3.10. - Dropped support for Python
3.7. - Added support for Django
4.2.x. - Dropped support for Django
4.0.x.
- Fixed issue where users received multiple identical notifications when member of multiple organizations.
- Increased
timeoutIntervalfor theReconnectingWebSocketto7seconds to prevent termination due to timeout on slow network connections.
- Flagged tests that should not be run on a production environment: These tests depend on the static storage backend of the project. In a production environment, the filenames could get changed due to static minification and cache invalidation. Hence, these tests should not be run on the production environment because they'll fail.
- Fixed hardcoded static image URLs. These create issues when static files are served using an external service (e.g. S3 storage buckets).
- Fixed "Organization.DoesNotExist" error on creating a new organization.
- Fixed handling of the "OPENWISP_NOTIFICATIONS_SOUND" setting. The
code was not passing the sound file path to the utilities of
django.contrib.staticfilesand hence the sound file was not loaded properly when using different static storage backend.
- Introduced mechanism to clear cache on specific signals
- Removed notification widget and toast template tags: the template tags "notification_widget" and "notification_toast" have been removed and their HTML is added directly to the admin/base_site.html template
- Changed the API URL prefix to make it consistent with other OpenWISP modules
- Dropped support for Python 3.6
- Added support for Python 3.8 and 3.9
- Dropped support for Django 2.2
- Added support for Django 3.2 and 4.0
- Updated django channels to 3.0.x
- Upgraded celery to 5.2.x
- Upgraded openwisp-utils to 1.0.x
- Restyled widget to new OpenWISP theme plus various UI fixes and improvements
- Restyled notification email template
- When clicking on the mark as read button, the notification widget now instantaneously marks notification as read instead of waiting for the API response
- Added
modelsparameter toregister_notification_type - Switch to openwisp-utils email template
- Optimized query for flagging all notification as read via API
- Added celery time limits to tasks except
delete_old_notifications(which may take a long time to finish in big installations) - Changed wording of "unsubscribe" button, which has been renamed to "Silence notifications"
- Added dedicated channel layer group for each user to avoid generating
warnings like
63 of 67 channels over capacity in group ow_notification
- Fixed a bug which caused to lose notification preferences of users
- Fixed extensibility of openwisp-users: removed openwisp-users as a direct dependency from migrations file because it was creating issues when extending openwisp-users
- Fixed multiple jquery inclusions in
base_site.html - Fixed WSS connection error when running on http
- Fixed creation of notification settings for superuser
- Fixed unregistered notification type breaking API
- Fixed closing notification toast on slow connections
- Fixed notification storms: when many notifications are created due to severe network outages, the UI is not flooded anymore
- Fixed browsable API view for NotificationReadAllView
- Added error handling for sending emails when notification settings for a specific user are not present
- Fixed unsubscribe / silence notifications button alignment
- Fixed Swagger API doc issues
- Fixed
create_notificationcommand to honor organization notification preferences
- Fixed notification alert sound being played from multiple windows
- [dependencies] Upgraded
openwisp-utils~=0.7.0andopenwisp-users~=0.5.0
- Added management command to populate notification preferences
- Fixed ignore notification widget loading on add views of admin site
- Fixed notification widget partially covering entire webpage
- Resolved accessibility issue with the ignore notification widget:
added
Escapekey handler for the ignore notification widget
- Added support for Django 3.1
- Added possibility of silencing notifications for specific objects temporarily or permanently
- Resolved accessibility issues with the notification widget: all clickable items are now browsable with the keyboard as well
- Added notification types
- Added configurable notification email template
- Added swappable models and extensible classes
- Added REST API for CRUD operations
- Added option to define notification preference
- Added real-time notification alerts
- Added automatic cleanup of old notifications
- Added configurable host for API endpoints.