├── .github ├── FUNDING.yml └── workflows │ ├── release.yml │ └── tests.yml ├── .gitignore ├── CLAUDE.md ├── LICENSE ├── README.md ├── docs ├── customizing.md ├── development.md ├── grouping.md ├── migrate.md ├── multilingual.md ├── performance.md └── preferences.md ├── example ├── .vscode │ └── settings.json ├── config │ ├── __init__.py │ ├── asgi.py │ ├── middleware.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── notifications │ ├── __init__.py │ ├── admin.py │ ├── context_processors.py │ ├── migrations │ │ ├── 0001_create_default_user.py │ │ └── __init__.py │ ├── templates │ │ ├── home.html │ │ ├── notifications.html │ │ └── settings.html │ ├── templatetags │ │ ├── __init__.py │ │ └── notification_utils.py │ ├── types.py │ ├── urls.py │ └── views.py ├── pyproject.toml ├── templates │ └── base.html └── uv.lock ├── generic_notifications ├── __init__.py ├── apps.py ├── channels.py ├── digest.py ├── frequencies.py ├── management │ ├── __init__.py │ └── commands │ │ ├── __init__.py │ │ └── send_notification_digests.py ├── migrations │ ├── 0001_initial.py │ ├── 0002_alter_disablednotificationtypechannel_id_and_more.py │ ├── 0003_remove_notification_notification_channels_gin_and_more.py │ ├── 0004_rename_emailfrequency_notificationfrequency.py │ ├── 0005_alter_notificationfrequency_options_and_more.py │ ├── 0006_alter_notificationfrequency_unique_together_and_more.py │ └── __init__.py ├── models.py ├── preferences.py ├── registry.py ├── types.py └── utils.py ├── pyproject.toml └── tests ├── __init__.py ├── settings.py ├── test_channel_defaults.py ├── test_channels.py ├── test_helpers.py ├── test_management_commands.py ├── test_models.py ├── test_performance.py ├── test_preferences.py ├── test_registry.py ├── test_types.py └── test_utils.py /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/.gitignore -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/README.md -------------------------------------------------------------------------------- /docs/customizing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/docs/customizing.md -------------------------------------------------------------------------------- /docs/development.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/docs/development.md -------------------------------------------------------------------------------- /docs/grouping.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/docs/grouping.md -------------------------------------------------------------------------------- /docs/migrate.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/docs/migrate.md -------------------------------------------------------------------------------- /docs/multilingual.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/docs/multilingual.md -------------------------------------------------------------------------------- /docs/performance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/docs/performance.md -------------------------------------------------------------------------------- /docs/preferences.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/docs/preferences.md -------------------------------------------------------------------------------- /example/.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/.vscode/settings.json -------------------------------------------------------------------------------- /example/config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/config/asgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/config/asgi.py -------------------------------------------------------------------------------- /example/config/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/config/middleware.py -------------------------------------------------------------------------------- /example/config/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/config/settings.py -------------------------------------------------------------------------------- /example/config/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/config/urls.py -------------------------------------------------------------------------------- /example/config/wsgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/config/wsgi.py -------------------------------------------------------------------------------- /example/manage.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/manage.py -------------------------------------------------------------------------------- /example/notifications/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/notifications/admin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/admin.py -------------------------------------------------------------------------------- /example/notifications/context_processors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/context_processors.py -------------------------------------------------------------------------------- /example/notifications/migrations/0001_create_default_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/migrations/0001_create_default_user.py -------------------------------------------------------------------------------- /example/notifications/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/notifications/templates/home.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/templates/home.html -------------------------------------------------------------------------------- /example/notifications/templates/notifications.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/templates/notifications.html -------------------------------------------------------------------------------- /example/notifications/templates/settings.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/templates/settings.html -------------------------------------------------------------------------------- /example/notifications/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/notifications/templatetags/notification_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/templatetags/notification_utils.py -------------------------------------------------------------------------------- /example/notifications/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/types.py -------------------------------------------------------------------------------- /example/notifications/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/urls.py -------------------------------------------------------------------------------- /example/notifications/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/notifications/views.py -------------------------------------------------------------------------------- /example/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/pyproject.toml -------------------------------------------------------------------------------- /example/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/templates/base.html -------------------------------------------------------------------------------- /example/uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/example/uv.lock -------------------------------------------------------------------------------- /generic_notifications/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/__init__.py -------------------------------------------------------------------------------- /generic_notifications/apps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/apps.py -------------------------------------------------------------------------------- /generic_notifications/channels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/channels.py -------------------------------------------------------------------------------- /generic_notifications/digest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/digest.py -------------------------------------------------------------------------------- /generic_notifications/frequencies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/frequencies.py -------------------------------------------------------------------------------- /generic_notifications/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /generic_notifications/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /generic_notifications/management/commands/send_notification_digests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/management/commands/send_notification_digests.py -------------------------------------------------------------------------------- /generic_notifications/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/migrations/0001_initial.py -------------------------------------------------------------------------------- /generic_notifications/migrations/0002_alter_disablednotificationtypechannel_id_and_more.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/migrations/0002_alter_disablednotificationtypechannel_id_and_more.py -------------------------------------------------------------------------------- /generic_notifications/migrations/0003_remove_notification_notification_channels_gin_and_more.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/migrations/0003_remove_notification_notification_channels_gin_and_more.py -------------------------------------------------------------------------------- /generic_notifications/migrations/0004_rename_emailfrequency_notificationfrequency.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/migrations/0004_rename_emailfrequency_notificationfrequency.py -------------------------------------------------------------------------------- /generic_notifications/migrations/0005_alter_notificationfrequency_options_and_more.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/migrations/0005_alter_notificationfrequency_options_and_more.py -------------------------------------------------------------------------------- /generic_notifications/migrations/0006_alter_notificationfrequency_unique_together_and_more.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/migrations/0006_alter_notificationfrequency_unique_together_and_more.py -------------------------------------------------------------------------------- /generic_notifications/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /generic_notifications/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/models.py -------------------------------------------------------------------------------- /generic_notifications/preferences.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/preferences.py -------------------------------------------------------------------------------- /generic_notifications/registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/registry.py -------------------------------------------------------------------------------- /generic_notifications/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/types.py -------------------------------------------------------------------------------- /generic_notifications/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/generic_notifications/utils.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/pyproject.toml -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/settings.py -------------------------------------------------------------------------------- /tests/test_channel_defaults.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_channel_defaults.py -------------------------------------------------------------------------------- /tests/test_channels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_channels.py -------------------------------------------------------------------------------- /tests/test_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_helpers.py -------------------------------------------------------------------------------- /tests/test_management_commands.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_management_commands.py -------------------------------------------------------------------------------- /tests/test_models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_models.py -------------------------------------------------------------------------------- /tests/test_performance.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_performance.py -------------------------------------------------------------------------------- /tests/test_preferences.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_preferences.py -------------------------------------------------------------------------------- /tests/test_registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_registry.py -------------------------------------------------------------------------------- /tests/test_types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_types.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/django-generic-notifications/HEAD/tests/test_utils.py --------------------------------------------------------------------------------