argus-server 2.5.0__tar.gz → 2.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. {argus_server-2.5.0 → argus_server-2.6.0}/CHANGELOG.md +17 -0
  2. {argus_server-2.5.0 → argus_server-2.6.0}/NOTES.md +13 -0
  3. {argus_server-2.5.0 → argus_server-2.6.0}/PKG-INFO +1 -1
  4. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/customizing-filtering.rst +14 -9
  5. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/sonarqube.rst +9 -0
  6. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/htmx-frontend.rst +1 -1
  7. argus_server-2.6.0/requirements/django52.txt +1 -0
  8. {argus_server-2.5.0 → argus_server-2.6.0}/requirements-django52.txt +3 -3
  9. {argus_server-2.5.0 → argus_server-2.6.0}/requirements.txt +3 -3
  10. argus_server-2.6.0/src/argus/filter/checks.py +25 -0
  11. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/default.py +1 -2
  12. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/filterwrapper.py +26 -17
  13. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/queryset_filters.py +16 -1
  14. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/columns.py +5 -5
  15. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/views.py +1 -1
  16. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/styles.css +287 -0
  17. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/30-incident-table.css +4 -0
  18. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +1 -1
  19. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack_icon.html +4 -2
  20. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status_icon.html +3 -2
  21. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_base_form.html +2 -0
  22. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_form.html +6 -3
  23. argus_server-2.6.0/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_preview.html +30 -0
  24. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/messages/_notification_messages.html +1 -1
  25. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/urls.py +1 -0
  26. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/views.py +35 -2
  27. argus_server-2.6.0/src/argus/notificationprofile/filterwrapper.py +47 -0
  28. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/__init__.py +7 -5
  29. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/base.py +1 -0
  30. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/test_CI.py +11 -0
  31. argus_server-2.6.0/src/argus/version.py +1 -0
  32. {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/test_filterwrapper.py +39 -40
  33. argus_server-2.6.0/tests/htmx/user/test_views.py +34 -0
  34. argus_server-2.6.0/tests/notificationprofile/test_filterwrapper.py +84 -0
  35. argus_server-2.6.0/tests/util/__init__.py +0 -0
  36. {argus_server-2.5.0 → argus_server-2.6.0}/tox.ini +13 -1
  37. argus_server-2.5.0/requirements/django52.txt +0 -1
  38. argus_server-2.5.0/src/argus/filter/checks.py +0 -22
  39. argus_server-2.5.0/src/argus/version.py +0 -1
  40. {argus_server-2.5.0 → argus_server-2.6.0}/.git-blame-ignore-revs +0 -0
  41. {argus_server-2.5.0 → argus_server-2.6.0}/.gitattributes +0 -0
  42. {argus_server-2.5.0 → argus_server-2.6.0}/.gitignore +0 -0
  43. {argus_server-2.5.0 → argus_server-2.6.0}/.mailmap +0 -0
  44. {argus_server-2.5.0 → argus_server-2.6.0}/.pre-commit-config.yaml +0 -0
  45. {argus_server-2.5.0 → argus_server-2.6.0}/.readthedocs.yaml +0 -0
  46. {argus_server-2.5.0 → argus_server-2.6.0}/.sonarcloud.properties +0 -0
  47. {argus_server-2.5.0 → argus_server-2.6.0}/CONTRIBUTING.rst +0 -0
  48. {argus_server-2.5.0 → argus_server-2.6.0}/CONTRIBUTORS.md +0 -0
  49. {argus_server-2.5.0 → argus_server-2.6.0}/Dockerfile +0 -0
  50. {argus_server-2.5.0 → argus_server-2.6.0}/LICENSE +0 -0
  51. {argus_server-2.5.0 → argus_server-2.6.0}/MAINTAINING.rst +0 -0
  52. {argus_server-2.5.0 → argus_server-2.6.0}/Makefile +0 -0
  53. {argus_server-2.5.0 → argus_server-2.6.0}/README.md +0 -0
  54. {argus_server-2.5.0 → argus_server-2.6.0}/UPGRADING.md +0 -0
  55. {argus_server-2.5.0 → argus_server-2.6.0}/changelog.d/.gitkeep +0 -0
  56. {argus_server-2.5.0 → argus_server-2.6.0}/cmd.sh-template +0 -0
  57. {argus_server-2.5.0 → argus_server-2.6.0}/codecov.yml +0 -0
  58. {argus_server-2.5.0 → argus_server-2.6.0}/constraints.txt +0 -0
  59. {argus_server-2.5.0 → argus_server-2.6.0}/docker/Dockerfile +0 -0
  60. {argus_server-2.5.0 → argus_server-2.6.0}/docker/README.md +0 -0
  61. {argus_server-2.5.0 → argus_server-2.6.0}/docker/docker-entrypoint.sh +0 -0
  62. {argus_server-2.5.0 → argus_server-2.6.0}/docker/dockersettings.py +0 -0
  63. {argus_server-2.5.0 → argus_server-2.6.0}/docker-compose.yml +0 -0
  64. {argus_server-2.5.0 → argus_server-2.6.0}/docs/Makefile +0 -0
  65. {argus_server-2.5.0 → argus_server-2.6.0}/docs/_exts/djangodocs.py +0 -0
  66. {argus_server-2.5.0 → argus_server-2.6.0}/docs/_static/.gitkeep +0 -0
  67. {argus_server-2.5.0 → argus_server-2.6.0}/docs/_templates/.gitkeep +0 -0
  68. {argus_server-2.5.0 → argus_server-2.6.0}/docs/about-argus.rst +0 -0
  69. {argus_server-2.5.0 → argus_server-2.6.0}/docs/conf.py +0 -0
  70. {argus_server-2.5.0 → argus_server-2.6.0}/docs/customization/htmx-frontend.rst +0 -0
  71. {argus_server-2.5.0 → argus_server-2.6.0}/docs/customization.rst +0 -0
  72. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/add-more-preferences.rst +0 -0
  73. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/change-settings.rst +0 -0
  74. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/changelog-entry.rst +0 -0
  75. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/commit-messages.rst +0 -0
  76. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/federated-logins.rst +0 -0
  77. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/howtos-for-git.rst +0 -0
  78. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/howtos-for-github.rst +0 -0
  79. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -0
  80. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -0
  81. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
  82. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
  83. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
  84. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
  85. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend/override_templates.rst +0 -0
  86. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/htmx-frontend.rst +0 -0
  87. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/notification-system-testing.rst +0 -0
  88. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
  89. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/regenerate-the-ER-diagram.rst +0 -0
  90. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/release-checklist.rst +0 -0
  91. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
  92. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/trigger-test-error-pages.rst +0 -0
  93. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/update-contributors.rst +0 -0
  94. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos/vendor-a-repo.rst +0 -0
  95. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/howtos.rst +0 -0
  96. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/makefile-rules.rst +0 -0
  97. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/management-commands.rst +0 -0
  98. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/notes.rst +0 -0
  99. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/styleguide.rst +0 -0
  100. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development/troubleshooting.rst +0 -0
  101. {argus_server-2.5.0 → argus_server-2.6.0}/docs/development.rst +0 -0
  102. {argus_server-2.5.0 → argus_server-2.6.0}/docs/django_settings.py +0 -0
  103. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/default_timeslot.png +0 -0
  104. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/destinations_view.png +0 -0
  105. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/example_timeslot.png +0 -0
  106. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/filter_selector.png +0 -0
  107. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/incident_details_view.png +0 -0
  108. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/incidents_filter.png +0 -0
  109. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/incidents_page.png +0 -0
  110. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/new_notification_profile.png +0 -0
  111. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/notification_profiles.png +0 -0
  112. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/synced_destination_delete_error.png +0 -0
  113. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/timeslots_view.png +0 -0
  114. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/unsaved_recurrence.png +0 -0
  115. {argus_server-2.5.0 → argus_server-2.6.0}/docs/img/user_menu.png +0 -0
  116. {argus_server-2.5.0 → argus_server-2.6.0}/docs/index.rst +0 -0
  117. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/_note.rst +0 -0
  118. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/glue-services/index.rst +0 -0
  119. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
  120. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/index.rst +0 -0
  121. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/email-plugin.rst +0 -0
  122. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/index.rst +0 -0
  123. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/sms-plugin.rst +0 -0
  124. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/notifications/writing-notification-plugins.rst +0 -0
  125. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/ticket-systems/index.rst +0 -0
  126. {argus_server-2.5.0 → argus_server-2.6.0}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
  127. {argus_server-2.5.0 → argus_server-2.6.0}/docs/make.bat +0 -0
  128. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/admin.rst +0 -0
  129. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/api/v2.rst +0 -0
  130. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/api.rst +0 -0
  131. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/authentication.rst +0 -0
  132. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/glossary.rst +0 -0
  133. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/img/ER_model.png +0 -0
  134. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/models.rst +0 -0
  135. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/planned-maintenance.rst +0 -0
  136. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference/site-specific-settings.rst +0 -0
  137. {argus_server-2.5.0 → argus_server-2.6.0}/docs/reference.rst +0 -0
  138. {argus_server-2.5.0 → argus_server-2.6.0}/docs/user-manual.rst +0 -0
  139. {argus_server-2.5.0 → argus_server-2.6.0}/pyproject.toml +0 -0
  140. {argus_server-2.5.0 → argus_server-2.6.0}/requirements/dev.txt +0 -0
  141. {argus_server-2.5.0 → argus_server-2.6.0}/requirements/please-pip-sync.txt +0 -0
  142. {argus_server-2.5.0 → argus_server-2.6.0}/requirements/test.txt +0 -0
  143. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/__init__.py +0 -0
  144. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/__init__.py +0 -0
  145. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/admin.py +0 -0
  146. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/apps.py +0 -0
  147. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/authentication.py +0 -0
  148. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/context_processors.py +0 -0
  149. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/__init__.py +0 -0
  150. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/serializers.py +0 -0
  151. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/urls.py +0 -0
  152. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/drftoken/views.py +0 -0
  153. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/factories.py +0 -0
  154. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/__init__.py +0 -0
  155. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/serializers.py +0 -0
  156. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/urls.py +0 -0
  157. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/knox/views.py +0 -0
  158. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/__init__.py +0 -0
  159. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/__init__.py +0 -0
  160. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/changeuser.py +0 -0
  161. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/createuser.py +0 -0
  162. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
  163. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
  164. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/management/commands/setpassword.py +0 -0
  165. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0001_initial.py +0 -0
  166. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
  167. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
  168. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
  169. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
  170. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/migrations/__init__.py +0 -0
  171. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/models.py +0 -0
  172. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/serializers.py +0 -0
  173. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/urls.py +0 -0
  174. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/utils.py +0 -0
  175. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/auth/views.py +0 -0
  176. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/__init__.py +0 -0
  177. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/apps.py +0 -0
  178. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/static/favicon.svg +0 -0
  179. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/templates/base.html +0 -0
  180. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/base/templates/index.html +0 -0
  181. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/compat.py +0 -0
  182. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/__init__.py +0 -0
  183. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/apps.py +0 -0
  184. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/__init__.py +0 -0
  185. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/__init__.py +0 -0
  186. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
  187. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
  188. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/close_incident.py +0 -0
  189. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/create_fake_incident.py +0 -0
  190. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/create_source.py +0 -0
  191. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
  192. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/initial_setup.py +0 -0
  193. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/list_filters.py +0 -0
  194. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/stresstest.py +0 -0
  195. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
  196. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/dev/utils.py +0 -0
  197. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/drf/__init__.py +0 -0
  198. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/drf/permissions.py +0 -0
  199. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/__init__.py +0 -0
  200. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/apps.py +0 -0
  201. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/factories.py +0 -0
  202. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/filters.py +0 -0
  203. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/primitive_serializers.py +0 -0
  204. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/serializers.py +0 -0
  205. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/swappable/__init__.py +0 -0
  206. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/swappable/serializers.py +0 -0
  207. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/filter/validators.py +0 -0
  208. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/__init__.py +0 -0
  209. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/appconfig.py +0 -0
  210. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/apps.py +0 -0
  211. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/auth/__init__.py +0 -0
  212. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/auth/views.py +0 -0
  213. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/checks.py +0 -0
  214. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/constants.py +0 -0
  215. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/context_processors.py +0 -0
  216. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/dateformat/__init__.py +0 -0
  217. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/dateformat/constants.py +0 -0
  218. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/defaults.py +0 -0
  219. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/__init__.py +0 -0
  220. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/forms.py +0 -0
  221. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/urls.py +0 -0
  222. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/destination/views.py +0 -0
  223. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/forms.py +0 -0
  224. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/htmx_urls.py +0 -0
  225. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/__init__.py +0 -0
  226. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/constants.py +0 -0
  227. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/filter.py +0 -0
  228. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/__init__.py +0 -0
  229. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/base.py +0 -0
  230. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/incident_actions.py +0 -0
  231. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/forms/incident_filters.py +0 -0
  232. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/urls.py +0 -0
  233. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/incident/utils.py +0 -0
  234. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/management/__init__.py +0 -0
  235. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/management/commands/__init__.py +0 -0
  236. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
  237. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/middleware.py +0 -0
  238. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/migrations/0001_initial.py +0 -0
  239. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/migrations/__init__.py +0 -0
  240. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/modals.py +0 -0
  241. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/models.py +0 -0
  242. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/notificationprofile/__init__.py +0 -0
  243. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/notificationprofile/urls.py +0 -0
  244. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/notificationprofile/views.py +0 -0
  245. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/request.py +0 -0
  246. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/root_urls.py +0 -0
  247. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/settings.py +0 -0
  248. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/choices-11.1.0.min.js +0 -0
  249. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
  250. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
  251. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/static/logo_white.svg +0 -0
  252. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/README.md +0 -0
  253. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/__init__.py +0 -0
  254. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/config.py +0 -0
  255. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/get_tailwind.py +0 -0
  256. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
  257. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
  258. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
  259. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/25-choices.css +0 -0
  260. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/snippets/35-cards.css +0 -0
  261. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/styles.css +0 -0
  262. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/tailwind.config.js +0 -0
  263. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/tailwindtheme/utils.py +0 -0
  264. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/400.html +0 -0
  265. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/401.html +0 -0
  266. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/403.html +0 -0
  267. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/404.html +0 -0
  268. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/410.html +0 -0
  269. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/500.html +0 -0
  270. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/errors/dict/ul.html +0 -0
  271. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/errors/list/ul.html +0 -0
  272. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/field.html +0 -0
  273. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/label.html +0 -0
  274. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
  275. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/checkbox.html +0 -0
  276. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/checkbox_option.html +0 -0
  277. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/classless_attrs.html +0 -0
  278. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/date.html +0 -0
  279. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/datetime.html +0 -0
  280. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/input.html +0 -0
  281. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/radio_option.html +0 -0
  282. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/range.html +0 -0
  283. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/select.html +0 -0
  284. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/django/forms/widgets/time.html +0 -0
  285. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
  286. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
  287. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
  288. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
  289. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/base.html +0 -0
  290. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/components/_page_title.html +0 -0
  291. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/components/incident_list_refresh_info_select.html +0 -0
  292. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +0 -0
  293. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
  294. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_create_form.html +0 -0
  295. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_delete_form.html +0 -0
  296. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_edit_form.html +0 -0
  297. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
  298. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/destination/destination_list.html +0 -0
  299. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +0 -0
  300. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +0 -0
  301. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/input_field.html +0 -0
  302. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/forms/search_select_multiple.html +0 -0
  303. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
  304. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_base_incident_table.html +0 -0
  305. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
  306. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
  307. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
  308. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
  309. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
  310. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +0 -0
  311. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
  312. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +0 -0
  313. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
  314. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
  315. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +0 -0
  316. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
  317. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +0 -0
  318. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
  319. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
  320. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table.html +0 -0
  321. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_autorefresh.html +0 -0
  322. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -0
  323. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_link_to_details.html +0 -0
  324. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_footer.html +0 -0
  325. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
  326. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +0 -0
  327. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
  328. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
  329. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
  330. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
  331. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
  332. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_unpaged_incident_table.html +0 -0
  333. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
  334. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +0 -0
  335. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -0
  336. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_age.html +0 -0
  337. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +0 -0
  338. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +0 -0
  339. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +0 -0
  340. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status_icons.html +0 -0
  341. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -0
  342. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -0
  343. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header_content.html +0 -0
  344. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +0 -0
  345. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_list_select_all_checkbox_header.html +0 -0
  346. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +0 -0
  347. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -0
  348. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source_type.html +0 -0
  349. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +0 -0
  350. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_and_age.html +0 -0
  351. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -0
  352. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +0 -0
  353. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +0 -0
  354. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +0 -0
  355. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/cells/search_fields/input_search.html +0 -0
  356. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
  357. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/incident_detail.html +0 -0
  358. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
  359. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
  360. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
  361. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +0 -0
  362. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +0 -0
  363. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/base.html +0 -0
  364. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
  365. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +0 -0
  366. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +0 -0
  367. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/styleguide.html +0 -0
  368. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
  369. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
  370. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -0
  371. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/base.html +0 -0
  372. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
  373. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +0 -0
  374. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
  375. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -0
  376. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +0 -0
  377. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
  378. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +0 -0
  379. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_incidents_table_columns_dropdown.html +0 -0
  380. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +0 -0
  381. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +0 -0
  382. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_preference_choice_nopreview.html +0 -0
  383. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_datetime.html +0 -0
  384. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_theme.html +0 -0
  385. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +0 -0
  386. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +0 -0
  387. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_user_menu.html +0 -0
  388. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
  389. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
  390. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_field_form.html +0 -0
  391. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_preference_form_script.html +0 -0
  392. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preference_form/_theme_and_format_form.html +0 -0
  393. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/preferences_list.html +0 -0
  394. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx/user/radio_option.html +0 -0
  395. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/htmx_base.html +0 -0
  396. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/messages/_notification_message.html +0 -0
  397. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
  398. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/registration/login.html +0 -0
  399. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/tailwind/styles.css +0 -0
  400. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
  401. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
  402. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templatetags/__init__.py +0 -0
  403. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/templatetags/argus_htmx.py +0 -0
  404. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/themes/__init__.py +0 -0
  405. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/themes/utils.py +0 -0
  406. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/timeslot/__init__.py +0 -0
  407. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/timeslot/urls.py +0 -0
  408. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/timeslot/views.py +0 -0
  409. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/urls.py +0 -0
  410. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/__init__.py +0 -0
  411. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/factories.py +0 -0
  412. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/__init__.py +0 -0
  413. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/forms.py +0 -0
  414. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/models.py +0 -0
  415. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/user/preferences/utils.py +0 -0
  416. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/utils.py +0 -0
  417. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/views.py +0 -0
  418. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/htmx/widgets.py +0 -0
  419. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/__init__.py +0 -0
  420. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/admin.py +0 -0
  421. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/apps.py +0 -0
  422. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/constants.py +0 -0
  423. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/factories.py +0 -0
  424. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/fields.py +0 -0
  425. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/forms.py +0 -0
  426. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0001_initial.py +0 -0
  427. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
  428. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
  429. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0003_incident_level.py +0 -0
  430. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
  431. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
  432. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
  433. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
  434. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
  435. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/0009_use_bigautofield_on_quickly_growing_tables.py +0 -0
  436. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/migrations/__init__.py +0 -0
  437. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/models.py +0 -0
  438. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/serializers.py +0 -0
  439. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/signals.py +0 -0
  440. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
  441. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
  442. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
  443. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/templates/incident/ticket/default_ticket_body.html +0 -0
  444. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/__init__.py +0 -0
  445. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/base.py +0 -0
  446. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/dummy.py +0 -0
  447. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/ticket/utils.py +0 -0
  448. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/urls.py +0 -0
  449. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/validators.py +0 -0
  450. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/views.py +0 -0
  451. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/incident/widgets.py +0 -0
  452. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/__init__.py +0 -0
  453. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/admin.py +0 -0
  454. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/apps.py +0 -0
  455. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/checks.py +0 -0
  456. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/factories.py +0 -0
  457. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/base.py +0 -0
  458. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/email.py +0 -0
  459. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/media/sms_as_email.py +0 -0
  460. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
  461. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
  462. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
  463. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
  464. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/0018_remove_closed_and_unacked_from_filterblob.py +0 -0
  465. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/migrations/__init__.py +0 -0
  466. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/models.py +0 -0
  467. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/serializers.py +0 -0
  468. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/signals.py +0 -0
  469. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
  470. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
  471. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
  472. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/urls.py +0 -0
  473. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/notificationprofile/views.py +0 -0
  474. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/__init__.py +0 -0
  475. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/admin.py +0 -0
  476. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/apps.py +0 -0
  477. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/factories.py +0 -0
  478. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/migrations/0001_initial.py +0 -0
  479. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/migrations/__init__.py +0 -0
  480. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/models.py +0 -0
  481. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/templates/plannedmaintenance/admin/planned_maintenance_change_form.html +0 -0
  482. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/plannedmaintenance/utils.py +0 -0
  483. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/__init__.py +0 -0
  484. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/api_v2_urls.py +0 -0
  485. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/logging.py +0 -0
  486. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/serializers.py +0 -0
  487. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/__init__.py +0 -0
  488. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/_serializers.py +0 -0
  489. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/backend.py +0 -0
  490. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/dev.py +0 -0
  491. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/dockerdev.py +0 -0
  492. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/settings/prod.py +0 -0
  493. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/urls.py +0 -0
  494. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/utils.py +0 -0
  495. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/views.py +0 -0
  496. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/site/wsgi.py +0 -0
  497. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/__init__.py +0 -0
  498. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/admin_utils.py +0 -0
  499. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/datetime_utils.py +0 -0
  500. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/testing.py +0 -0
  501. {argus_server-2.5.0 → argus_server-2.6.0}/src/argus/util/utils.py +0 -0
  502. {argus_server-2.5.0 → argus_server-2.6.0}/tests/__init__.py +0 -0
  503. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/__init__.py +0 -0
  504. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/management_commands/__init__.py +0 -0
  505. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/management_commands/test_changeuser.py +0 -0
  506. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/management_commands/test_createuser.py +0 -0
  507. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/models.py +0 -0
  508. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_auth.py +0 -0
  509. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_knox_views.py +0 -0
  510. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_models.py +0 -0
  511. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_utils.py +0 -0
  512. {argus_server-2.5.0 → argus_server-2.6.0}/tests/auth/test_views.py +0 -0
  513. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/__init__.py +0 -0
  514. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_bulk_incidents.py +0 -0
  515. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_check_token_expiry.py +0 -0
  516. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_close_incident.py +0 -0
  517. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_create_fake_incident.py +0 -0
  518. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_create_source.py +0 -0
  519. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_gen_secret_key.py +0 -0
  520. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_initial_setup.py +0 -0
  521. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_list_filters.py +0 -0
  522. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_toggle_profile_activation.py +0 -0
  523. {argus_server-2.5.0 → argus_server-2.6.0}/tests/dev/test_utils.py +0 -0
  524. {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/__init__.py +0 -0
  525. {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/dummyplugin.py +0 -0
  526. {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/test_filterplugin.py +0 -0
  527. {argus_server-2.5.0 → argus_server-2.6.0}/tests/filter/test_queryset_filters.py +0 -0
  528. {argus_server-2.5.0 → argus_server-2.6.0}/tests/helpers.py +0 -0
  529. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/__init__.py +0 -0
  530. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/__init__.py +0 -0
  531. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_customization.py +0 -0
  532. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_filter.py +0 -0
  533. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_forms_incident_filters.py +0 -0
  534. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_utils.py +0 -0
  535. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/incident/test_views.py +0 -0
  536. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/notificationprofile/__init__.py +0 -0
  537. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/notificationprofile/test_forms.py +0 -0
  538. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_context_processors.py +0 -0
  539. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_incident_columns_rendering.py +0 -0
  540. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_middleware.py +0 -0
  541. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_templatetags.py +0 -0
  542. {argus_server-2.5.0 → argus_server-2.6.0}/tests/htmx/test_utils.py +0 -0
  543. {argus_server-2.5.0/tests/incident/fixtures → argus_server-2.6.0/tests/htmx/user}/__init__.py +0 -0
  544. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/__init__.py +0 -0
  545. {argus_server-2.5.0/tests/incident/ticket_plugins → argus_server-2.6.0/tests/incident/fixtures}/__init__.py +0 -0
  546. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_change_event.py +0 -0
  547. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_create_fake_incident.py +0 -0
  548. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_event.py +0 -0
  549. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_filters.py +0 -0
  550. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_incident.py +0 -0
  551. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_incident_fields.py +0 -0
  552. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_queryset.py +0 -0
  553. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_serializers.py +0 -0
  554. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_source_system.py +0 -0
  555. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_source_system_type.py +0 -0
  556. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/test_views.py +0 -0
  557. {argus_server-2.5.0/tests/incident/unit → argus_server-2.6.0/tests/incident/ticket_plugins}/__init__.py +0 -0
  558. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/ticket_plugins/test_base.py +0 -0
  559. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/ticket_plugins/test_dummy.py +0 -0
  560. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/ticket_plugins/test_utils.py +0 -0
  561. {argus_server-2.5.0/tests/notificationprofile/destinations → argus_server-2.6.0/tests/incident/unit}/__init__.py +0 -0
  562. {argus_server-2.5.0 → argus_server-2.6.0}/tests/incident/unit/test_incident_details_url.py +0 -0
  563. {argus_server-2.5.0 → argus_server-2.6.0}/tests/migration_example.py +0 -0
  564. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/__init__.py +0 -0
  565. {argus_server-2.5.0/tests/notificationprofile/migrations → argus_server-2.6.0/tests/notificationprofile/destinations}/__init__.py +0 -0
  566. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/destinations/test_email.py +0 -0
  567. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/destinations/test_sms.py +0 -0
  568. {argus_server-2.5.0/tests/plannedmaintenance → argus_server-2.6.0/tests/notificationprofile/migrations}/__init__.py +0 -0
  569. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_github236.py +0 -0
  570. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_media.py +0 -0
  571. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_models.py +0 -0
  572. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_serializers.py +0 -0
  573. {argus_server-2.5.0 → argus_server-2.6.0}/tests/notificationprofile/test_views.py +0 -0
  574. {argus_server-2.5.0/tests/site → argus_server-2.6.0/tests/plannedmaintenance}/__init__.py +0 -0
  575. {argus_server-2.5.0 → argus_server-2.6.0}/tests/plannedmaintenance/test_models.py +0 -0
  576. {argus_server-2.5.0 → argus_server-2.6.0}/tests/plannedmaintenance/test_utils.py +0 -0
  577. {argus_server-2.5.0/tests/util → argus_server-2.6.0/tests/site}/__init__.py +0 -0
  578. {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_misc.py +0 -0
  579. {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_settings_helpers.py +0 -0
  580. {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_settings_validators.py +0 -0
  581. {argus_server-2.5.0 → argus_server-2.6.0}/tests/site/test_views.py +0 -0
  582. {argus_server-2.5.0 → argus_server-2.6.0}/tests/util/test_utils.py +0 -0
@@ -8,6 +8,23 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang
8
8
 
9
9
  <!-- towncrier release notes start -->
10
10
 
11
+ ## [2.6.0] - 2026-01-06
12
+
13
+ This is a tiny release to finish up what was started at the end of 2025.
14
+
15
+ ### Added
16
+
17
+ - Add preview for incident table preferences
18
+ ([#1658](https://github.com/Uninett/Argus/issues/1658))
19
+
20
+ ### Fixed
21
+
22
+ - Filter on source type in dashboard. The previous release made it work for
23
+ notifications but not in the incident list in the frontend.
24
+ - Fix bug where the incident table overlaps filter dropdowns
25
+ ([#1669](https://github.com/Uninett/Argus/issues/1669))
26
+
27
+
11
28
  ## [2.5.0] - 2025-12-04
12
29
 
13
30
  The big new thing this time around is a way to prevent notifications from
@@ -3,6 +3,19 @@
3
3
  This file documents changes to Argus that are relevant for operations,
4
4
  customizers and end-users.
5
5
 
6
+
7
+ ## [2.6.0] - 2026-01-06
8
+
9
+ This is a tiny release to finish up what was started at the end of 2025.
10
+
11
+ The feature for having mutiple column presets for the incident list is now
12
+ finished. Please make add issue if you have a column-type you would like
13
+ added.
14
+
15
+ Also, there were some bugs with the typeahead for the tag filter and the new
16
+ source system type filter that was introduced in 2.4.0, the ones we know of
17
+ have been fixed.
18
+
6
19
  ## [2.5.0] - 2025-12-04
7
20
 
8
21
  This release adds a new app, "argus.plannedmaintenance", which uses a new
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: argus-server
3
- Version: 2.5.0
3
+ Version: 2.6.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>
@@ -27,24 +27,29 @@ changed incidents.
27
27
  FilterWrapper
28
28
  -------------
29
29
 
30
- Base class, the important methods are ``incident_fits`` and ``event_fits``.
30
+ Base class, the important methods are ``incident_fits``, ``event_fits`` and
31
+ ``filter_fits``. The latter two take a single event. ``filter_fits`` checks
32
+ both ``event_fits`` and ``incident_fits``, in that order.
31
33
 
32
34
  FallbackFilterWrapper
33
35
  ---------------------
34
36
 
35
37
  Subclass of ``FilterWrapper``. Merges a filter with the filter in the setting
36
- ``ARGUS_FALLBACK_FILTER``.
38
+ :setting:`ARGUS_FALLBACK_FILTER`.
37
39
 
38
- ComplexFilterWrapper
39
- --------------------
40
+ PrecisionFilterWrapper
41
+ ----------------------
40
42
 
41
- OR's together multiple simple FilterWrappers, used by NotificationProfile.
43
+ AND's together multiple simple filters, using ``FilterWrapper`` by default. Not
44
+ used directly.
42
45
 
43
- ComplexFallbackFilterWrapper
44
- ----------------------------
46
+ Has the methods ``incident_fits`` and ``event_fits``, and ``filter_fits`` which
47
+ takes an event and checks both ``event_fits`` and ``incident_fits``, in that
48
+ order.
45
49
 
46
- Subclass of ``FilterWrapper``. Takes the setting ``ARGUS_FALLBACK_FILTER`` into
47
- account for each filter.
50
+ ``NotificationProfile`` has the subclass ``NotificationProfileFilterWrapper``,
51
+ which combines a ``PrecisionFilterWrapper`` with a ``FallbackFilterWrapper``.
52
+ It is thus affected by the setting :setting:`ARGUS_FALLBACK_FILTER`.
48
53
 
49
54
  ---------------------------------------
50
55
  Matching a filter to multiple incidents
@@ -16,4 +16,13 @@ python:S1192 - String literals should not be duplicated
16
16
  If it makes it more readable, for example if configuration is happening within the
17
17
  Python code, then we accept it with "This is better for readability".
18
18
 
19
+ python:S2208 - Wildcard imports should not be used
20
+ --------------------------------------------------
21
+
22
+ This is okay in settings files. Mark as false positive with "Django standard
23
+ practice for settings files". Notice that `sonarqube`_ ignores all ``#noqa``
24
+ so "#noqa: `F401`_, `F403`_" won't help.
25
+
19
26
  .. _sonarqube: https://www.sonarsource.com/products/sonarcloud/
27
+ .. _F401: https://www.flake8rules.com/rules/F401.html
28
+ .. _F403: https://www.flake8rules.com/rules/F403.html
@@ -304,7 +304,7 @@ start_time_and_age
304
304
  :From: start_time + age
305
305
  :Name: start_time_and_age
306
306
  :Description: When the incident started, and how long it has been ongoing.
307
- :Redundant with: start_time
307
+ :Redundant with: start_time, age
308
308
 
309
309
  age
310
310
  :From: age
@@ -0,0 +1 @@
1
+ django>=5.2.9,<6.0
@@ -2,7 +2,7 @@
2
2
  # This file is autogenerated by pip-compile with Python 3.12
3
3
  # by the following command:
4
4
  #
5
- # pip-compile --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
5
+ # pip-compile --no-strip-extras --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
6
6
  #
7
7
  annotated-types==0.7.0
8
8
  # via pydantic
@@ -37,7 +37,7 @@ defusedxml==0.7.1
37
37
  # social-auth-core
38
38
  dj-database-url==2.3.0
39
39
  # via argus-server (pyproject.toml)
40
- django==5.2.8
40
+ django==5.2.9
41
41
  # via
42
42
  # -r requirements/django52.txt
43
43
  # argus-server (pyproject.toml)
@@ -162,7 +162,7 @@ tzdata==2025.2
162
162
  # via faker
163
163
  uritemplate==4.1.1
164
164
  # via drf-spectacular
165
- urllib3==2.5.0
165
+ urllib3==2.6.0
166
166
  # via
167
167
  # -r constraints.txt
168
168
  # requests
@@ -2,7 +2,7 @@
2
2
  # This file is autogenerated by pip-compile with Python 3.12
3
3
  # by the following command:
4
4
  #
5
- # pip-compile --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
5
+ # pip-compile --no-strip-extras --output-file=requirements-django52.txt constraints.txt pyproject.toml requirements/django52.txt
6
6
  #
7
7
  annotated-types==0.7.0
8
8
  # via pydantic
@@ -37,7 +37,7 @@ defusedxml==0.7.1
37
37
  # social-auth-core
38
38
  dj-database-url==2.3.0
39
39
  # via argus-server (pyproject.toml)
40
- django==5.2.8
40
+ django==5.2.9
41
41
  # via
42
42
  # -r requirements/django52.txt
43
43
  # argus-server (pyproject.toml)
@@ -162,7 +162,7 @@ tzdata==2025.2
162
162
  # via faker
163
163
  uritemplate==4.1.1
164
164
  # via drf-spectacular
165
- urllib3==2.5.0
165
+ urllib3==2.6.0
166
166
  # via
167
167
  # -r constraints.txt
168
168
  # requests
@@ -0,0 +1,25 @@
1
+ from django.conf import settings
2
+ from django.core.checks import Warning
3
+
4
+ from rest_framework import serializers
5
+
6
+ from argus.filter.validators import validate_jsonfilter
7
+
8
+
9
+ __all__ = ["fallback_filter_check"]
10
+
11
+
12
+ def fallback_filter_check(app_configs, **kwargs):
13
+ fallback_filter = getattr(settings, "ARGUS_FALLBACK_FILTER", {})
14
+ try:
15
+ validate_jsonfilter(fallback_filter)
16
+ except serializers.ValidationError:
17
+ warning = Warning(
18
+ 'The ARGUS_FALLBACK_FILTER setting is invalid and has been set to "{}"',
19
+ hint="See the docs for the format of the ARGUS_FALLBACK_FILTER setting",
20
+ obj=fallback_filter,
21
+ id="argus_filter.W001",
22
+ )
23
+ return [warning]
24
+ else:
25
+ return []
@@ -1,8 +1,7 @@
1
1
  from .filterwrapper import ( # noqa: F401
2
2
  FilterWrapper,
3
3
  FallbackFilterWrapper,
4
- ComplexFilterWrapper,
5
- ComplexFallbackFilterWrapper,
4
+ PrecisionFilterWrapper,
6
5
  )
7
6
  from .queryset_filters import QuerySetFilter # noqa: F401
8
7
  from .filters import ( # noqa: F401
@@ -9,14 +9,15 @@ from argus.compat import StrEnum
9
9
 
10
10
 
11
11
  if TYPE_CHECKING:
12
+ from django.db.models import Model
13
+ from django.db.models.query import QuerySet
12
14
  from argus.incident.models import Event, Incident
13
15
 
14
16
 
15
17
  __all__ = [
16
18
  "FilterWrapper",
17
19
  "FallbackFilterWrapper",
18
- "ComplexFilterWrapper",
19
- "ComplexFallbackFilterWrapper",
20
+ "PrecisionFilterWrapper",
20
21
  ]
21
22
 
22
23
 
@@ -120,6 +121,13 @@ class FilterWrapper:
120
121
  LOG.debug("Filter: %s: HIT!", self)
121
122
  return not any_failed
122
123
 
124
+ def filter_fits(self, event) -> bool:
125
+ event_fits = self.event_fits(event)
126
+ incident_fits = self.incident_fits(event.incident)
127
+ if event_fits and incident_fits:
128
+ return True
129
+ return False
130
+
123
131
 
124
132
  class FallbackFilterWrapper(FilterWrapper):
125
133
  "Changed by ARGUS_FALLBACK_FILTER setting"
@@ -133,36 +141,37 @@ class FallbackFilterWrapper(FilterWrapper):
133
141
  return value if value else self.fallback_filter.get(key, None)
134
142
 
135
143
 
136
- class ComplexFilterWrapper:
144
+ class PrecisionFilterWrapper:
145
+ "Combine several filters together via Boolean AND for higher precision"
146
+
137
147
  filterwrapper = FilterWrapper
138
148
 
139
- def __init__(self, **kwargs):
140
- self.profile = kwargs.pop("profile", None)
149
+ def __init__(self, model_or_queryset: Model | QuerySet, filterwrapper: Optional[FilterWrapper] = None):
150
+ # subclasses accepting model needs to pass on the manager in super()
151
+ self.queryset = model_or_queryset
152
+ if filterwrapper:
153
+ self.filterwrapper = filterwrapper
141
154
 
142
155
  def incident_fits(self, incident: Incident) -> bool:
143
156
  """Check against multiple filters
144
157
 
145
158
  The filters are AND-ed together for greater precision.
146
159
  """
147
- if not self.profile.active:
148
- return False
149
- is_selected_by_time = self.profile.timeslot.timestamp_is_within_time_recurrences(incident.start_time)
150
- if not is_selected_by_time:
151
- return False
152
- for f in self.profile.filters.only("filter"):
160
+ for f in self.queryset.only("filter"):
153
161
  if not self.filterwrapper(f.filter).incident_fits(incident):
154
162
  return False
155
163
  return True
156
164
 
157
165
  def event_fits(self, event: Event) -> bool:
158
- if not self.profile.active:
159
- return False
160
166
  # return as early as possible
161
- for f in self.profile.filters.only("filter"):
167
+ for f in self.queryset.only("filter"):
162
168
  if FilterWrapper(f.filter).event_fits(event):
163
169
  return True
164
170
  return False
165
171
 
166
-
167
- class ComplexFallbackFilterWrapper(ComplexFilterWrapper):
168
- filterwrapper = FallbackFilterWrapper
172
+ def filter_fits(self, event: Event) -> bool:
173
+ event_fits = self.event_fits(event)
174
+ incident_fits = self.incident_fits(event.incident)
175
+ if event_fits and incident_fits:
176
+ return True
177
+ return False
@@ -12,6 +12,14 @@ if TYPE_CHECKING:
12
12
  __all__ = ["QuerySetFilter"]
13
13
 
14
14
 
15
+ def _incidents_with_source_system_types(incident_queryset, filterblob: FilterBlobType):
16
+ source_list = filterblob.get("source_types", [])
17
+ if source_list:
18
+ incident_queryset.prefetch_related("source")
19
+ return incident_queryset.filter(source__type_id__in=source_list).distinct()
20
+ return incident_queryset.distinct()
21
+
22
+
15
23
  def _incidents_with_source_systems(incident_queryset, filterblob: FilterBlobType):
16
24
  source_list = filterblob.get("sourceSystemIds", [])
17
25
  if source_list:
@@ -63,12 +71,19 @@ class QuerySetFilter:
63
71
  fw = FilterWrapper(filterblob)
64
72
  if fw.is_empty:
65
73
  return Incident.objects.none().distinct()
74
+ filtered_by_source_type = _incidents_with_source_system_types(incident_queryset, filterblob)
66
75
  filtered_by_source = _incidents_with_source_systems(incident_queryset, filterblob)
67
76
  filtered_by_tags = _incidents_with_tags(incident_queryset, filterblob)
68
77
  filtered_by_tristates = _incidents_fitting_tristates(incident_queryset, filterblob)
69
78
  filtered_by_maxlevel = _incidents_fitting_maxlevel(incident_queryset, filterblob)
70
79
 
71
- return filtered_by_source & filtered_by_tags & filtered_by_tristates & filtered_by_maxlevel
80
+ return (
81
+ filtered_by_source_type
82
+ & filtered_by_source
83
+ & filtered_by_tags
84
+ & filtered_by_tristates
85
+ & filtered_by_maxlevel
86
+ )
72
87
 
73
88
  @classmethod
74
89
  def incidents_by_filter(cls, incident_queryset, filter: Filter):
@@ -20,7 +20,7 @@ LOG = logging.getLogger(__name__)
20
20
  CELL_WRAPPER_TEMPLATE_DEFAULT = "htmx/incident/_incident_table_cell_wrapper_default.html"
21
21
  CELL_WRAPPER_TEMPLATE_LINK_TO_DETAILS = "htmx/incident/_incident_table_cell_wrapper_link_to_details.html"
22
22
 
23
- _BUILTIN_COLUMN_LAYOUT_NAME = "built-in"
23
+ BUILTIN_COLUMN_LAYOUT_NAME = "built-in"
24
24
  _DEFAULT_COLUMN_LAYOUT_NAME = "default"
25
25
 
26
26
 
@@ -197,7 +197,7 @@ BUILTIN_COLUMNS = {col.name: col for col in _BUILTIN_COLUMN_LIST}
197
197
  def get_builtin_column_layout():
198
198
  "Return the column layout defined in `argus.htmx.defaults`"
199
199
 
200
- return _BUILTIN_COLUMN_LAYOUT_NAME, BUILTIN_INCIDENT_TABLE_COLUMNS
200
+ return BUILTIN_COLUMN_LAYOUT_NAME, BUILTIN_INCIDENT_TABLE_COLUMNS
201
201
 
202
202
 
203
203
  def get_default_column_layout():
@@ -249,7 +249,7 @@ def get_column_choices():
249
249
  return columns
250
250
 
251
251
 
252
- def get_incident_table_columns(name: str = _BUILTIN_COLUMN_LAYOUT_NAME) -> list[IncidentTableColumn]:
252
+ def get_incident_table_columns(name: str = BUILTIN_COLUMN_LAYOUT_NAME) -> list[IncidentTableColumn]:
253
253
  """Return the named incident column layout
254
254
 
255
255
  Falls back to the built-in layout if the name is unknown."""
@@ -257,7 +257,7 @@ def get_incident_table_columns(name: str = _BUILTIN_COLUMN_LAYOUT_NAME) -> list[
257
257
  LOG.debug("Getting layouts: get_incident_table_columns")
258
258
  layouts = get_available_column_layouts()
259
259
  if name not in layouts:
260
- name = _BUILTIN_COLUMN_LAYOUT_NAME
260
+ name = BUILTIN_COLUMN_LAYOUT_NAME
261
261
  columns = layouts[name]
262
262
  return [_resolve_column(col) for col in columns]
263
263
 
@@ -272,7 +272,7 @@ def get_default_column_layout_name():
272
272
  layouts = get_available_column_layouts()
273
273
  if _DEFAULT_COLUMN_LAYOUT_NAME in layouts.keys():
274
274
  return _DEFAULT_COLUMN_LAYOUT_NAME
275
- return _BUILTIN_COLUMN_LAYOUT_NAME
275
+ return BUILTIN_COLUMN_LAYOUT_NAME
276
276
 
277
277
 
278
278
  def _resolve_column(col: str | IncidentTableColumn):
@@ -91,7 +91,7 @@ def incident_update(request: HtmxHttpRequest, action: str):
91
91
  try:
92
92
  formclass, callback_func = INCIDENT_UPDATE_ACTIONS[action]
93
93
  except KeyError:
94
- LOG.error("Unrecognized action name %s when updating incidents.", action)
94
+ LOG.error("Unrecognized action name when updating incidents.")
95
95
  return HttpResponseBadRequest("Invalid update action")
96
96
  incident_ids = get_incident_ids_to_update(request)
97
97
  if not incident_ids: