argus-server 2.2.1__tar.gz → 2.3.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.2.1 → argus_server-2.3.0}/.mailmap +3 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/CHANGELOG.md +96 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/CONTRIBUTORS.md +2 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/Dockerfile +6 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/Makefile +5 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/NOTES.md +64 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/PKG-INFO +1 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/customization/htmx-frontend.rst +28 -13
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/howtos-for-github.rst +1 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend/override_templates.rst +1 -1
- argus_server-2.3.0/docs/development/howtos/sonarqube.rst +19 -0
- argus_server-2.3.0/docs/development/styleguide.rst +23 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development.rst +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/glue-services/index.rst +11 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/htmx-frontend.rst +128 -4
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/site-specific-settings.rst +28 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/user-manual.rst +37 -13
- {argus_server-2.2.1 → argus_server-2.3.0}/pyproject.toml +6 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/requirements-django52.txt +3 -3
- {argus_server-2.2.1 → argus_server-2.3.0}/requirements.txt +3 -3
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/models.py +2 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/utils.py +3 -3
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/filterwrapper.py +4 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/constants.py +0 -8
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/dateformat/constants.py +8 -8
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/defaults.py +2 -2
- argus_server-2.3.0/src/argus/htmx/forms.py +73 -0
- argus_server-2.3.0/src/argus/htmx/incident/columns.py +250 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/incident/filter.py +29 -15
- argus_server-2.3.0/src/argus/htmx/incident/forms/base.py +101 -0
- argus_server-2.3.0/src/argus/htmx/incident/forms/incident_actions.py +20 -0
- argus_server-2.3.0/src/argus/htmx/incident/forms/incident_filters.py +135 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/incident/utils.py +2 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/incident/views.py +91 -32
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/notificationprofile/views.py +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/static/styles.css +302 -22
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/config.py +1 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/errors/dict/ul.html +5 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/errors/list/ul.html +6 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/field.html +20 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/label.html +13 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/checkbox.html +6 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/checkbox_option.html +12 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/classless_attrs.html +9 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/date.html +6 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/datetime.html +6 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/input.html +6 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/radio_option.html +12 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/range.html +5 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/select.html +12 -0
- argus_server-2.3.0/src/argus/htmx/templates/django/forms/widgets/time.html +8 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/base.html +51 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/components/_page_title.html +9 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/components/incident_list_refresh_info_select.html +18 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/destination/destination_list.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +16 -13
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +5 -18
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_table.html +1 -1
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +12 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_link_to_details.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +2 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +1 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +2 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +1 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +2 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +13 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header_content.html +40 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_list_select_all_checkbox_header.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +1 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +2 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +1 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +2 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +1 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/incident/cells/search_fields/input_search.html +7 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +2 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +2 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/notificationprofile/base.html +1 -1
- argus_server-2.3.0/src/argus/htmx/templates/htmx/styleguide.html +202 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/base.html +1 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +1 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +3 -3
- argus_server-2.3.0/src/argus/htmx/templates/htmx/user/_incidents_table_columns_dropdown.html +30 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +3 -3
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +3 -3
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_user_menu.html +3 -3
- argus_server-2.3.0/src/argus/htmx/templates/htmx/user/preference_field_form.html +19 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/user/preferences_list.html +14 -0
- argus_server-2.3.0/src/argus/htmx/templates/htmx/user/radio_option.html +10 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/registration/login.html +1 -9
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templatetags/argus_htmx.py +12 -2
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/timeslot/views.py +0 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/urls.py +2 -1
- argus_server-2.3.0/src/argus/htmx/user/factories.py +13 -0
- argus_server-2.3.0/src/argus/htmx/user/preferences/forms.py +195 -0
- argus_server-2.3.0/src/argus/htmx/user/preferences/models.py +40 -0
- argus_server-2.3.0/src/argus/htmx/user/preferences/utils.py +14 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/user/views.py +7 -1
- argus_server-2.3.0/src/argus/htmx/views.py +39 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/admin.py +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/media/__init__.py +24 -4
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/media/base.py +41 -6
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/media/email.py +19 -24
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/media/sms_as_email.py +11 -15
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/util/admin_utils.py +2 -2
- argus_server-2.3.0/src/argus/version.py +1 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/models.py +2 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/filter/test_filterwrapper.py +43 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/htmx/incident/test_customization.py +4 -4
- argus_server-2.3.0/tests/htmx/incident/test_forms_incident_filters.py +112 -0
- argus_server-2.3.0/tests/htmx/incident/test_views.py +58 -0
- argus_server-2.2.1/tests/htmx/test_incident.py → argus_server-2.3.0/tests/htmx/test_incident_columns_rendering.py +11 -4
- argus_server-2.3.0/tests/htmx/test_templatetags.py +20 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/test_media.py +21 -5
- argus_server-2.3.0/tests/util/__init__.py +0 -0
- argus_server-2.2.1/docker-entrypoint.sh +0 -7
- argus_server-2.2.1/manage.py +0 -24
- argus_server-2.2.1/src/argus/htmx/incident/customization.py +0 -122
- argus_server-2.2.1/src/argus/htmx/incident/forms.py +0 -52
- argus_server-2.2.1/src/argus/htmx/templates/django/forms/div.html +0 -28
- argus_server-2.2.1/src/argus/htmx/templates/htmx/base.html +0 -47
- argus_server-2.2.1/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -7
- argus_server-2.2.1/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -1
- argus_server-2.2.1/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -1
- argus_server-2.2.1/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -32
- argus_server-2.2.1/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -1
- argus_server-2.2.1/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -1
- argus_server-2.2.1/src/argus/htmx/templates/htmx/user/_user_menu_user_preferences.html +0 -10
- argus_server-2.2.1/src/argus/htmx/templates/htmx/user/preferences.html +0 -22
- argus_server-2.2.1/src/argus/htmx/themes/constants.py +0 -13
- argus_server-2.2.1/src/argus/htmx/user/preferences/models.py +0 -75
- argus_server-2.2.1/src/argus/htmx/views.py +0 -9
- argus_server-2.2.1/src/argus/version.py +0 -1
- {argus_server-2.2.1 → argus_server-2.3.0}/.git-blame-ignore-revs +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/.gitattributes +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/.gitignore +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/.pre-commit-config.yaml +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/.readthedocs.yaml +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/.sonarcloud.properties +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/CONTRIBUTING.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/LICENSE +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/MAINTAINING.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/README.md +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/UPGRADING.md +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/changelog.d/.gitkeep +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/cmd.sh-template +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/codecov.yml +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/constraints.txt +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docker/Dockerfile +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docker/README.md +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docker/docker-entrypoint.sh +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docker/dockersettings.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docker-compose.yml +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/Makefile +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/_exts/djangodocs.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/_static/.gitkeep +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/_templates/.gitkeep +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/about-argus.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/conf.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/customization.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/add-more-preferences.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/change-settings.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/changelog-entry.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/commit-messages.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/customizing-filtering.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/federated-logins.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/howtos-for-git.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/htmx-frontend.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/notification-system-testing.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/regenerate-the-ER-diagram.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/release-checklist.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/update-contributors.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos/vendor-a-repo.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/howtos.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/makefile-rules.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/management-commands.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/notes.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/development/troubleshooting.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/django_settings.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/default_timeslot.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/destinations_view.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/example_timeslot.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/filter_selector.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/incident_details_view.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/incidents_filter.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/incidents_page.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/new_notification_profile.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/notification_profiles.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/synced_destination_delete_error.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/timeslots_view.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/unsaved_recurrence.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/img/user_menu.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/index.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/_note.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/index.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/notifications/email-plugin.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/notifications/index.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/notifications/sms-plugin.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/notifications/writing-notification-plugins.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/ticket-systems/index.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/make.bat +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/admin.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/api/v2.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/api.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/authentication.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/glossary.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/img/ER_model.png +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference/models.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/docs/reference.rst +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/requirements/dev.txt +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/requirements/django52.txt +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/requirements/please-pip-sync.txt +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/requirements/test.txt +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/admin.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/apps.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/authentication.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/context_processors.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/drftoken/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/drftoken/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/drftoken/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/drftoken/views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/factories.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/knox/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/knox/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/knox/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/knox/views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/management/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/management/commands/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/management/commands/changeuser.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/management/commands/createuser.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/management/commands/setpassword.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/migrations/0001_initial.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/migrations/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/auth/views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/base/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/base/apps.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/base/static/favicon.svg +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/base/templates/base.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/base/templates/index.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/compat.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/apps.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/close_incident.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/create_fake_incident.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/create_source.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/initial_setup.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/list_filters.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/stresstest.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/dev/utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/drf/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/drf/permissions.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/apps.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/checks.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/default.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/factories.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/filters.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/primitive_serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/queryset_filters.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/swappable/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/swappable/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/filter/validators.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/appconfig.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/apps.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/auth/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/auth/views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/checks.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/context_processors.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/dateformat/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/destination/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/destination/forms.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/destination/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/destination/views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/htmx_urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/incident/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/incident/constants.py +0 -0
- {argus_server-2.2.1/src/argus/htmx/management → argus_server-2.3.0/src/argus/htmx/incident/forms}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/incident/urls.py +0 -0
- {argus_server-2.2.1/src/argus/htmx/management/commands → argus_server-2.3.0/src/argus/htmx/management}/__init__.py +0 -0
- {argus_server-2.2.1/src/argus/htmx/migrations → argus_server-2.3.0/src/argus/htmx/management/commands}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/middleware.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/migrations/0001_initial.py +0 -0
- {argus_server-2.2.1/src/argus/htmx/notificationprofile → argus_server-2.3.0/src/argus/htmx/migrations}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/modals.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/models.py +0 -0
- {argus_server-2.2.1/src/argus/htmx/tailwindtheme → argus_server-2.3.0/src/argus/htmx/notificationprofile}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/notificationprofile/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/request.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/root_urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/settings.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/static/logo_white.svg +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/README.md +0 -0
- {argus_server-2.2.1/src/argus/htmx/templatetags → argus_server-2.3.0/src/argus/htmx/tailwindtheme}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/get_tailwind.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/styles.css +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/tailwind.config.js +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/tailwindtheme/utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/destination/_create_form.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/destination/_delete_form.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/destination/_edit_form.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/forms/input_field.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/incident_detail.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/htmx_base.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/messages/_notification_message.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/messages/_notification_messages.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/tailwind/styles.css +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
- {argus_server-2.2.1/src/argus/htmx/themes → argus_server-2.3.0/src/argus/htmx/templatetags}/__init__.py +0 -0
- {argus_server-2.2.1/src/argus/htmx/timeslot → argus_server-2.3.0/src/argus/htmx/themes}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/themes/utils.py +0 -0
- {argus_server-2.2.1/src/argus/htmx/user/preferences → argus_server-2.3.0/src/argus/htmx/timeslot}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/timeslot/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/user/__init__.py +0 -0
- {argus_server-2.2.1/src/argus/incident/migrations → argus_server-2.3.0/src/argus/htmx/user/preferences}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/user/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/htmx/widgets.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/apps.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/constants.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/factories.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/fields.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/forms.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0001_initial.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0003_incident_level.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/migrations/0009_use_bigautofield_on_quickly_growing_tables.py +0 -0
- {argus_server-2.2.1/src/argus/incident/ticket → argus_server-2.3.0/src/argus/incident/migrations}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/models.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/signals.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/templates/incident/ticket/default_ticket_body.html +0 -0
- {argus_server-2.2.1/src/argus/notificationprofile/migrations → argus_server-2.3.0/src/argus/incident/ticket}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/ticket/base.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/ticket/dummy.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/ticket/utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/validators.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/incident/widgets.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/admin.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/apps.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/checks.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/factories.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/migrations/0018_remove_closed_and_unacked_from_filterblob.py +0 -0
- {argus_server-2.2.1/src/argus/site → argus_server-2.3.0/src/argus/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/models.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/signals.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/notificationprofile/views.py +0 -0
- {argus_server-2.2.1/src/argus/util → argus_server-2.3.0/src/argus/site}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/api_v2_urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/logging.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/_serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/backend.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/base.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/dev.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/dockerdev.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/prod.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/settings/test_CI.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/urls.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/site/wsgi.py +0 -0
- {argus_server-2.2.1/tests → argus_server-2.3.0/src/argus/util}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/util/datetime_utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/util/testing.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/src/argus/util/utils.py +0 -0
- {argus_server-2.2.1/tests/auth/management_commands → argus_server-2.3.0/tests}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/__init__.py +0 -0
- {argus_server-2.2.1/tests/dev → argus_server-2.3.0/tests/auth/management_commands}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/management_commands/test_changeuser.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/management_commands/test_createuser.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/test_auth.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/test_knox_views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/test_models.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/test_utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/auth/test_views.py +0 -0
- {argus_server-2.2.1/tests/filter → argus_server-2.3.0/tests/dev}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_bulk_incidents.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_check_token_expiry.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_close_incident.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_create_fake_incident.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_create_source.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_gen_secret_key.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_initial_setup.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_list_filters.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_toggle_profile_activation.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/dev/test_utils.py +0 -0
- {argus_server-2.2.1/tests/htmx → argus_server-2.3.0/tests/filter}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/filter/dummyplugin.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/filter/test_filterplugin.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/filter/test_queryset_filters.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/helpers.py +0 -0
- {argus_server-2.2.1/tests/htmx/incident → argus_server-2.3.0/tests/htmx}/__init__.py +0 -0
- {argus_server-2.2.1/tests/htmx/notificationprofile → argus_server-2.3.0/tests/htmx/incident}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/htmx/incident/test_filter.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/htmx/incident/test_utils.py +0 -0
- {argus_server-2.2.1/tests/incident/fixtures → argus_server-2.3.0/tests/htmx/notificationprofile}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/htmx/notificationprofile/test_forms.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/htmx/test_middleware.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/htmx/test_utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/__init__.py +0 -0
- {argus_server-2.2.1/tests/incident/ticket_plugins → argus_server-2.3.0/tests/incident/fixtures}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_change_event.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_create_fake_incident.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_event.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_filters.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_incident.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_incident_fields.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_queryset.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_source_system.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_source_system_type.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/test_views.py +0 -0
- {argus_server-2.2.1/tests/incident/unit → argus_server-2.3.0/tests/incident/ticket_plugins}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/ticket_plugins/test_base.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/ticket_plugins/test_dummy.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/ticket_plugins/test_utils.py +0 -0
- {argus_server-2.2.1/tests/notificationprofile/destinations → argus_server-2.3.0/tests/incident/unit}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/incident/unit/test_incident_details_url.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/migration_example.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/__init__.py +0 -0
- {argus_server-2.2.1/tests/notificationprofile/migrations → argus_server-2.3.0/tests/notificationprofile/destinations}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/destinations/test_email.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/destinations/test_sms.py +0 -0
- {argus_server-2.2.1/tests/site → argus_server-2.3.0/tests/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/test_github236.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/test_models.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/test_serializers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/notificationprofile/test_views.py +0 -0
- {argus_server-2.2.1/tests/util → argus_server-2.3.0/tests/site}/__init__.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/site/test_misc.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/site/test_settings_helpers.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/site/test_settings_validators.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/site/test_views.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tests/util/test_utils.py +0 -0
- {argus_server-2.2.1 → argus_server-2.3.0}/tox.ini +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# canonical
|
|
2
2
|
|
|
3
|
+
Aleksander Fløtten <aleksander.flotten@sikt.no>
|
|
3
4
|
Alexander Staff <alexamst@stud.ntnu.no>
|
|
4
5
|
Andreas Melzer <akrimelzer@gmail.com>
|
|
5
6
|
Dabble <ddabble@users.noreply.github.com>
|
|
@@ -11,12 +12,14 @@ Karoline Bonnerud <kbonnerud@gmail.com>
|
|
|
11
12
|
Kat Hößel <kathoe@uninett.no>
|
|
12
13
|
Morten Brekkevold <morten.brekkevold@sikt.no>
|
|
13
14
|
Pelle Koster <elfjes@users.noreply.github.com>
|
|
15
|
+
Simen Abelsen <simen@abelweb.no>
|
|
14
16
|
Simon Oliver Tveit <simon.tveit@sikt.no>
|
|
15
17
|
Theodor Astrup Wiik <theo.aw@hotmail.com>
|
|
16
18
|
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
|
17
19
|
jorund1 <jorund@washbear.eu>
|
|
18
20
|
|
|
19
21
|
# rewrites
|
|
22
|
+
Aleksander Fløtten <aleksander.flotten@sikt.no> aleksfl <99869083+aleksfl@users.noreply.github.com>
|
|
20
23
|
Alexander Staff <alexamst@stud.ntnu.no> <34887403+Tralphium@users.noreply.github.com>
|
|
21
24
|
Dabble <ddabble@users.noreply.github.com> Anders <6058745+ddabble@users.noreply.github.com>
|
|
22
25
|
Hanne Moa <hanne.moa@sikt.no> <hanne.moa@uninett.no>
|
|
@@ -8,6 +8,102 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## [2.3.0] - 2025-11-20
|
|
12
|
+
|
|
13
|
+
This release has numerous improvements to the frontend. The various
|
|
14
|
+
widgets on the incident list page now work better together, and where
|
|
15
|
+
there are more than one to choose from the choices are now sorted
|
|
16
|
+
alphabetically. No user preferences are left in the user menu. The
|
|
17
|
+
preference page has had a slight rework though more is planned.
|
|
18
|
+
|
|
19
|
+
The big new thing is the possibility to select more than one column
|
|
20
|
+
layout. You can now choose a preferred layout on the user preferences
|
|
21
|
+
page if any have been configured in addition to the standard one.
|
|
22
|
+
A nice looking preview of each configured layout is planned for the
|
|
23
|
+
next release.
|
|
24
|
+
|
|
25
|
+
Due to the possibility of choosing between multiple column layouts,
|
|
26
|
+
several new types of columns have been added. There's also a new
|
|
27
|
+
section in the reference documentation explaining and naming all the
|
|
28
|
+
built-in column types.
|
|
29
|
+
|
|
30
|
+
See NOTES.md for how to convert an existing column layout to the new format.
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- Sort list of filters in filter dropdown alphabetically
|
|
35
|
+
([#1553](https://github.com/Uninett/Argus/issues/1553))
|
|
36
|
+
- Sort list of sources in filter dropdown alphabetically
|
|
37
|
+
([#1554](https://github.com/Uninett/Argus/issues/1554))
|
|
38
|
+
- [#1576](https://github.com/Uninett/Argus/issues/1576)
|
|
39
|
+
- Added and documented more searchable columns for the incident list:
|
|
40
|
+
`search_description`, `select_levels`, `has_ticket_url`,
|
|
41
|
+
`search_ticket_url`, and a way to mass-produce single-field forms to
|
|
42
|
+
add even more searchable columns and eventually systematize the
|
|
43
|
+
incident filter forms in the topmost box.
|
|
44
|
+
- Make it possible to define more than one column layout, and make it
|
|
45
|
+
possible to switch between them via a user preference. Fixes #1581,
|
|
46
|
+
#1582.
|
|
47
|
+
- Added the column `narrow_start_time`.
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
|
|
51
|
+
- Remove user preferences from global header dropdown
|
|
52
|
+
([#1567](https://github.com/Uninett/Argus/issues/1567))
|
|
53
|
+
- Use DaisyUI dropdowns in searchable columns
|
|
54
|
+
([#1574](https://github.com/Uninett/Argus/issues/1574))
|
|
55
|
+
- Sort filter dropdowns for update / delete filter alphabetically
|
|
56
|
+
([#1592](https://github.com/Uninett/Argus/issues/1592))
|
|
57
|
+
- Add consistent title to notification config pages
|
|
58
|
+
([#1606](https://github.com/Uninett/Argus/issues/1606))
|
|
59
|
+
- Auto-align filterable column dropdown if it extends beyond the screen
|
|
60
|
+
([#1607](https://github.com/Uninett/Argus/issues/1607))
|
|
61
|
+
- Fixed several problems with filtering the incident list in the
|
|
62
|
+
frontend: the various widgets were stepping on each others toes.
|
|
63
|
+
Made much easier by turning all GET-abble filters into Django forms.
|
|
64
|
+
- Improved documentation of how notificationprofiles with multiple
|
|
65
|
+
filters work, with changes to the user manual, new tests, and a help
|
|
66
|
+
text added to the field in question in the frontend.
|
|
67
|
+
- Preferences are all now properly backed by forms, inheriting from
|
|
68
|
+
`SimplePreferenceForm` which is a perfect fit for preferences where
|
|
69
|
+
you choose one of several options. Using `PreferenceField` directly
|
|
70
|
+
will still work, but the form used now receives the request on
|
|
71
|
+
`__init__`. It is therefore necessary to upgrade the old forms by
|
|
72
|
+
either mixing in the `ClassicPreferenceFormMixin`, which will
|
|
73
|
+
discard the passed-in `request`, or writing your own `__init__` that
|
|
74
|
+
will prevent passing in the `request` via `super().__init__(*args,
|
|
75
|
+
**kwargs)`.
|
|
76
|
+
- User preferences were refactored. This is to increase consistency,
|
|
77
|
+
cut down on copypasta, and eventually use Django forms on the user
|
|
78
|
+
preference page, but more importantly: Django settings are no longer
|
|
79
|
+
read on import. Turns out, preferences that depend on Django
|
|
80
|
+
settings *sometimes* read the settings too soon, before the
|
|
81
|
+
settings-file was complete, and therefore getting the wrong or no
|
|
82
|
+
setting.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## [2.2.2] - 2025-11-03
|
|
86
|
+
|
|
87
|
+
### Added
|
|
88
|
+
|
|
89
|
+
- Added the beginnings of a style guide at /styleguide/. The look of the form
|
|
90
|
+
inputs that were not manually laid out have in some cases also changed, for
|
|
91
|
+
greater consistency. ([#1558](https://github.com/Uninett/Argus/issues/1558))
|
|
92
|
+
- Added `zino-argus-glue` to documented list of known glue services
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
|
|
96
|
+
- Increased logging verbosity when finding destinations for notifications and
|
|
97
|
+
actually sending the notifications, to aid in debugging production systems.
|
|
98
|
+
Now also logs which destination id's are found and used.
|
|
99
|
+
([#1563](https://github.com/Uninett/Argus/issues/1563))
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
|
|
103
|
+
- The development docker compose had stopped working due to changes outside of
|
|
104
|
+
our control (pip, git, the very distro) and has been updated.
|
|
105
|
+
|
|
106
|
+
|
|
11
107
|
## [2.2.1] - 2025-09-18
|
|
12
108
|
|
|
13
109
|
### Fixed, frontend
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
# This Dockerfile is designed to run a development environment for Argus,
|
|
2
2
|
# with the Argus source code tree mounted at /argus
|
|
3
3
|
#
|
|
4
|
-
FROM python:3.
|
|
4
|
+
FROM python:3.13-trixie
|
|
5
5
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
6
6
|
|
|
7
7
|
RUN apt-get update && apt-get install -y --no-install-recommends tini \
|
|
8
|
-
build-essential libpq-dev libffi-dev libssl-dev
|
|
8
|
+
build-essential libpq-dev libffi-dev libssl-dev git
|
|
9
9
|
RUN mkdir -p /argus
|
|
10
10
|
COPY requirements.txt /argus
|
|
11
11
|
COPY requirements/*.txt /argus/requirements/
|
|
12
12
|
|
|
13
|
+
ENV VIRTUAL_ENV=/opt/venv
|
|
14
|
+
RUN python3 -m venv $VIRTUAL_ENV
|
|
15
|
+
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
16
|
+
|
|
13
17
|
WORKDIR /argus
|
|
14
18
|
RUN pip install gunicorn -r requirements.txt -r /argus/requirements/dev.txt
|
|
15
19
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.PHONY: clean testclean distclean coverageclean cacheclean nuke tailwind docclean upgrade-tailwind
|
|
1
|
+
.PHONY: clean testclean distclean coverageclean cacheclean nuke tailwind docclean upgrade-tailwind tailwind-watch
|
|
2
2
|
|
|
3
3
|
TAILWINDDIR=src/argus/htmx/tailwindtheme
|
|
4
4
|
STATICDIR=src/argus/htmx/static
|
|
@@ -32,7 +32,10 @@ testclean: coverageclean clean
|
|
|
32
32
|
nuke: clean docclean distclean testclean cacheclean
|
|
33
33
|
|
|
34
34
|
tailwind:
|
|
35
|
-
tailwindcss -c $(TAILWINDDIR)/tailwind.config.js -i $(TAILWINDDIR)/styles.css -o $(STATICDIR)/styles.css
|
|
35
|
+
$(TAILWINDDIR)/tailwindcss -c $(TAILWINDDIR)/tailwind.config.js -i $(TAILWINDDIR)/styles.css -o $(STATICDIR)/styles.css
|
|
36
|
+
|
|
37
|
+
tailwind-watch:
|
|
38
|
+
$(TAILWINDDIR)/tailwindcss -c $(TAILWINDDIR)/tailwind.config.js -i $(TAILWINDDIR)/styles.css -o $(STATICDIR)/styles.css --watch
|
|
36
39
|
|
|
37
40
|
upgrade-tailwind:
|
|
38
41
|
PYTHONPATH=$(PYTHONPATH) python3 src/argus/htmx/tailwindtheme/get_tailwind.py
|
|
@@ -3,6 +3,70 @@
|
|
|
3
3
|
This file documents changes to Argus that are relevant for operations,
|
|
4
4
|
customizers and end-users.
|
|
5
5
|
|
|
6
|
+
## [2.3.0] - 2025-11-20
|
|
7
|
+
|
|
8
|
+
This release has numerous improvements to the frontend. The various
|
|
9
|
+
widgets on the incident list page now work better together, and where
|
|
10
|
+
there are more than one to choose from the choices are now sorted
|
|
11
|
+
alphabetically. No user preferences are left in the user menu. The
|
|
12
|
+
preference page has had a slight rework though more is planned.
|
|
13
|
+
|
|
14
|
+
The big new thing is the possibility to select more than one column
|
|
15
|
+
layout. You can now choose a preferred layout on the user preferences
|
|
16
|
+
page if any have been configured in addition to the standard one.
|
|
17
|
+
A nice looking preview of each configured layout is planned for the
|
|
18
|
+
next release.
|
|
19
|
+
|
|
20
|
+
Due to the possibility of choosing between multiple column layouts,
|
|
21
|
+
several new types of columns have been added. There's also a new
|
|
22
|
+
section in the reference documentation explaining and naming all the
|
|
23
|
+
built-in column types.
|
|
24
|
+
|
|
25
|
+
As of this release, please convert the setting `INCIDENT_TABLE_COLUMNS` to the
|
|
26
|
+
new `INCIDENT_TABLE_COLUMN_LAYOUTS` setting. Usage of `INCIDENT_TABLE_COLUMNS`
|
|
27
|
+
is deprecated and support will eventually be removed.
|
|
28
|
+
|
|
29
|
+
If your current `INCIDENT_TABLE_COLUMNS` looks like this:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
INCIDENT_TABLE_COLUMNS = [
|
|
33
|
+
"row_select",
|
|
34
|
+
"combined_status",
|
|
35
|
+
"source",
|
|
36
|
+
"description",
|
|
37
|
+
]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
then the equivalent new setting looks like:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
INCIDENT_TABLE_COLUMN_LAYOUTS = {
|
|
44
|
+
"default": [
|
|
45
|
+
"row_select",
|
|
46
|
+
"combined_status",
|
|
47
|
+
"source",
|
|
48
|
+
"description",
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This will make it possible to select between two different layouts: "built-in"
|
|
54
|
+
and "default". If you wish to hide the built-in layout, use the name
|
|
55
|
+
"built-in" for one of the layouts in `INCIDENT_TABLE_COLUMN_LAYOUTS`.
|
|
56
|
+
|
|
57
|
+
If you do not convert the setting, the layout defined in the old setting will
|
|
58
|
+
be available as "default" together with the built-in layout as "built-in".
|
|
59
|
+
|
|
60
|
+
## [2.2.2] - 2025-11-03
|
|
61
|
+
|
|
62
|
+
To aid in development there a live styleguide for the frontend on
|
|
63
|
+
`/styleguide`.
|
|
64
|
+
|
|
65
|
+
Logging verbosity has increased for sending notifications.
|
|
66
|
+
|
|
67
|
+
Otherwise: typos have been fixed, a new glue service has been added to the
|
|
68
|
+
documentation, the development docker-compose setup should be working again.
|
|
69
|
+
|
|
6
70
|
|
|
7
71
|
## [2.2.1] - 2025-09-18
|
|
8
72
|
|
|
@@ -119,8 +119,9 @@ How to customize the look:
|
|
|
119
119
|
Incident table column customization
|
|
120
120
|
===================================
|
|
121
121
|
|
|
122
|
-
The :setting:`
|
|
123
|
-
in the incident table. This setting takes a
|
|
122
|
+
The :setting:`INCIDENT_TABLE_COLUMN_LAYOUTS` setting controls which columns are
|
|
123
|
+
shown in the incident table. This setting takes a dictionary where the key is
|
|
124
|
+
the name of a layout and the value is a list of ``str`` or
|
|
124
125
|
``argus.htmx.incidents.customization.IncidentTableColumn`` instances. when
|
|
125
126
|
given a ``str``, this key must be available in the
|
|
126
127
|
``argus.htmx.incidents.customization.BUILTIN_COLUMNS`` dictionary. For
|
|
@@ -128,17 +129,21 @@ example::
|
|
|
128
129
|
|
|
129
130
|
from argus.htmx.incidents.customization import BUILTIN_COLUMNS, IncidentTableColumn
|
|
130
131
|
|
|
131
|
-
|
|
132
|
-
"
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
132
|
+
INCIDENT_TABLE_COLUMN_LAYOUTS = {
|
|
133
|
+
"default": [
|
|
134
|
+
"id",
|
|
135
|
+
"start_time",
|
|
136
|
+
BUILTIN_COLUMNS["description"], # equivalent to just "description"
|
|
137
|
+
IncidentTableColumn( # a new column definition
|
|
138
|
+
name="name",
|
|
139
|
+
label="Custom",
|
|
140
|
+
cell_template="/path/to/template.html", # contents of cell
|
|
141
|
+
),
|
|
142
|
+
]
|
|
143
|
+
}
|
|
140
144
|
|
|
141
|
-
|
|
145
|
+
The settings :setting:`INCIDENT_TABLE_COLUMNS` took a single list and is
|
|
146
|
+
deprecated. If it exists it is interpreted as a layout named "default".
|
|
142
147
|
|
|
143
148
|
|
|
144
149
|
.. py:class:: IncidentTableColumn
|
|
@@ -172,11 +177,21 @@ example::
|
|
|
172
177
|
a ``<td>``-tag. This makes it possible to add attributes to the
|
|
173
178
|
``<td>``-tag or skip including the ``cell_template`` altogether.
|
|
174
179
|
|
|
180
|
+
Deprecated: see ``detail_link``
|
|
181
|
+
|
|
175
182
|
Replacing the default with
|
|
176
183
|
``htmx/incident/_incident_table_cell_wrapper_link_to_details.html`` will
|
|
177
184
|
result in the ``cell_template`` being wrapped in a link (``<a>``) to the
|
|
178
185
|
details page.
|
|
179
186
|
|
|
187
|
+
.. py:attribute::detail_link
|
|
188
|
+
|
|
189
|
+
:type: bool
|
|
190
|
+
:value: False
|
|
191
|
+
|
|
192
|
+
Setting ``detail_link`` to ``True`` will wrap the contents of the cell
|
|
193
|
+
with a link (``<a>``) to the details page.
|
|
194
|
+
|
|
180
195
|
.. py:attribute:: column_classes
|
|
181
196
|
|
|
182
197
|
:type: str
|
|
@@ -243,7 +258,7 @@ You could then create ``path/to/_extra_widget.html`` as following::
|
|
|
243
258
|
|
|
244
259
|
|
|
245
260
|
Toast messages
|
|
246
|
-
|
|
261
|
+
==============
|
|
247
262
|
|
|
248
263
|
``argus_htmx`` uses the `Django Messages`_ framework to dynamically display notifications toast
|
|
249
264
|
messages to the user. Some of these messages stay on screen until the user refreshes, while others
|
|
@@ -23,4 +23,4 @@ magic address GitHub provides for you, then you need to toggle "Keep my email
|
|
|
23
23
|
addresses private" on the same page to "On". You can even prevent commits not
|
|
24
24
|
using the magic address from being pushed to GitHub.
|
|
25
25
|
|
|
26
|
-
See `Setting your commit email address at GitHub<https://docs.github.com/en/account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address>`_ for more information.
|
|
26
|
+
See `Setting your commit email address at GitHub <https://docs.github.com/en/account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address>`_ for more information.
|
|
@@ -83,7 +83,7 @@ an extensive list, but can provide entry points or inspiration:
|
|
|
83
83
|
``hx-swap-oob`` content, to a incident list htmx partial response
|
|
84
84
|
* ``htmx/user/_user_menu.html``: add or remove items to the user menu (the menu that appears when
|
|
85
85
|
clicking on the user's initials in the top right)
|
|
86
|
-
* ``htmx/user/
|
|
86
|
+
* ``htmx/user/preferences_list.html``: add custom preferences to the preferences page
|
|
87
87
|
* ``registration/login.html``: show additional information to a user prior to logging in, such as
|
|
88
88
|
a link to a privacy policy or other terms
|
|
89
89
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
=======================
|
|
2
|
+
Howto: Handle sonarqube
|
|
3
|
+
=======================
|
|
4
|
+
|
|
5
|
+
We use `sonarqube`_ to scan new code for potential issues and security hotspots.
|
|
6
|
+
It posts comments on pull requests when it finds new issues in that code using rules
|
|
7
|
+
defined by the developer team at Sikt.
|
|
8
|
+
|
|
9
|
+
But we sometimes also disagree with how it handles parts of certain rules. We will
|
|
10
|
+
document that here and which comment to use when marking such an issue as accepted or
|
|
11
|
+
false positive.
|
|
12
|
+
|
|
13
|
+
python:S1192 - String literals should not be duplicated
|
|
14
|
+
-------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
If it makes it more readable, for example if configuration is happening within the
|
|
17
|
+
Python code, then we accept it with "This is better for readability".
|
|
18
|
+
|
|
19
|
+
.. _sonarqube: https://www.sonarsource.com/products/sonarcloud/
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
============================
|
|
2
|
+
Style guide for web frontend
|
|
3
|
+
============================
|
|
4
|
+
|
|
5
|
+
There's a live style guide on ``/styleguide/``. It contains a live form so that
|
|
6
|
+
you can experiment with form input to see what a valid and invalid form looks
|
|
7
|
+
like.
|
|
8
|
+
|
|
9
|
+
The live style guide is not complete, and not fully implemented into the site
|
|
10
|
+
yet. If you are looking for low hanging fruit:
|
|
11
|
+
|
|
12
|
+
* The headers (h1-h3) needs to be styled as per the style guide.
|
|
13
|
+
* The cards (all pages except the incident list and preferences page) should
|
|
14
|
+
look the same.
|
|
15
|
+
* There should be no preferences directly in the user menu drop down.
|
|
16
|
+
* There should be no use of the class "border-b" anywhere.
|
|
17
|
+
|
|
18
|
+
More work is involved in making sure all form fields use the style guide
|
|
19
|
+
designs for inputs/labels. Another larger task is issue #1557:
|
|
20
|
+
`Restyling the preferences page <https://github.com/Uninett/Argus/issues/1557>`_.
|
|
21
|
+
|
|
22
|
+
See also issue #1519:
|
|
23
|
+
`Add styleguide <https://github.com/Uninett/Argus/issues/1519>`_.
|
|
@@ -33,6 +33,17 @@ Network Administration Visualized
|
|
|
33
33
|
This is an extension of NAV, runs on the same server, and uses the NAV config
|
|
34
34
|
files.
|
|
35
35
|
|
|
36
|
+
Zino
|
|
37
|
+
~~~~
|
|
38
|
+
|
|
39
|
+
| Home: https://nordu.net/zino/
|
|
40
|
+
| Source: https://github.com/Uninett/zino-argus-glue
|
|
41
|
+
| PyPI: `zino-argus-glue <https://pypi.org/project/zino-argus-glue/>`_
|
|
42
|
+
|
|
43
|
+
This is a standalone process that connects to both the Zino and Argus APIs and
|
|
44
|
+
exchanges/synchronizes information between them.
|
|
45
|
+
|
|
46
|
+
|
|
36
47
|
Mist Systems Administration (Juniper)
|
|
37
48
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
38
49
|
|
|
@@ -172,13 +172,137 @@ a time), and the user can select a different page size from ``[10, 20, 50,
|
|
|
172
172
|
:setting:`ARGUS_INCIDENTS_DEFAULT_PAGE_SIZE` (an integer) and
|
|
173
173
|
:setting:`ARGUS_INCIDENTS_PAGE_SIZES` setting respectively.
|
|
174
174
|
|
|
175
|
-
|
|
176
|
-
-----------------------------------
|
|
175
|
+
.. _table-column-reference:
|
|
177
176
|
|
|
178
|
-
|
|
179
|
-
|
|
177
|
+
Table columns
|
|
178
|
+
-------------
|
|
179
|
+
|
|
180
|
+
Argus ships with more possible column types than what are configured by
|
|
181
|
+
default.
|
|
182
|
+
|
|
183
|
+
The columns to use are set with the :setting:`INCIDENT_TABLE_COLUMN_LAYOUTS`
|
|
184
|
+
setting.
|
|
185
|
+
|
|
186
|
+
This is the default for the setting as of this version of Argus:
|
|
187
|
+
|
|
188
|
+
.. code-block:: python3
|
|
189
|
+
|
|
190
|
+
INCIDENT_TABLE_COLUMN_LAYOUTS = {
|
|
191
|
+
"built-in": [
|
|
192
|
+
"color_status",
|
|
193
|
+
"row_select",
|
|
194
|
+
"start_time",
|
|
195
|
+
"combined_status",
|
|
196
|
+
"level",
|
|
197
|
+
"source",
|
|
198
|
+
"description",
|
|
199
|
+
"ticket",
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
You can define your own columns from scratch, see
|
|
180
204
|
:ref:`customize-htmx-frontend` for examples.
|
|
181
205
|
|
|
206
|
+
All built-in columns
|
|
207
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
208
|
+
|
|
209
|
+
ack
|
|
210
|
+
:From: ack
|
|
211
|
+
:Name: ack
|
|
212
|
+
:Description: Show whether the incident is acked or not.
|
|
213
|
+
:Redundant with: combined_status
|
|
214
|
+
|
|
215
|
+
color_status
|
|
216
|
+
:From: ack + status
|
|
217
|
+
:Name: color_status
|
|
218
|
+
:Description: A combination of ackedness and openness, shown only as a color.
|
|
219
|
+
|
|
220
|
+
combined_status
|
|
221
|
+
:From: ack + status
|
|
222
|
+
:Name: combined_status
|
|
223
|
+
:Description: Merges the "open" column and the "ack" column into one.
|
|
224
|
+
|
|
225
|
+
description
|
|
226
|
+
:From: description
|
|
227
|
+
:Name: description
|
|
228
|
+
:Description: The contents of the description-field of the incident.
|
|
229
|
+
:Redundant with: search_description
|
|
230
|
+
|
|
231
|
+
search_description
|
|
232
|
+
:From: description
|
|
233
|
+
:Name: search_description
|
|
234
|
+
:Description: Search for (free text) all tickets that matches and show their
|
|
235
|
+
incidents.
|
|
236
|
+
:Redundant with: description
|
|
237
|
+
|
|
238
|
+
id
|
|
239
|
+
:From: id
|
|
240
|
+
:Name: id
|
|
241
|
+
:Description: The internal id of the incident in argus.
|
|
242
|
+
|
|
243
|
+
level
|
|
244
|
+
:From: level
|
|
245
|
+
:Name: level
|
|
246
|
+
:Description: The severity level.
|
|
247
|
+
:Redundant with: select_levels
|
|
248
|
+
|
|
249
|
+
select_levels
|
|
250
|
+
:From: level
|
|
251
|
+
:Name: select_levels
|
|
252
|
+
:Description: The severity level. One or more can be selected. Might conflict
|
|
253
|
+
with the notification filter field ``maxlevel``. If maxlevel is
|
|
254
|
+
set to less than max, you will get no results if searching for
|
|
255
|
+
the max via this field.
|
|
256
|
+
:Redundant with: level
|
|
257
|
+
|
|
258
|
+
status
|
|
259
|
+
:From: open
|
|
260
|
+
:Name: status
|
|
261
|
+
:Description: Whether the incident is still ongoing or has been closed.
|
|
262
|
+
:Redundant with: combined_status
|
|
263
|
+
|
|
264
|
+
row_select
|
|
265
|
+
:From: depends on incident id
|
|
266
|
+
:Name: row_select
|
|
267
|
+
:Description: Checkbox to select the row for bulk changes.
|
|
268
|
+
|
|
269
|
+
source
|
|
270
|
+
:From: source
|
|
271
|
+
:Name: source
|
|
272
|
+
:Description: The source of the incident.
|
|
273
|
+
|
|
274
|
+
start_time
|
|
275
|
+
:From: start_time
|
|
276
|
+
:Name: start_time
|
|
277
|
+
:Description: When the incident started, fixed width.
|
|
278
|
+
|
|
279
|
+
narrow_start_time
|
|
280
|
+
:From: start_time
|
|
281
|
+
:Name: start_time
|
|
282
|
+
:Description: When the incident started, width depends on date format.
|
|
283
|
+
|
|
284
|
+
ticket
|
|
285
|
+
:From: ticket_url
|
|
286
|
+
:Name: ticket
|
|
287
|
+
:Description: A link to a ticket/issue in an external system with more information.
|
|
288
|
+
:Redundant with: has_ticket_url, search_ticket_url
|
|
289
|
+
|
|
290
|
+
has_ticket_url
|
|
291
|
+
:From: ticket_url
|
|
292
|
+
:Name: has_ticket_url
|
|
293
|
+
:Description: A link to a ticket/issue in an external system with more information.
|
|
294
|
+
Can toggle showing only incidents that has or lacks a ticket url.
|
|
295
|
+
:Redundant with: ticket, search_ticket_url
|
|
296
|
+
|
|
297
|
+
search_ticket_url
|
|
298
|
+
:From: ticket_url
|
|
299
|
+
:Name: search_ticket_url
|
|
300
|
+
:Description: A link to a ticket/issue in an external system with more information.
|
|
301
|
+
Can search through all the tickets for the term, and only show
|
|
302
|
+
the matching incidents.
|
|
303
|
+
:Redundant with: ticket, has_ticket_url
|
|
304
|
+
|
|
305
|
+
|
|
182
306
|
Themes
|
|
183
307
|
------
|
|
184
308
|
|
|
@@ -315,8 +315,35 @@ Ticket system settings
|
|
|
315
315
|
``TICKET_PLUGIN``, ``TICKET_ENDPOINT``, ``TICKET_AUTHENTICATION_SECRET``,
|
|
316
316
|
``TICKET_INFORMATION`` are all described in :ref:`ticket-systems-settings`.
|
|
317
317
|
|
|
318
|
+
Frontend settings
|
|
319
|
+
-----------------
|
|
320
|
+
|
|
321
|
+
.. setting:: INCIDENT_TABLE_COLUMN_LAYOUTS
|
|
322
|
+
|
|
323
|
+
* :setting:`INCIDENT_TABLE_COLUMN_LAYOUTS` allows adding one or more choosable
|
|
324
|
+
incident list column layouts in addition to the built-in layout. Format::
|
|
325
|
+
|
|
326
|
+
INCIDENT_TABLE_COLUMN_LAYOUTS = {
|
|
327
|
+
"default": [
|
|
328
|
+
"row_select",
|
|
329
|
+
"combined_status",
|
|
330
|
+
"source",
|
|
331
|
+
"description",
|
|
332
|
+
]
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
See :ref:`table-column-reference` for the built-in layout and a list of all
|
|
336
|
+
available built-in column types.
|
|
337
|
+
|
|
338
|
+
.. setting:: INCIDENT_TABLE_COLUMNS
|
|
339
|
+
|
|
340
|
+
* :setting:`INCIDENT_TABLE_COLUMNS`
|
|
341
|
+
|
|
342
|
+
The old, deprecated variant of :setting:`INCIDENT_TABLE_COLUMN_LAYOUTS`, it
|
|
343
|
+
only supported a single column layout.
|
|
344
|
+
|
|
318
345
|
Special environment settings
|
|
319
|
-
|
|
346
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
320
347
|
|
|
321
348
|
.. setting:: BANNER_MESSAGE
|
|
322
349
|
|
|
@@ -344,4 +371,3 @@ Debugging settings
|
|
|
344
371
|
|
|
345
372
|
* :setting:`TEMPLATE_DEBUG` (optional) provides a convenient way to turn debugging on and off
|
|
346
373
|
for templates. If undefined it will default to the value of :setting:`DEBUG`.
|
|
347
|
-
|
|
@@ -626,19 +626,43 @@ receive by creating, editing and deleting *notification profiles*.
|
|
|
626
626
|
About components of notification profiles
|
|
627
627
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
628
628
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
629
|
+
Timeslot
|
|
630
|
+
^^^^^^^^
|
|
631
|
+
|
|
632
|
+
**Timeslot** allows you to customize **when** you want to receive
|
|
633
|
+
the alarm notifications. You can choose one timeslot per
|
|
634
|
+
notification profile. Timeslots are reusable across multiple
|
|
635
|
+
notification profiles.
|
|
636
|
+
|
|
637
|
+
Filter
|
|
638
|
+
^^^^^^
|
|
639
|
+
|
|
640
|
+
**Filter** allows you to customize **what** alarms (incidents) you
|
|
641
|
+
want to receive the notifications about. Filters are reusable
|
|
642
|
+
across multiple notification profiles.
|
|
643
|
+
|
|
644
|
+
You can choose multiple filters per notification profile. They are
|
|
645
|
+
*combined to increase precision*. You cannot use *one* profile for
|
|
646
|
+
*sufficiently different types of incidents*.
|
|
647
|
+
|
|
648
|
+
For instance, if an incident may only ever have one tag that
|
|
649
|
+
starts with ``hostname=``, then having a profile with multiple
|
|
650
|
+
filters, each asking for *different* hostnames, will never be able
|
|
651
|
+
to match anything.
|
|
652
|
+
|
|
653
|
+
If you need to match multiple hostname tags in a profile, make
|
|
654
|
+
a filter that only matches hostnames and include that filter in
|
|
655
|
+
the profile.
|
|
656
|
+
|
|
657
|
+
Destination
|
|
658
|
+
^^^^^^^^^^^
|
|
659
|
+
|
|
660
|
+
**Destination** allows you to customize **where** you want to
|
|
661
|
+
receive the alarm notifications. You can choose multiple
|
|
662
|
+
destinations per notification profile. Destinations are reusable
|
|
663
|
+
across multiple notification profiles. Destinations may be of
|
|
664
|
+
`different media types
|
|
665
|
+
<#about-the-available-notification-media>`_.
|
|
642
666
|
|
|
643
667
|
.. _about-the-available-notification-media:
|
|
644
668
|
About the available notification media
|
|
@@ -80,7 +80,12 @@ artifacts = ["src/argus/version.py"]
|
|
|
80
80
|
packages = ["src/argus"]
|
|
81
81
|
|
|
82
82
|
[tool.hatch.build.targets.sdist]
|
|
83
|
-
exclude = [
|
|
83
|
+
exclude = [
|
|
84
|
+
"/.github",
|
|
85
|
+
"/*.json",
|
|
86
|
+
"/*.py",
|
|
87
|
+
"/*.sh",
|
|
88
|
+
]
|
|
84
89
|
|
|
85
90
|
[tool.versioningit.write]
|
|
86
91
|
file = "src/argus/version.py"
|