argus-server 2.5.0__tar.gz → 2.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {argus_server-2.5.0 → argus_server-2.6.0}/CHANGELOG.md +17 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/NOTES.md +13 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/PKG-INFO +1 -1
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/customizing-filtering.rst +14 -9
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/sonarqube.rst +9 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/htmx-frontend.rst +1 -1
- argus_server-2.6.0/requirements/django52.txt +1 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/requirements-django52.txt +3 -3
- {argus_server-2.5.0 → argus_server-2.6.0}/requirements.txt +3 -3
- argus_server-2.6.0/src/argus/filter/checks.py +25 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/default.py +1 -2
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/filterwrapper.py +26 -17
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/queryset_filters.py +16 -1
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/columns.py +5 -5
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/views.py +1 -1
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/styles.css +287 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/30-incident-table.css +4 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +1 -1
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack_icon.html +4 -2
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status_icon.html +3 -2
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_base_form.html +2 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_form.html +6 -3
- argus_server-2.6.0/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_preview.html +30 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/messages/_notification_messages.html +1 -1
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/urls.py +1 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/views.py +35 -2
- argus_server-2.6.0/src/argus/notificationprofile/filterwrapper.py +47 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/__init__.py +7 -5
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/base.py +1 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/test_CI.py +11 -0
- argus_server-2.6.0/src/argus/version.py +1 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/test_filterwrapper.py +39 -40
- argus_server-2.6.0/tests/htmx/user/test_views.py +34 -0
- argus_server-2.6.0/tests/notificationprofile/test_filterwrapper.py +84 -0
- argus_server-2.6.0/tests/util/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tox.ini +13 -1
- argus_server-2.5.0/requirements/django52.txt +0 -1
- argus_server-2.5.0/src/argus/filter/checks.py +0 -22
- argus_server-2.5.0/src/argus/version.py +0 -1
- {argus_server-2.5.0 → argus_server-2.6.0}/.git-blame-ignore-revs +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/.gitattributes +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/.gitignore +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/.mailmap +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/.pre-commit-config.yaml +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/.readthedocs.yaml +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/.sonarcloud.properties +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/CONTRIBUTING.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/CONTRIBUTORS.md +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/Dockerfile +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/LICENSE +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/MAINTAINING.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/Makefile +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/README.md +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/UPGRADING.md +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/changelog.d/.gitkeep +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/cmd.sh-template +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/codecov.yml +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/constraints.txt +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docker/Dockerfile +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docker/README.md +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docker/docker-entrypoint.sh +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docker/dockersettings.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docker-compose.yml +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/Makefile +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/_exts/djangodocs.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/_static/.gitkeep +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/_templates/.gitkeep +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/about-argus.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/conf.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/customization/htmx-frontend.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/customization.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/add-more-preferences.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/change-settings.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/changelog-entry.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/commit-messages.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/federated-logins.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/howtos-for-git.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/howtos-for-github.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/override_templates.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/notification-system-testing.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/regenerate-the-ER-diagram.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/release-checklist.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/trigger-test-error-pages.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/update-contributors.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/vendor-a-repo.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/makefile-rules.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/management-commands.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/notes.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/styleguide.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/troubleshooting.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/development.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/django_settings.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/default_timeslot.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/destinations_view.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/example_timeslot.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/filter_selector.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/incident_details_view.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/incidents_filter.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/incidents_page.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/new_notification_profile.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/notification_profiles.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/synced_destination_delete_error.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/timeslots_view.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/unsaved_recurrence.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/user_menu.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/index.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/_note.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/glue-services/index.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/index.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/email-plugin.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/index.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/sms-plugin.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/writing-notification-plugins.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/ticket-systems/index.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/make.bat +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/admin.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/api/v2.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/api.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/authentication.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/glossary.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/img/ER_model.png +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/models.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/planned-maintenance.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/site-specific-settings.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/docs/user-manual.rst +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/pyproject.toml +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/requirements/dev.txt +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/requirements/please-pip-sync.txt +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/requirements/test.txt +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/admin.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/authentication.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/context_processors.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/factories.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/changeuser.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/createuser.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/setpassword.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0001_initial.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/static/favicon.svg +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/templates/base.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/templates/index.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/compat.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/close_incident.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/create_fake_incident.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/create_source.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/initial_setup.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/list_filters.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/stresstest.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/drf/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/drf/permissions.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/factories.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/filters.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/primitive_serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/swappable/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/swappable/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/validators.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/appconfig.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/auth/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/auth/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/checks.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/constants.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/context_processors.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/dateformat/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/dateformat/constants.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/defaults.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/forms.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/forms.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/htmx_urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/constants.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/filter.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/base.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/incident_actions.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/incident_filters.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/management/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/management/commands/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/middleware.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/migrations/0001_initial.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/migrations/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/modals.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/notificationprofile/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/notificationprofile/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/notificationprofile/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/request.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/root_urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/settings.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/choices-11.1.0.min.js +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/logo_white.svg +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/README.md +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/config.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/get_tailwind.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/25-choices.css +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/35-cards.css +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/styles.css +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/tailwind.config.js +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/400.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/401.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/403.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/404.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/410.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/500.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/errors/dict/ul.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/errors/list/ul.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/field.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/label.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/checkbox.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/checkbox_option.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/classless_attrs.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/date.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/datetime.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/input.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/radio_option.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/range.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/select.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/time.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/base.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/components/_page_title.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/components/incident_list_refresh_info_select.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_create_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_delete_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_edit_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/destination_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/input_field.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/search_select_multiple.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_base_incident_table.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_autorefresh.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_link_to_details.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_footer.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_unpaged_incident_table.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_age.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status_icons.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header_content.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_list_select_all_checkbox_header.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source_type.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_and_age.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/search_fields/input_search.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/incident_detail.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/base.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/styleguide.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/base.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_incidents_table_columns_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_preference_choice_nopreview.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_datetime.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_theme.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_user_menu.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_field_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_preference_form_script.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_theme_and_format_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preferences_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/radio_option.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx_base.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/messages/_notification_message.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/registration/login.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/tailwind/styles.css +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templatetags/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templatetags/argus_htmx.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/themes/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/themes/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/timeslot/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/timeslot/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/timeslot/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/factories.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/forms.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/widgets.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/admin.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/constants.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/factories.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/fields.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/forms.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0001_initial.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0003_incident_level.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0009_use_bigautofield_on_quickly_growing_tables.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/signals.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/ticket/default_ticket_body.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/base.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/dummy.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/validators.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/widgets.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/admin.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/checks.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/factories.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/base.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/email.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/sms_as_email.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0018_remove_closed_and_unacked_from_filterblob.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/signals.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/admin.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/apps.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/factories.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/migrations/0001_initial.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/migrations/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/templates/plannedmaintenance/admin/planned_maintenance_change_form.html +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/api_v2_urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/logging.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/_serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/backend.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/dev.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/dockerdev.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/prod.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/urls.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/wsgi.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/admin_utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/datetime_utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/testing.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/management_commands/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/management_commands/test_changeuser.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/management_commands/test_createuser.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_auth.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_knox_views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_bulk_incidents.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_check_token_expiry.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_close_incident.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_create_fake_incident.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_create_source.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_gen_secret_key.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_initial_setup.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_list_filters.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_toggle_profile_activation.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/dummyplugin.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/test_filterplugin.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/test_queryset_filters.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/helpers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_customization.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_filter.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_forms_incident_filters.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_utils.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/notificationprofile/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/notificationprofile/test_forms.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_context_processors.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_incident_columns_rendering.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_middleware.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_templatetags.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_utils.py +0 -0
- {argus_server-2.5.0/tests/incident/fixtures → argus_server-2.6.0/tests/htmx/user}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/__init__.py +0 -0
- {argus_server-2.5.0/tests/incident/ticket_plugins → argus_server-2.6.0/tests/incident/fixtures}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_change_event.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_create_fake_incident.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_event.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_filters.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_incident.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_incident_fields.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_queryset.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_source_system.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_source_system_type.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_views.py +0 -0
- {argus_server-2.5.0/tests/incident/unit → argus_server-2.6.0/tests/incident/ticket_plugins}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/ticket_plugins/test_base.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/ticket_plugins/test_dummy.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/ticket_plugins/test_utils.py +0 -0
- {argus_server-2.5.0/tests/notificationprofile/destinations → argus_server-2.6.0/tests/incident/unit}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/unit/test_incident_details_url.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/migration_example.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/__init__.py +0 -0
- {argus_server-2.5.0/tests/notificationprofile/migrations → argus_server-2.6.0/tests/notificationprofile/destinations}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/destinations/test_email.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/destinations/test_sms.py +0 -0
- {argus_server-2.5.0/tests/plannedmaintenance → argus_server-2.6.0/tests/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_github236.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_media.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_serializers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_views.py +0 -0
- {argus_server-2.5.0/tests/site → argus_server-2.6.0/tests/plannedmaintenance}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/plannedmaintenance/test_models.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/plannedmaintenance/test_utils.py +0 -0
- {argus_server-2.5.0/tests/util → argus_server-2.6.0/tests/site}/__init__.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_misc.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_settings_helpers.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_settings_validators.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_views.py +0 -0
- {argus_server-2.5.0 → argus_server-2.6.0}/tests/util/test_utils.py +0 -0
|
@@ -8,6 +8,23 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## [2.6.0] - 2026-01-06
|
|
12
|
+
|
|
13
|
+
This is a tiny release to finish up what was started at the end of 2025.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Add preview for incident table preferences
|
|
18
|
+
([#1658](https://github.com/Uninett/Argus/issues/1658))
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Filter on source type in dashboard. The previous release made it work for
|
|
23
|
+
notifications but not in the incident list in the frontend.
|
|
24
|
+
- Fix bug where the incident table overlaps filter dropdowns
|
|
25
|
+
([#1669](https://github.com/Uninett/Argus/issues/1669))
|
|
26
|
+
|
|
27
|
+
|
|
11
28
|
## [2.5.0] - 2025-12-04
|
|
12
29
|
|
|
13
30
|
The big new thing this time around is a way to prevent notifications from
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
This file documents changes to Argus that are relevant for operations,
|
|
4
4
|
customizers and end-users.
|
|
5
5
|
|
|
6
|
+
|
|
7
|
+
## [2.6.0] - 2026-01-06
|
|
8
|
+
|
|
9
|
+
This is a tiny release to finish up what was started at the end of 2025.
|
|
10
|
+
|
|
11
|
+
The feature for having mutiple column presets for the incident list is now
|
|
12
|
+
finished. Please make add issue if you have a column-type you would like
|
|
13
|
+
added.
|
|
14
|
+
|
|
15
|
+
Also, there were some bugs with the typeahead for the tag filter and the new
|
|
16
|
+
source system type filter that was introduced in 2.4.0, the ones we know of
|
|
17
|
+
have been fixed.
|
|
18
|
+
|
|
6
19
|
## [2.5.0] - 2025-12-04
|
|
7
20
|
|
|
8
21
|
This release adds a new app, "argus.plannedmaintenance", which uses a new
|
|
@@ -27,24 +27,29 @@ changed incidents.
|
|
|
27
27
|
FilterWrapper
|
|
28
28
|
-------------
|
|
29
29
|
|
|
30
|
-
Base class, the important methods are ``incident_fits`` and
|
|
30
|
+
Base class, the important methods are ``incident_fits``, ``event_fits`` and
|
|
31
|
+
``filter_fits``. The latter two take a single event. ``filter_fits`` checks
|
|
32
|
+
both ``event_fits`` and ``incident_fits``, in that order.
|
|
31
33
|
|
|
32
34
|
FallbackFilterWrapper
|
|
33
35
|
---------------------
|
|
34
36
|
|
|
35
37
|
Subclass of ``FilterWrapper``. Merges a filter with the filter in the setting
|
|
36
|
-
|
|
38
|
+
:setting:`ARGUS_FALLBACK_FILTER`.
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
PrecisionFilterWrapper
|
|
41
|
+
----------------------
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
AND's together multiple simple filters, using ``FilterWrapper`` by default. Not
|
|
44
|
+
used directly.
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
Has the methods ``incident_fits`` and ``event_fits``, and ``filter_fits`` which
|
|
47
|
+
takes an event and checks both ``event_fits`` and ``incident_fits``, in that
|
|
48
|
+
order.
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
``NotificationProfile`` has the subclass ``NotificationProfileFilterWrapper``,
|
|
51
|
+
which combines a ``PrecisionFilterWrapper`` with a ``FallbackFilterWrapper``.
|
|
52
|
+
It is thus affected by the setting :setting:`ARGUS_FALLBACK_FILTER`.
|
|
48
53
|
|
|
49
54
|
---------------------------------------
|
|
50
55
|
Matching a filter to multiple incidents
|
|
@@ -16,4 +16,13 @@ python:S1192 - String literals should not be duplicated
|
|
|
16
16
|
If it makes it more readable, for example if configuration is happening within the
|
|
17
17
|
Python code, then we accept it with "This is better for readability".
|
|
18
18
|
|
|
19
|
+
python:S2208 - Wildcard imports should not be used
|
|
20
|
+
--------------------------------------------------
|
|
21
|
+
|
|
22
|
+
This is okay in settings files. Mark as false positive with "Django standard
|
|
23
|
+
practice for settings files". Notice that `sonarqube`_ ignores all ``#noqa``
|
|
24
|
+
so "#noqa: `F401`_, `F403`_" won't help.
|
|
25
|
+
|
|
19
26
|
.. _sonarqube: https://www.sonarsource.com/products/sonarcloud/
|
|
27
|
+
.. _F401: https://www.flake8rules.com/rules/F401.html
|
|
28
|
+
.. _F403: https://www.flake8rules.com/rules/F403.html
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
django>=5.2.9,<6.0
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# This file is autogenerated by pip-compile with Python 3.12
|
|
3
3
|
# by the following command:
|
|
4
4
|
#
|
|
5
|
-
# pip-compile --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
|
|
5
|
+
# pip-compile --no-strip-extras --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
|
|
6
6
|
#
|
|
7
7
|
annotated-types==0.7.0
|
|
8
8
|
# via pydantic
|
|
@@ -37,7 +37,7 @@ defusedxml==0.7.1
|
|
|
37
37
|
# social-auth-core
|
|
38
38
|
dj-database-url==2.3.0
|
|
39
39
|
# via argus-server (pyproject.toml)
|
|
40
|
-
django==5.2.
|
|
40
|
+
django==5.2.9
|
|
41
41
|
# via
|
|
42
42
|
# -r requirements/django52.txt
|
|
43
43
|
# argus-server (pyproject.toml)
|
|
@@ -162,7 +162,7 @@ tzdata==2025.2
|
|
|
162
162
|
# via faker
|
|
163
163
|
uritemplate==4.1.1
|
|
164
164
|
# via drf-spectacular
|
|
165
|
-
urllib3==2.
|
|
165
|
+
urllib3==2.6.0
|
|
166
166
|
# via
|
|
167
167
|
# -r constraints.txt
|
|
168
168
|
# requests
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# This file is autogenerated by pip-compile with Python 3.12
|
|
3
3
|
# by the following command:
|
|
4
4
|
#
|
|
5
|
-
# pip-compile --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
|
|
5
|
+
# pip-compile --no-strip-extras --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
|
|
6
6
|
#
|
|
7
7
|
annotated-types==0.7.0
|
|
8
8
|
# via pydantic
|
|
@@ -37,7 +37,7 @@ defusedxml==0.7.1
|
|
|
37
37
|
# social-auth-core
|
|
38
38
|
dj-database-url==2.3.0
|
|
39
39
|
# via argus-server (pyproject.toml)
|
|
40
|
-
django==5.2.
|
|
40
|
+
django==5.2.9
|
|
41
41
|
# via
|
|
42
42
|
# -r requirements/django52.txt
|
|
43
43
|
# argus-server (pyproject.toml)
|
|
@@ -162,7 +162,7 @@ tzdata==2025.2
|
|
|
162
162
|
# via faker
|
|
163
163
|
uritemplate==4.1.1
|
|
164
164
|
# via drf-spectacular
|
|
165
|
-
urllib3==2.
|
|
165
|
+
urllib3==2.6.0
|
|
166
166
|
# via
|
|
167
167
|
# -r constraints.txt
|
|
168
168
|
# requests
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from django.conf import settings
|
|
2
|
+
from django.core.checks import Warning
|
|
3
|
+
|
|
4
|
+
from rest_framework import serializers
|
|
5
|
+
|
|
6
|
+
from argus.filter.validators import validate_jsonfilter
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ["fallback_filter_check"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def fallback_filter_check(app_configs, **kwargs):
|
|
13
|
+
fallback_filter = getattr(settings, "ARGUS_FALLBACK_FILTER", {})
|
|
14
|
+
try:
|
|
15
|
+
validate_jsonfilter(fallback_filter)
|
|
16
|
+
except serializers.ValidationError:
|
|
17
|
+
warning = Warning(
|
|
18
|
+
'The ARGUS_FALLBACK_FILTER setting is invalid and has been set to "{}"',
|
|
19
|
+
hint="See the docs for the format of the ARGUS_FALLBACK_FILTER setting",
|
|
20
|
+
obj=fallback_filter,
|
|
21
|
+
id="argus_filter.W001",
|
|
22
|
+
)
|
|
23
|
+
return [warning]
|
|
24
|
+
else:
|
|
25
|
+
return []
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
from .filterwrapper import ( # noqa: F401
|
|
2
2
|
FilterWrapper,
|
|
3
3
|
FallbackFilterWrapper,
|
|
4
|
-
|
|
5
|
-
ComplexFallbackFilterWrapper,
|
|
4
|
+
PrecisionFilterWrapper,
|
|
6
5
|
)
|
|
7
6
|
from .queryset_filters import QuerySetFilter # noqa: F401
|
|
8
7
|
from .filters import ( # noqa: F401
|
|
@@ -9,14 +9,15 @@ from argus.compat import StrEnum
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
|
+
from django.db.models import Model
|
|
13
|
+
from django.db.models.query import QuerySet
|
|
12
14
|
from argus.incident.models import Event, Incident
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
__all__ = [
|
|
16
18
|
"FilterWrapper",
|
|
17
19
|
"FallbackFilterWrapper",
|
|
18
|
-
"
|
|
19
|
-
"ComplexFallbackFilterWrapper",
|
|
20
|
+
"PrecisionFilterWrapper",
|
|
20
21
|
]
|
|
21
22
|
|
|
22
23
|
|
|
@@ -120,6 +121,13 @@ class FilterWrapper:
|
|
|
120
121
|
LOG.debug("Filter: %s: HIT!", self)
|
|
121
122
|
return not any_failed
|
|
122
123
|
|
|
124
|
+
def filter_fits(self, event) -> bool:
|
|
125
|
+
event_fits = self.event_fits(event)
|
|
126
|
+
incident_fits = self.incident_fits(event.incident)
|
|
127
|
+
if event_fits and incident_fits:
|
|
128
|
+
return True
|
|
129
|
+
return False
|
|
130
|
+
|
|
123
131
|
|
|
124
132
|
class FallbackFilterWrapper(FilterWrapper):
|
|
125
133
|
"Changed by ARGUS_FALLBACK_FILTER setting"
|
|
@@ -133,36 +141,37 @@ class FallbackFilterWrapper(FilterWrapper):
|
|
|
133
141
|
return value if value else self.fallback_filter.get(key, None)
|
|
134
142
|
|
|
135
143
|
|
|
136
|
-
class
|
|
144
|
+
class PrecisionFilterWrapper:
|
|
145
|
+
"Combine several filters together via Boolean AND for higher precision"
|
|
146
|
+
|
|
137
147
|
filterwrapper = FilterWrapper
|
|
138
148
|
|
|
139
|
-
def __init__(self,
|
|
140
|
-
|
|
149
|
+
def __init__(self, model_or_queryset: Model | QuerySet, filterwrapper: Optional[FilterWrapper] = None):
|
|
150
|
+
# subclasses accepting model needs to pass on the manager in super()
|
|
151
|
+
self.queryset = model_or_queryset
|
|
152
|
+
if filterwrapper:
|
|
153
|
+
self.filterwrapper = filterwrapper
|
|
141
154
|
|
|
142
155
|
def incident_fits(self, incident: Incident) -> bool:
|
|
143
156
|
"""Check against multiple filters
|
|
144
157
|
|
|
145
158
|
The filters are AND-ed together for greater precision.
|
|
146
159
|
"""
|
|
147
|
-
|
|
148
|
-
return False
|
|
149
|
-
is_selected_by_time = self.profile.timeslot.timestamp_is_within_time_recurrences(incident.start_time)
|
|
150
|
-
if not is_selected_by_time:
|
|
151
|
-
return False
|
|
152
|
-
for f in self.profile.filters.only("filter"):
|
|
160
|
+
for f in self.queryset.only("filter"):
|
|
153
161
|
if not self.filterwrapper(f.filter).incident_fits(incident):
|
|
154
162
|
return False
|
|
155
163
|
return True
|
|
156
164
|
|
|
157
165
|
def event_fits(self, event: Event) -> bool:
|
|
158
|
-
if not self.profile.active:
|
|
159
|
-
return False
|
|
160
166
|
# return as early as possible
|
|
161
|
-
for f in self.
|
|
167
|
+
for f in self.queryset.only("filter"):
|
|
162
168
|
if FilterWrapper(f.filter).event_fits(event):
|
|
163
169
|
return True
|
|
164
170
|
return False
|
|
165
171
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
172
|
+
def filter_fits(self, event: Event) -> bool:
|
|
173
|
+
event_fits = self.event_fits(event)
|
|
174
|
+
incident_fits = self.incident_fits(event.incident)
|
|
175
|
+
if event_fits and incident_fits:
|
|
176
|
+
return True
|
|
177
|
+
return False
|
|
@@ -12,6 +12,14 @@ if TYPE_CHECKING:
|
|
|
12
12
|
__all__ = ["QuerySetFilter"]
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
def _incidents_with_source_system_types(incident_queryset, filterblob: FilterBlobType):
|
|
16
|
+
source_list = filterblob.get("source_types", [])
|
|
17
|
+
if source_list:
|
|
18
|
+
incident_queryset.prefetch_related("source")
|
|
19
|
+
return incident_queryset.filter(source__type_id__in=source_list).distinct()
|
|
20
|
+
return incident_queryset.distinct()
|
|
21
|
+
|
|
22
|
+
|
|
15
23
|
def _incidents_with_source_systems(incident_queryset, filterblob: FilterBlobType):
|
|
16
24
|
source_list = filterblob.get("sourceSystemIds", [])
|
|
17
25
|
if source_list:
|
|
@@ -63,12 +71,19 @@ class QuerySetFilter:
|
|
|
63
71
|
fw = FilterWrapper(filterblob)
|
|
64
72
|
if fw.is_empty:
|
|
65
73
|
return Incident.objects.none().distinct()
|
|
74
|
+
filtered_by_source_type = _incidents_with_source_system_types(incident_queryset, filterblob)
|
|
66
75
|
filtered_by_source = _incidents_with_source_systems(incident_queryset, filterblob)
|
|
67
76
|
filtered_by_tags = _incidents_with_tags(incident_queryset, filterblob)
|
|
68
77
|
filtered_by_tristates = _incidents_fitting_tristates(incident_queryset, filterblob)
|
|
69
78
|
filtered_by_maxlevel = _incidents_fitting_maxlevel(incident_queryset, filterblob)
|
|
70
79
|
|
|
71
|
-
return
|
|
80
|
+
return (
|
|
81
|
+
filtered_by_source_type
|
|
82
|
+
& filtered_by_source
|
|
83
|
+
& filtered_by_tags
|
|
84
|
+
& filtered_by_tristates
|
|
85
|
+
& filtered_by_maxlevel
|
|
86
|
+
)
|
|
72
87
|
|
|
73
88
|
@classmethod
|
|
74
89
|
def incidents_by_filter(cls, incident_queryset, filter: Filter):
|
|
@@ -20,7 +20,7 @@ LOG = logging.getLogger(__name__)
|
|
|
20
20
|
CELL_WRAPPER_TEMPLATE_DEFAULT = "htmx/incident/_incident_table_cell_wrapper_default.html"
|
|
21
21
|
CELL_WRAPPER_TEMPLATE_LINK_TO_DETAILS = "htmx/incident/_incident_table_cell_wrapper_link_to_details.html"
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
BUILTIN_COLUMN_LAYOUT_NAME = "built-in"
|
|
24
24
|
_DEFAULT_COLUMN_LAYOUT_NAME = "default"
|
|
25
25
|
|
|
26
26
|
|
|
@@ -197,7 +197,7 @@ BUILTIN_COLUMNS = {col.name: col for col in _BUILTIN_COLUMN_LIST}
|
|
|
197
197
|
def get_builtin_column_layout():
|
|
198
198
|
"Return the column layout defined in `argus.htmx.defaults`"
|
|
199
199
|
|
|
200
|
-
return
|
|
200
|
+
return BUILTIN_COLUMN_LAYOUT_NAME, BUILTIN_INCIDENT_TABLE_COLUMNS
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
def get_default_column_layout():
|
|
@@ -249,7 +249,7 @@ def get_column_choices():
|
|
|
249
249
|
return columns
|
|
250
250
|
|
|
251
251
|
|
|
252
|
-
def get_incident_table_columns(name: str =
|
|
252
|
+
def get_incident_table_columns(name: str = BUILTIN_COLUMN_LAYOUT_NAME) -> list[IncidentTableColumn]:
|
|
253
253
|
"""Return the named incident column layout
|
|
254
254
|
|
|
255
255
|
Falls back to the built-in layout if the name is unknown."""
|
|
@@ -257,7 +257,7 @@ def get_incident_table_columns(name: str = _BUILTIN_COLUMN_LAYOUT_NAME) -> list[
|
|
|
257
257
|
LOG.debug("Getting layouts: get_incident_table_columns")
|
|
258
258
|
layouts = get_available_column_layouts()
|
|
259
259
|
if name not in layouts:
|
|
260
|
-
name =
|
|
260
|
+
name = BUILTIN_COLUMN_LAYOUT_NAME
|
|
261
261
|
columns = layouts[name]
|
|
262
262
|
return [_resolve_column(col) for col in columns]
|
|
263
263
|
|
|
@@ -272,7 +272,7 @@ def get_default_column_layout_name():
|
|
|
272
272
|
layouts = get_available_column_layouts()
|
|
273
273
|
if _DEFAULT_COLUMN_LAYOUT_NAME in layouts.keys():
|
|
274
274
|
return _DEFAULT_COLUMN_LAYOUT_NAME
|
|
275
|
-
return
|
|
275
|
+
return BUILTIN_COLUMN_LAYOUT_NAME
|
|
276
276
|
|
|
277
277
|
|
|
278
278
|
def _resolve_column(col: str | IncidentTableColumn):
|
|
@@ -91,7 +91,7 @@ def incident_update(request: HtmxHttpRequest, action: str):
|
|
|
91
91
|
try:
|
|
92
92
|
formclass, callback_func = INCIDENT_UPDATE_ACTIONS[action]
|
|
93
93
|
except KeyError:
|
|
94
|
-
LOG.error("Unrecognized action name
|
|
94
|
+
LOG.error("Unrecognized action name when updating incidents.")
|
|
95
95
|
return HttpResponseBadRequest("Invalid update action")
|
|
96
96
|
incident_ids = get_incident_ids_to_update(request)
|
|
97
97
|
if not incident_ids:
|