argus-server 2.4.0__tar.gz → 2.5.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.4.0 → argus_server-2.5.0}/CHANGELOG.md +41 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/NOTES.md +15 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/PKG-INFO +4 -4
- {argus_server-2.4.0 → argus_server-2.5.0}/README.md +3 -3
- {argus_server-2.4.0 → argus_server-2.5.0}/codecov.yml +2 -2
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/about-argus.rst +1 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/regenerate-the-ER-diagram.rst +3 -3
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/release-checklist.rst +2 -2
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/vendor-a-repo.rst +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/django_settings.py +1 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/writing-notification-plugins.rst +1 -1
- argus_server-2.5.0/docs/reference/img/ER_model.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/models.rst +12 -0
- argus_server-2.5.0/docs/reference/planned-maintenance.rst +43 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/factories.py +2 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/create_fake_incident.py +2 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/create_source.py +9 -2
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/context_processors.py +5 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/styles.css +142 -232
- argus_server-2.5.0/src/argus/htmx/tailwindtheme/snippets/35-cards.css +15 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/styles.css +1 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_create_form.html +1 -1
- argus_server-2.5.0/src/argus/htmx/templates/htmx/destination/destination_list.html +7 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_base_incident_table.html +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header_content.html +10 -10
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/incident_detail.html +12 -12
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/base.html +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +2 -2
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/styleguide.html +27 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/base.html +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +2 -4
- argus_server-2.5.0/src/argus/htmx/templates/htmx/user/_preference_choice_preview_theme.html +13 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_user_menu.html +14 -1
- argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_base_form.html +19 -0
- argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_form.html +10 -0
- argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_preference_form_script.html +26 -0
- argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_theme_and_format_form.html +10 -0
- argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preferences_list.html +12 -0
- argus_server-2.5.0/src/argus/htmx/templates/htmx/user/radio_option.html +13 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/registration/login.html +10 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/forms.py +22 -2
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/views.py +7 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/factories.py +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/models.py +1 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/signals.py +5 -0
- argus_server-2.5.0/src/argus/plannedmaintenance/admin.py +102 -0
- argus_server-2.5.0/src/argus/plannedmaintenance/apps.py +6 -0
- argus_server-2.5.0/src/argus/plannedmaintenance/factories.py +22 -0
- argus_server-2.5.0/src/argus/plannedmaintenance/migrations/0001_initial.py +76 -0
- argus_server-2.5.0/src/argus/plannedmaintenance/models.py +85 -0
- argus_server-2.5.0/src/argus/plannedmaintenance/templates/plannedmaintenance/admin/planned_maintenance_change_form.html +8 -0
- argus_server-2.5.0/src/argus/plannedmaintenance/utils.py +52 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/base.py +2 -0
- argus_server-2.5.0/src/argus/version.py +1 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_knox_views.py +3 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_create_source.py +7 -0
- argus_server-2.5.0/tests/htmx/test_context_processors.py +12 -0
- argus_server-2.5.0/tests/plannedmaintenance/__init__.py +0 -0
- argus_server-2.5.0/tests/plannedmaintenance/test_models.py +117 -0
- argus_server-2.5.0/tests/plannedmaintenance/test_utils.py +115 -0
- argus_server-2.5.0/tests/site/__init__.py +0 -0
- argus_server-2.5.0/tests/util/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tox.ini +1 -1
- argus_server-2.4.0/docs/reference/img/ER_model.png +0 -0
- argus_server-2.4.0/src/argus/htmx/templates/htmx/destination/destination_list.html +0 -5
- argus_server-2.4.0/src/argus/htmx/templates/htmx/user/preferences_list.html +0 -14
- argus_server-2.4.0/src/argus/htmx/templates/htmx/user/radio_option.html +0 -10
- argus_server-2.4.0/src/argus/version.py +0 -1
- {argus_server-2.4.0 → argus_server-2.5.0}/.git-blame-ignore-revs +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/.gitattributes +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/.gitignore +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/.mailmap +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/.pre-commit-config.yaml +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/.readthedocs.yaml +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/.sonarcloud.properties +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/CONTRIBUTING.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/CONTRIBUTORS.md +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/Dockerfile +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/LICENSE +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/MAINTAINING.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/Makefile +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/UPGRADING.md +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/changelog.d/.gitkeep +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/cmd.sh-template +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/constraints.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docker/Dockerfile +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docker/README.md +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docker/docker-entrypoint.sh +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docker/dockersettings.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docker-compose.yml +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/Makefile +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/_exts/djangodocs.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/_static/.gitkeep +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/_templates/.gitkeep +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/conf.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/customization/htmx-frontend.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/customization.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/add-more-preferences.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/change-settings.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/changelog-entry.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/commit-messages.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/customizing-filtering.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/federated-logins.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/howtos-for-git.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/howtos-for-github.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/override_templates.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/notification-system-testing.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/sonarqube.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/trigger-test-error-pages.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/update-contributors.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/makefile-rules.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/management-commands.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/notes.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/styleguide.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/troubleshooting.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/development.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/default_timeslot.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/destinations_view.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/example_timeslot.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/filter_selector.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/incident_details_view.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/incidents_filter.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/incidents_page.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/new_notification_profile.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/notification_profiles.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/synced_destination_delete_error.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/timeslots_view.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/unsaved_recurrence.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/user_menu.png +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/index.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/_note.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/glue-services/index.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/index.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/email-plugin.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/index.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/sms-plugin.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/ticket-systems/index.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/make.bat +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/admin.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/api/v2.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/api.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/authentication.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/glossary.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/htmx-frontend.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/site-specific-settings.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/docs/user-manual.rst +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/pyproject.toml +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/requirements/dev.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/requirements/django52.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/requirements/please-pip-sync.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/requirements/test.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/requirements-django52.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/requirements.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/admin.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/apps.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/authentication.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/context_processors.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/changeuser.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/createuser.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/setpassword.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0001_initial.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/models.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/apps.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/static/favicon.svg +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/templates/base.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/templates/index.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/compat.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/apps.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/close_incident.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/initial_setup.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/list_filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/stresstest.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/drf/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/drf/permissions.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/apps.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/checks.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/default.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/factories.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/filterwrapper.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/primitive_serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/queryset_filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/swappable/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/swappable/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/validators.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/appconfig.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/apps.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/auth/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/auth/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/checks.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/constants.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/dateformat/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/dateformat/constants.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/defaults.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/forms.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/forms.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/htmx_urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/columns.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/constants.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/filter.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/base.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/incident_actions.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/incident_filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/management/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/management/commands/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/middleware.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/migrations/0001_initial.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/migrations/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/modals.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/models.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/notificationprofile/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/notificationprofile/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/notificationprofile/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/request.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/root_urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/settings.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/choices-11.1.0.min.js +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/logo_white.svg +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/README.md +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/config.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/get_tailwind.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/25-choices.css +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/30-incident-table.css +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/tailwind.config.js +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/400.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/401.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/403.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/404.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/410.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/500.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/errors/dict/ul.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/errors/list/ul.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/field.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/label.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/checkbox.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/checkbox_option.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/classless_attrs.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/date.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/datetime.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/input.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/radio_option.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/range.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/select.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/time.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/base.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/components/_page_title.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/components/incident_list_refresh_info_select.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_delete_form.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_edit_form.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/input_field.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/search_select_multiple.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_autorefresh.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_link_to_details.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_footer.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_unpaged_incident_table.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack_icon.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_age.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status_icons.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_list_select_all_checkbox_header.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source_type.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_and_age.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status_icon.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/search_fields/input_search.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_incidents_table_columns_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_preference_choice_nopreview.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_datetime.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/preference_field_form.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx_base.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/messages/_notification_message.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/messages/_notification_messages.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/tailwind/styles.css +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templatetags/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templatetags/argus_htmx.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/themes/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/themes/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/timeslot/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/timeslot/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/timeslot/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/factories.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/models.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/widgets.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/admin.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/apps.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/constants.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/fields.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/forms.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0001_initial.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0003_incident_level.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0009_use_bigautofield_on_quickly_growing_tables.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/ticket/default_ticket_body.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/base.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/dummy.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/validators.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/widgets.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/admin.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/apps.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/checks.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/factories.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/base.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/email.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/sms_as_email.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0018_remove_closed_and_unacked_from_filterblob.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/models.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/signals.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/views.py +0 -0
- {argus_server-2.4.0/src/argus/site → argus_server-2.5.0/src/argus/plannedmaintenance}/__init__.py +0 -0
- {argus_server-2.4.0/src/argus/util → argus_server-2.5.0/src/argus/plannedmaintenance/migrations}/__init__.py +0 -0
- {argus_server-2.4.0/tests → argus_server-2.5.0/src/argus/site}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/api_v2_urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/logging.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/_serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/backend.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/dev.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/dockerdev.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/prod.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/test_CI.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/urls.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/wsgi.py +0 -0
- {argus_server-2.4.0/tests/auth/management_commands → argus_server-2.5.0/src/argus/util}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/admin_utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/datetime_utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/testing.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/utils.py +0 -0
- {argus_server-2.4.0/tests/dev → argus_server-2.5.0/tests}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/__init__.py +0 -0
- {argus_server-2.4.0/tests/filter → argus_server-2.5.0/tests/auth/management_commands}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/management_commands/test_changeuser.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/management_commands/test_createuser.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/models.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_auth.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_models.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_views.py +0 -0
- {argus_server-2.4.0/tests/htmx → argus_server-2.5.0/tests/dev}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_bulk_incidents.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_check_token_expiry.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_close_incident.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_create_fake_incident.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_gen_secret_key.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_initial_setup.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_list_filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_toggle_profile_activation.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_utils.py +0 -0
- {argus_server-2.4.0/tests/htmx/incident → argus_server-2.5.0/tests/filter}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/dummyplugin.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/test_filterplugin.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/test_filterwrapper.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/test_queryset_filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/helpers.py +0 -0
- {argus_server-2.4.0/tests/htmx/notificationprofile → argus_server-2.5.0/tests/htmx}/__init__.py +0 -0
- {argus_server-2.4.0/tests/incident/fixtures → argus_server-2.5.0/tests/htmx/incident}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_customization.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_filter.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_forms_incident_filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_views.py +0 -0
- {argus_server-2.4.0/tests/incident/ticket_plugins → argus_server-2.5.0/tests/htmx/notificationprofile}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/notificationprofile/test_forms.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_incident_columns_rendering.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_middleware.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_templatetags.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_utils.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/__init__.py +0 -0
- {argus_server-2.4.0/tests/incident/unit → argus_server-2.5.0/tests/incident/fixtures}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_change_event.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_create_fake_incident.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_event.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_filters.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_incident.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_incident_fields.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_queryset.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_source_system.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_source_system_type.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_views.py +0 -0
- {argus_server-2.4.0/tests/notificationprofile/destinations → argus_server-2.5.0/tests/incident/ticket_plugins}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/ticket_plugins/test_base.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/ticket_plugins/test_dummy.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/ticket_plugins/test_utils.py +0 -0
- {argus_server-2.4.0/tests/notificationprofile/migrations → argus_server-2.5.0/tests/incident/unit}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/unit/test_incident_details_url.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/migration_example.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/__init__.py +0 -0
- {argus_server-2.4.0/tests/site → argus_server-2.5.0/tests/notificationprofile/destinations}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/destinations/test_email.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/destinations/test_sms.py +0 -0
- {argus_server-2.4.0/tests/util → argus_server-2.5.0/tests/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_github236.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_media.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_models.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_serializers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_misc.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_settings_helpers.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_settings_validators.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_views.py +0 -0
- {argus_server-2.4.0 → argus_server-2.5.0}/tests/util/test_utils.py +0 -0
|
@@ -4,10 +4,50 @@ read by developers.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
-
This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the changes for the upcoming release can be found in <https://github.com/Uninett/Argus/tree/
|
|
7
|
+
This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the changes for the upcoming release can be found in <https://github.com/Uninett/Argus/tree/main/changelog.d/>.
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## [2.5.0] - 2025-12-04
|
|
12
|
+
|
|
13
|
+
The big new thing this time around is a way to prevent notifications from
|
|
14
|
+
certain incidents by masking them via a planned maintenance filter stored in
|
|
15
|
+
a planned maintenance task. This task works just like a notification profile:
|
|
16
|
+
more filters add precision. The only way to set up a filter right now is via
|
|
17
|
+
the admin. Users with admin-access can click on the admin link, see the section
|
|
18
|
+
"ARGUS_PLANNEDMAINTENANCE".
|
|
19
|
+
|
|
20
|
+
We want some feedback on the feature before we add support
|
|
21
|
+
for setting up planned maintenance tasks via the API and the frontend.
|
|
22
|
+
|
|
23
|
+
Otherwise: work on increasing consistency in the frontend continues, and the
|
|
24
|
+
version number of argus should now always be available.
|
|
25
|
+
|
|
26
|
+
Customizers, please see the NOTES.md, the preferences page has more changes.
|
|
27
|
+
|
|
28
|
+
Remember to migrate if upgrading.
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Add preview for theme and date format preferences
|
|
33
|
+
([#1557](https://github.com/Uninett/Argus/issues/1557))
|
|
34
|
+
- Add model for planned maintenance tasks
|
|
35
|
+
([#1586](https://github.com/Uninett/Argus/issues/1586))
|
|
36
|
+
- Added functionality to add/edit planned maintenance tasks to Django admin
|
|
37
|
+
([#1587](https://github.com/Uninett/Argus/issues/1587))
|
|
38
|
+
- Filter out events covered by ongoing planned maintenance tasks from being
|
|
39
|
+
sent ([#1588](https://github.com/Uninett/Argus/issues/1588))
|
|
40
|
+
- Added Argus version number to user menu dropdown and login page
|
|
41
|
+
([#1650](https://github.com/Uninett/Argus/issues/1650))
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- Split user preferences into multiple sections
|
|
46
|
+
([#1557](https://github.com/Uninett/Argus/issues/1557))
|
|
47
|
+
- Increase accessibility of cards by using borders instead of shadow
|
|
48
|
+
([#1641](https://github.com/Uninett/Argus/issues/1641))
|
|
49
|
+
|
|
50
|
+
|
|
11
51
|
## [2.4.0] - 2025-11-28
|
|
12
52
|
|
|
13
53
|
The most important feature this release is being able to filter on source
|
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
This file documents changes to Argus that are relevant for operations,
|
|
4
4
|
customizers and end-users.
|
|
5
5
|
|
|
6
|
+
## [2.5.0] - 2025-12-04
|
|
7
|
+
|
|
8
|
+
This release adds a new app, "argus.plannedmaintenance", which uses a new
|
|
9
|
+
database table, so remember to migrate.
|
|
10
|
+
|
|
11
|
+
The new table is to store planned maintenance tasks, which are used to exclude
|
|
12
|
+
some notifications from being sent. A notification is only sent *iff* an
|
|
13
|
+
incident and its events are not found by any filter during a currently ongoing
|
|
14
|
+
planned maintenance task.
|
|
15
|
+
|
|
16
|
+
Customizers: We have started work on adding previews to all the preferences;
|
|
17
|
+
first out is previews of themes and date formats. If you have added your own
|
|
18
|
+
preferences or otherwise customized the preferences page you need to take extra
|
|
19
|
+
care when upgrading.
|
|
20
|
+
|
|
6
21
|
## [2.4.0] - 2025-11-28
|
|
7
22
|
|
|
8
23
|
The most important feature this release is being able to filter on source
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: argus-server
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
4
4
|
Summary: Argus is an alert aggregator for monitoring systems
|
|
5
5
|
Project-URL: Homepage, https://github.com/Uninett/Argus
|
|
6
6
|
Author-email: Uninett Opensource <opensource@uninett.no>
|
|
@@ -59,7 +59,7 @@ Description-Content-Type: text/markdown
|
|
|
59
59
|
|
|
60
60
|
# Argus
|
|
61
61
|
[](https://github.com/Uninett/Argus/actions)
|
|
62
|
-
[](https://codecov.io/gh/Uninett/Argus)
|
|
63
63
|
[](https://github.com/astral-sh/ruff)
|
|
64
64
|
[](https://www.djlint.com)
|
|
65
65
|
[](http://argus-server.rtfd.io/en/latest/)
|
|
@@ -320,12 +320,12 @@ Refer to the [tox.ini](tox.ini) file for further options.
|
|
|
320
320
|
|
|
321
321
|
Do not ever remove these
|
|
322
322
|
|
|
323
|
-
*
|
|
323
|
+
* main
|
|
324
324
|
* argus-demo
|
|
325
325
|
* stable/SOMETHING
|
|
326
326
|
|
|
327
327
|
The last branch-type is for backporting bugfixes and similar to older releases,
|
|
328
|
-
bypassing
|
|
328
|
+
bypassing main if necessary.
|
|
329
329
|
|
|
330
330
|
|
|
331
331
|
## How to do maintenance
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Argus
|
|
2
2
|
[](https://github.com/Uninett/Argus/actions)
|
|
3
|
-
[](https://codecov.io/gh/Uninett/Argus)
|
|
4
4
|
[](https://github.com/astral-sh/ruff)
|
|
5
5
|
[](https://www.djlint.com)
|
|
6
6
|
[](http://argus-server.rtfd.io/en/latest/)
|
|
@@ -261,12 +261,12 @@ Refer to the [tox.ini](tox.ini) file for further options.
|
|
|
261
261
|
|
|
262
262
|
Do not ever remove these
|
|
263
263
|
|
|
264
|
-
*
|
|
264
|
+
* main
|
|
265
265
|
* argus-demo
|
|
266
266
|
* stable/SOMETHING
|
|
267
267
|
|
|
268
268
|
The last branch-type is for backporting bugfixes and similar to older releases,
|
|
269
|
-
bypassing
|
|
269
|
+
bypassing main if necessary.
|
|
270
270
|
|
|
271
271
|
|
|
272
272
|
## How to do maintenance
|
|
@@ -67,6 +67,7 @@ server, such as:
|
|
|
67
67
|
* Administration of Argus user accounts
|
|
68
68
|
* Creating API authentication tokens for users
|
|
69
69
|
* Defining new source systems to collect incidents from
|
|
70
|
+
* Creating and updating planned maintenance tasks
|
|
70
71
|
|
|
71
72
|
Pick and choose
|
|
72
73
|
---------------
|
{argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/regenerate-the-ER-diagram.rst
RENAMED
|
@@ -20,7 +20,7 @@ Test by making a .dot-file
|
|
|
20
20
|
|
|
21
21
|
To test if everything is installed correctly, run::
|
|
22
22
|
|
|
23
|
-
python manage.py graph_models argus_auth argus_incident argus_notificationprofile \
|
|
23
|
+
python manage.py graph_models argus_auth argus_incident argus_notificationprofile argus_plannedmaintenance \
|
|
24
24
|
--group-models -X Permission,AbstractUser,AbstractBaseUser,PermissionsMixin
|
|
25
25
|
|
|
26
26
|
This will dump a `.dot-file <https://graphviz.org/doc/info/lang.html>`_, the
|
|
@@ -42,7 +42,7 @@ We need to have one more dependency installed: one of ``pygraphviz`` or
|
|
|
42
42
|
|
|
43
43
|
To generate the final PNG in the correct location, run::
|
|
44
44
|
|
|
45
|
-
python manage.py graph_models argus_auth argus_incident argus_notificationprofile \
|
|
45
|
+
python manage.py graph_models argus_auth argus_incident argus_notificationprofile argus_plannedmaintenance \
|
|
46
46
|
--group-models -X Permission,AbstractUser,AbstractBaseUser,PermissionsMixin \
|
|
47
47
|
-o docs/reference/img/ER_model.png
|
|
48
48
|
|
|
@@ -52,7 +52,7 @@ Use ``graphviz`` directly on a .dot-file
|
|
|
52
52
|
1. Make sure you have graphviz installed, how is OS/distro dependent
|
|
53
53
|
2. Generate the dot-file with::
|
|
54
54
|
|
|
55
|
-
python manage.py graph_models argus_auth argus_incident argus_notificationprofile \
|
|
55
|
+
python manage.py graph_models argus_auth argus_incident argus_notificationprofile argus_plannedmaintenance \
|
|
56
56
|
--group-models -X Permission,AbstractUser,AbstractBaseUser,PermissionsMixin \
|
|
57
57
|
-o ER_model.dot
|
|
58
58
|
3. Generate the PNG with ``dot``::
|
|
@@ -43,11 +43,11 @@ not needed to do this yet.
|
|
|
43
43
|
Checklist
|
|
44
44
|
---------
|
|
45
45
|
|
|
46
|
-
#. Ensure you're on the correct branch to be released. Either ``
|
|
46
|
+
#. Ensure you're on the correct branch to be released. Either ``main`` or
|
|
47
47
|
newest stable, which has a name of the form ``stable/1.5.x``. Release from
|
|
48
48
|
the stable branch only under exceptional circumstances. For instance:
|
|
49
49
|
there's a critical bugfix for production and there's a lot of new stuff on
|
|
50
|
-
|
|
50
|
+
main that is not ready to go.
|
|
51
51
|
|
|
52
52
|
#. Check that there are no files that have not been commited:
|
|
53
53
|
|
|
@@ -4,7 +4,7 @@ Writing your own notification plugin
|
|
|
4
4
|
====================================
|
|
5
5
|
|
|
6
6
|
When writing a new notification plugin the plugins for
|
|
7
|
-
`SMS-as-Email <https://github.com/Uninett/Argus/blob/
|
|
7
|
+
`SMS-as-Email <https://github.com/Uninett/Argus/blob/main/src/argus/notificationprofile/media/sms_as_email.py>`_
|
|
8
8
|
and
|
|
9
9
|
`Teams <https://github.com/Uninett/argus_notification_msteams/blob/main/src/argus_notification_msteams.py>`_
|
|
10
10
|
can be used as guides.
|
|
Binary file
|
|
@@ -89,6 +89,18 @@ Handling notifications
|
|
|
89
89
|
Holds a ``DestinationConfig``'s type. The ``installed``-field is updated
|
|
90
90
|
on startup to keep track of which ``notification plugin``\s are installed.
|
|
91
91
|
|
|
92
|
+
Handling maintenance work
|
|
93
|
+
=========================
|
|
94
|
+
|
|
95
|
+
.. glossary::
|
|
96
|
+
|
|
97
|
+
PlannedMaintenanceTask
|
|
98
|
+
Holds who created the task and when (not editable), the start and end time
|
|
99
|
+
of such a task, and a description of what this maintenance work entails and/or
|
|
100
|
+
why it is happening.
|
|
101
|
+
|
|
102
|
+
It also holds a collection of ``Filter``\s that describe what kind of events are
|
|
103
|
+
covered by that planned maintenance.
|
|
92
104
|
|
|
93
105
|
ER diagram
|
|
94
106
|
==========
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
===================
|
|
2
|
+
Planned maintenance
|
|
3
|
+
===================
|
|
4
|
+
|
|
5
|
+
To interact with planned maintenance tasks visit the admin interface at:
|
|
6
|
+
``/admin/argus_plannedmaintenance/plannedmaintenancetask/``.
|
|
7
|
+
|
|
8
|
+
A planned maintenance task consists of a start time and an end time (where the latter
|
|
9
|
+
is by default infinity). Those define the period during which planned work is happening
|
|
10
|
+
and when notifications for events, for example for affected devices, should not be
|
|
11
|
+
sent.
|
|
12
|
+
|
|
13
|
+
Filters are used to define exactly which kind of events notifications should be
|
|
14
|
+
suppressed for. As it is for notification profiles, if multiple filters are connected
|
|
15
|
+
to one planned maintenance task, then that tasks will only lead to a notification being
|
|
16
|
+
suppressed if all of the filters apply to that event.
|
|
17
|
+
|
|
18
|
+
.. warning:: When notifications are suppressed during a planned maintenance task and
|
|
19
|
+
that task ends, while the incident is still open, you will not receive a
|
|
20
|
+
notification.
|
|
21
|
+
It is your responsibility to check that everything is resolved when a planned
|
|
22
|
+
maintenance task is finished!
|
|
23
|
+
|
|
24
|
+
The planned maintenance task list
|
|
25
|
+
=================================
|
|
26
|
+
|
|
27
|
+
In the admin you can view a list of planned maintenance tasks, filter them and search
|
|
28
|
+
for specific ones.
|
|
29
|
+
|
|
30
|
+
You can also select multiple planned maintenance tasks and delete them or mark them as
|
|
31
|
+
finished. Marking a task as finished will set an open task's end time to the current
|
|
32
|
+
time. If you mark a task as finished that has not begun yet, then that task will be
|
|
33
|
+
deleted.
|
|
34
|
+
|
|
35
|
+
Adding/editing a planned maintenance task
|
|
36
|
+
=========================================
|
|
37
|
+
|
|
38
|
+
If you want to add a planned maintenance task click the
|
|
39
|
+
``Add planned maintenance task`` button. If you want to see details for a specific
|
|
40
|
+
task or edit it, click the username in the column ``created by``.
|
|
41
|
+
|
|
42
|
+
You can mark an existing task as finished and see its history by clicking on the
|
|
43
|
+
buttons in the top right corner of the edit page.
|
|
@@ -16,7 +16,6 @@ class BaseUserFactory(factory.django.DjangoModelFactory):
|
|
|
16
16
|
|
|
17
17
|
is_staff = False
|
|
18
18
|
is_superuser = False
|
|
19
|
-
password = factory.PostGenerationMethodCall("set_password", "defaultpassword")
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
class PersonUserFactory(BaseUserFactory):
|
|
@@ -30,6 +29,7 @@ class PersonUserFactory(BaseUserFactory):
|
|
|
30
29
|
lambda o: "%s.%s@%s" % (o.first_name.lower(), o.last_name.lower(), factory.Faker("safe_domain_name"))
|
|
31
30
|
)
|
|
32
31
|
username = email
|
|
32
|
+
password = factory.django.Password("very SECRET P455w0rD")
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
class SourceUserFactory(BaseUserFactory):
|
|
@@ -40,6 +40,7 @@ class SourceUserFactory(BaseUserFactory):
|
|
|
40
40
|
username = factory.Sequence(lambda n: "source_%d" % n)
|
|
41
41
|
is_staff = False
|
|
42
42
|
is_superuser = False
|
|
43
|
+
password = factory.django.Password(None)
|
|
43
44
|
|
|
44
45
|
|
|
45
46
|
class AdminUserFactory(PersonUserFactory):
|
{argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/create_fake_incident.py
RENAMED
|
@@ -8,6 +8,7 @@ from django.contrib.auth import get_user_model
|
|
|
8
8
|
from django.core.exceptions import ValidationError
|
|
9
9
|
from django.core.management import CommandError, call_command
|
|
10
10
|
from django.core.management.base import BaseCommand
|
|
11
|
+
from django.db.utils import IntegrityError
|
|
11
12
|
|
|
12
13
|
from argus.dev.utils import get_json_from_file
|
|
13
14
|
from argus.incident.constants import Level
|
|
@@ -125,5 +126,5 @@ class Command(BaseCommand):
|
|
|
125
126
|
|
|
126
127
|
try:
|
|
127
128
|
create_fake_incident(**incident)
|
|
128
|
-
except (ValueError, ValidationError) as e:
|
|
129
|
+
except (IntegrityError, ValueError, ValidationError) as e:
|
|
129
130
|
self.stderr.write(self.style.ERROR(str(e)))
|
{argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/create_source.py
RENAMED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
from django.core.management.base import BaseCommand
|
|
2
|
+
from django.db import transaction
|
|
2
3
|
|
|
4
|
+
from argus.auth.factories import SourceUserFactory
|
|
3
5
|
from argus.incident.factories import SourceSystemFactory, SourceSystemTypeFactory
|
|
6
|
+
from argus.incident.models import SourceSystem
|
|
4
7
|
|
|
5
8
|
|
|
6
9
|
class Command(BaseCommand):
|
|
@@ -15,5 +18,9 @@ class Command(BaseCommand):
|
|
|
15
18
|
def handle(self, *args, **options):
|
|
16
19
|
source = options["source"]
|
|
17
20
|
source_type = options.get("source_type") or "argus"
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
if SourceSystem.objects.filter(name=source, type__name=source_type).exists():
|
|
22
|
+
return
|
|
23
|
+
with transaction.atomic():
|
|
24
|
+
user = SourceUserFactory(username=source)
|
|
25
|
+
sst = SourceSystemTypeFactory(name=source_type.lower())
|
|
26
|
+
SourceSystemFactory(user=user, name=source, type=sst)
|
|
@@ -10,6 +10,7 @@ See django settings for ``TEMPLATES``.
|
|
|
10
10
|
from django.conf import settings
|
|
11
11
|
|
|
12
12
|
from . import defaults
|
|
13
|
+
from argus.site.views import get_version
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def static_paths(request):
|
|
@@ -23,3 +24,7 @@ def static_paths(request):
|
|
|
23
24
|
|
|
24
25
|
def banner_message(request):
|
|
25
26
|
return {"banner_message": getattr(settings, "BANNER_MESSAGE", None)}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def metadata(request):
|
|
30
|
+
return {"version": get_version()}
|