Skip to content

2.0.0 (October 12, 2025)

Choose a tag to compare

@github-actions github-actions released this 12 Oct 14:52
· 3 commits to main since this release
68682ce

Improvements

  • Moved the actual sending of emails within EmailChannel to its own method. This makes it easy to subclass the EmailChannel and handle the sending via Celery for example, without having to repeat all the other logic of the EmailChannel. (closes #12)
  • The digest sending has been moved to its own send_notification_digests function. This is used by the send_digest_emails command (renamed to send_notification_digests) but can easily be used to start the digest sending via other means, in case you don’t want to use the management command as a cron job (closes #9)
  • Replaced the global sent_email_at tracking with a per-channel delivery status via a new NotificationChannel model (closes #16)
  • Renamed classes and methods to remove "email" terminology and make them channel-agnostic (closes #15)
  • Enhanced channel architecture to support digest-only and realtime-only channels

Documentation changes

Breaking changes

Class renames

  • Renamed NotificationChannel -> BaseChannel
  • Renamed NotificationFrequency -> BaseFrequency

Model changes

  • Renamed EmailFrequency model to NotificationFrequency model

Method renames

  • Renamed NotificationType.default_email_frequency -> NotificationType.default_frequency
  • Renamed NotificationType.set_email_frequency -> NotificationType.set_frequency
  • Renamed NotificationType.get_email_frequency -> NotificationType.get_frequency
  • Renamed NotificationType.reset_email_frequency_to_default -> NotificationType.reset_frequency_to_default

Command and function renames

  • Renamed the send_digest_emails command to send_notification_digests

API changes

  • The get_notification_preferences function now returns notification_frequency instead of email_frequency
  • The process method moved from individual channel implementations to the BaseChannel class, and calls either send_now or send_digest