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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (579) hide show
  1. {argus_server-2.4.0 → argus_server-2.5.0}/CHANGELOG.md +41 -1
  2. {argus_server-2.4.0 → argus_server-2.5.0}/NOTES.md +15 -0
  3. {argus_server-2.4.0 → argus_server-2.5.0}/PKG-INFO +4 -4
  4. {argus_server-2.4.0 → argus_server-2.5.0}/README.md +3 -3
  5. {argus_server-2.4.0 → argus_server-2.5.0}/codecov.yml +2 -2
  6. {argus_server-2.4.0 → argus_server-2.5.0}/docs/about-argus.rst +1 -0
  7. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/regenerate-the-ER-diagram.rst +3 -3
  8. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/release-checklist.rst +2 -2
  9. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/vendor-a-repo.rst +1 -1
  10. {argus_server-2.4.0 → argus_server-2.5.0}/docs/django_settings.py +1 -0
  11. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/writing-notification-plugins.rst +1 -1
  12. argus_server-2.5.0/docs/reference/img/ER_model.png +0 -0
  13. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/models.rst +12 -0
  14. argus_server-2.5.0/docs/reference/planned-maintenance.rst +43 -0
  15. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/factories.py +2 -1
  16. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/create_fake_incident.py +2 -1
  17. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/create_source.py +9 -2
  18. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/context_processors.py +5 -0
  19. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/styles.css +142 -232
  20. argus_server-2.5.0/src/argus/htmx/tailwindtheme/snippets/35-cards.css +15 -0
  21. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/styles.css +1 -0
  22. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +1 -1
  23. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_create_form.html +1 -1
  24. argus_server-2.5.0/src/argus/htmx/templates/htmx/destination/destination_list.html +7 -0
  25. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_base_incident_table.html +1 -1
  26. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header_content.html +10 -10
  27. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/incident_detail.html +12 -12
  28. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/base.html +1 -1
  29. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +1 -1
  30. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +2 -2
  31. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/styleguide.html +27 -0
  32. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/base.html +1 -1
  33. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +2 -4
  34. argus_server-2.5.0/src/argus/htmx/templates/htmx/user/_preference_choice_preview_theme.html +13 -0
  35. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_user_menu.html +14 -1
  36. argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_base_form.html +19 -0
  37. argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_form.html +10 -0
  38. argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_preference_form_script.html +26 -0
  39. argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preference_form/_theme_and_format_form.html +10 -0
  40. argus_server-2.5.0/src/argus/htmx/templates/htmx/user/preferences_list.html +12 -0
  41. argus_server-2.5.0/src/argus/htmx/templates/htmx/user/radio_option.html +13 -0
  42. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/registration/login.html +10 -0
  43. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/forms.py +22 -2
  44. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/views.py +7 -0
  45. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/factories.py +1 -1
  46. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/models.py +1 -1
  47. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/signals.py +5 -0
  48. argus_server-2.5.0/src/argus/plannedmaintenance/admin.py +102 -0
  49. argus_server-2.5.0/src/argus/plannedmaintenance/apps.py +6 -0
  50. argus_server-2.5.0/src/argus/plannedmaintenance/factories.py +22 -0
  51. argus_server-2.5.0/src/argus/plannedmaintenance/migrations/0001_initial.py +76 -0
  52. argus_server-2.5.0/src/argus/plannedmaintenance/models.py +85 -0
  53. argus_server-2.5.0/src/argus/plannedmaintenance/templates/plannedmaintenance/admin/planned_maintenance_change_form.html +8 -0
  54. argus_server-2.5.0/src/argus/plannedmaintenance/utils.py +52 -0
  55. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/base.py +2 -0
  56. argus_server-2.5.0/src/argus/version.py +1 -0
  57. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_knox_views.py +3 -1
  58. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_create_source.py +7 -0
  59. argus_server-2.5.0/tests/htmx/test_context_processors.py +12 -0
  60. argus_server-2.5.0/tests/plannedmaintenance/__init__.py +0 -0
  61. argus_server-2.5.0/tests/plannedmaintenance/test_models.py +117 -0
  62. argus_server-2.5.0/tests/plannedmaintenance/test_utils.py +115 -0
  63. argus_server-2.5.0/tests/site/__init__.py +0 -0
  64. argus_server-2.5.0/tests/util/__init__.py +0 -0
  65. {argus_server-2.4.0 → argus_server-2.5.0}/tox.ini +1 -1
  66. argus_server-2.4.0/docs/reference/img/ER_model.png +0 -0
  67. argus_server-2.4.0/src/argus/htmx/templates/htmx/destination/destination_list.html +0 -5
  68. argus_server-2.4.0/src/argus/htmx/templates/htmx/user/preferences_list.html +0 -14
  69. argus_server-2.4.0/src/argus/htmx/templates/htmx/user/radio_option.html +0 -10
  70. argus_server-2.4.0/src/argus/version.py +0 -1
  71. {argus_server-2.4.0 → argus_server-2.5.0}/.git-blame-ignore-revs +0 -0
  72. {argus_server-2.4.0 → argus_server-2.5.0}/.gitattributes +0 -0
  73. {argus_server-2.4.0 → argus_server-2.5.0}/.gitignore +0 -0
  74. {argus_server-2.4.0 → argus_server-2.5.0}/.mailmap +0 -0
  75. {argus_server-2.4.0 → argus_server-2.5.0}/.pre-commit-config.yaml +0 -0
  76. {argus_server-2.4.0 → argus_server-2.5.0}/.readthedocs.yaml +0 -0
  77. {argus_server-2.4.0 → argus_server-2.5.0}/.sonarcloud.properties +0 -0
  78. {argus_server-2.4.0 → argus_server-2.5.0}/CONTRIBUTING.rst +0 -0
  79. {argus_server-2.4.0 → argus_server-2.5.0}/CONTRIBUTORS.md +0 -0
  80. {argus_server-2.4.0 → argus_server-2.5.0}/Dockerfile +0 -0
  81. {argus_server-2.4.0 → argus_server-2.5.0}/LICENSE +0 -0
  82. {argus_server-2.4.0 → argus_server-2.5.0}/MAINTAINING.rst +0 -0
  83. {argus_server-2.4.0 → argus_server-2.5.0}/Makefile +0 -0
  84. {argus_server-2.4.0 → argus_server-2.5.0}/UPGRADING.md +0 -0
  85. {argus_server-2.4.0 → argus_server-2.5.0}/changelog.d/.gitkeep +0 -0
  86. {argus_server-2.4.0 → argus_server-2.5.0}/cmd.sh-template +0 -0
  87. {argus_server-2.4.0 → argus_server-2.5.0}/constraints.txt +0 -0
  88. {argus_server-2.4.0 → argus_server-2.5.0}/docker/Dockerfile +0 -0
  89. {argus_server-2.4.0 → argus_server-2.5.0}/docker/README.md +0 -0
  90. {argus_server-2.4.0 → argus_server-2.5.0}/docker/docker-entrypoint.sh +0 -0
  91. {argus_server-2.4.0 → argus_server-2.5.0}/docker/dockersettings.py +0 -0
  92. {argus_server-2.4.0 → argus_server-2.5.0}/docker-compose.yml +0 -0
  93. {argus_server-2.4.0 → argus_server-2.5.0}/docs/Makefile +0 -0
  94. {argus_server-2.4.0 → argus_server-2.5.0}/docs/_exts/djangodocs.py +0 -0
  95. {argus_server-2.4.0 → argus_server-2.5.0}/docs/_static/.gitkeep +0 -0
  96. {argus_server-2.4.0 → argus_server-2.5.0}/docs/_templates/.gitkeep +0 -0
  97. {argus_server-2.4.0 → argus_server-2.5.0}/docs/conf.py +0 -0
  98. {argus_server-2.4.0 → argus_server-2.5.0}/docs/customization/htmx-frontend.rst +0 -0
  99. {argus_server-2.4.0 → argus_server-2.5.0}/docs/customization.rst +0 -0
  100. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/add-more-preferences.rst +0 -0
  101. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/change-settings.rst +0 -0
  102. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/changelog-entry.rst +0 -0
  103. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/commit-messages.rst +0 -0
  104. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/customizing-filtering.rst +0 -0
  105. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/federated-logins.rst +0 -0
  106. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/howtos-for-git.rst +0 -0
  107. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/howtos-for-github.rst +0 -0
  108. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -0
  109. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -0
  110. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
  111. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
  112. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
  113. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
  114. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend/override_templates.rst +0 -0
  115. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/htmx-frontend.rst +0 -0
  116. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/notification-system-testing.rst +0 -0
  117. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
  118. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/sonarqube.rst +0 -0
  119. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
  120. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/trigger-test-error-pages.rst +0 -0
  121. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos/update-contributors.rst +0 -0
  122. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/howtos.rst +0 -0
  123. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/makefile-rules.rst +0 -0
  124. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/management-commands.rst +0 -0
  125. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/notes.rst +0 -0
  126. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/styleguide.rst +0 -0
  127. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development/troubleshooting.rst +0 -0
  128. {argus_server-2.4.0 → argus_server-2.5.0}/docs/development.rst +0 -0
  129. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/default_timeslot.png +0 -0
  130. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/destinations_view.png +0 -0
  131. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/example_timeslot.png +0 -0
  132. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/filter_selector.png +0 -0
  133. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/incident_details_view.png +0 -0
  134. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/incidents_filter.png +0 -0
  135. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/incidents_page.png +0 -0
  136. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/new_notification_profile.png +0 -0
  137. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/notification_profiles.png +0 -0
  138. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/synced_destination_delete_error.png +0 -0
  139. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/timeslots_view.png +0 -0
  140. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/unsaved_recurrence.png +0 -0
  141. {argus_server-2.4.0 → argus_server-2.5.0}/docs/img/user_menu.png +0 -0
  142. {argus_server-2.4.0 → argus_server-2.5.0}/docs/index.rst +0 -0
  143. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/_note.rst +0 -0
  144. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/glue-services/index.rst +0 -0
  145. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
  146. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/index.rst +0 -0
  147. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/email-plugin.rst +0 -0
  148. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/index.rst +0 -0
  149. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/notifications/sms-plugin.rst +0 -0
  150. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/ticket-systems/index.rst +0 -0
  151. {argus_server-2.4.0 → argus_server-2.5.0}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
  152. {argus_server-2.4.0 → argus_server-2.5.0}/docs/make.bat +0 -0
  153. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/admin.rst +0 -0
  154. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/api/v2.rst +0 -0
  155. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/api.rst +0 -0
  156. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/authentication.rst +0 -0
  157. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/glossary.rst +0 -0
  158. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/htmx-frontend.rst +0 -0
  159. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference/site-specific-settings.rst +0 -0
  160. {argus_server-2.4.0 → argus_server-2.5.0}/docs/reference.rst +0 -0
  161. {argus_server-2.4.0 → argus_server-2.5.0}/docs/user-manual.rst +0 -0
  162. {argus_server-2.4.0 → argus_server-2.5.0}/pyproject.toml +0 -0
  163. {argus_server-2.4.0 → argus_server-2.5.0}/requirements/dev.txt +0 -0
  164. {argus_server-2.4.0 → argus_server-2.5.0}/requirements/django52.txt +0 -0
  165. {argus_server-2.4.0 → argus_server-2.5.0}/requirements/please-pip-sync.txt +0 -0
  166. {argus_server-2.4.0 → argus_server-2.5.0}/requirements/test.txt +0 -0
  167. {argus_server-2.4.0 → argus_server-2.5.0}/requirements-django52.txt +0 -0
  168. {argus_server-2.4.0 → argus_server-2.5.0}/requirements.txt +0 -0
  169. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/__init__.py +0 -0
  170. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/__init__.py +0 -0
  171. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/admin.py +0 -0
  172. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/apps.py +0 -0
  173. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/authentication.py +0 -0
  174. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/context_processors.py +0 -0
  175. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/__init__.py +0 -0
  176. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/serializers.py +0 -0
  177. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/urls.py +0 -0
  178. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/drftoken/views.py +0 -0
  179. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/__init__.py +0 -0
  180. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/serializers.py +0 -0
  181. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/urls.py +0 -0
  182. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/knox/views.py +0 -0
  183. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/__init__.py +0 -0
  184. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/__init__.py +0 -0
  185. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/changeuser.py +0 -0
  186. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/createuser.py +0 -0
  187. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
  188. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
  189. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/management/commands/setpassword.py +0 -0
  190. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0001_initial.py +0 -0
  191. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
  192. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
  193. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
  194. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
  195. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/migrations/__init__.py +0 -0
  196. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/models.py +0 -0
  197. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/serializers.py +0 -0
  198. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/urls.py +0 -0
  199. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/utils.py +0 -0
  200. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/auth/views.py +0 -0
  201. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/__init__.py +0 -0
  202. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/apps.py +0 -0
  203. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/static/favicon.svg +0 -0
  204. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/templates/base.html +0 -0
  205. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/base/templates/index.html +0 -0
  206. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/compat.py +0 -0
  207. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/__init__.py +0 -0
  208. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/apps.py +0 -0
  209. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/__init__.py +0 -0
  210. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/__init__.py +0 -0
  211. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
  212. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
  213. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/close_incident.py +0 -0
  214. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
  215. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/initial_setup.py +0 -0
  216. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/list_filters.py +0 -0
  217. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/stresstest.py +0 -0
  218. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
  219. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/dev/utils.py +0 -0
  220. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/drf/__init__.py +0 -0
  221. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/drf/permissions.py +0 -0
  222. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/__init__.py +0 -0
  223. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/apps.py +0 -0
  224. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/checks.py +0 -0
  225. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/default.py +0 -0
  226. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/factories.py +0 -0
  227. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/filters.py +0 -0
  228. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/filterwrapper.py +0 -0
  229. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/primitive_serializers.py +0 -0
  230. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/queryset_filters.py +0 -0
  231. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/serializers.py +0 -0
  232. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/swappable/__init__.py +0 -0
  233. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/swappable/serializers.py +0 -0
  234. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/filter/validators.py +0 -0
  235. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/__init__.py +0 -0
  236. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/appconfig.py +0 -0
  237. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/apps.py +0 -0
  238. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/auth/__init__.py +0 -0
  239. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/auth/views.py +0 -0
  240. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/checks.py +0 -0
  241. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/constants.py +0 -0
  242. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/dateformat/__init__.py +0 -0
  243. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/dateformat/constants.py +0 -0
  244. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/defaults.py +0 -0
  245. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/__init__.py +0 -0
  246. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/forms.py +0 -0
  247. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/urls.py +0 -0
  248. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/destination/views.py +0 -0
  249. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/forms.py +0 -0
  250. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/htmx_urls.py +0 -0
  251. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/__init__.py +0 -0
  252. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/columns.py +0 -0
  253. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/constants.py +0 -0
  254. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/filter.py +0 -0
  255. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/__init__.py +0 -0
  256. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/base.py +0 -0
  257. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/incident_actions.py +0 -0
  258. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/forms/incident_filters.py +0 -0
  259. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/urls.py +0 -0
  260. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/utils.py +0 -0
  261. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/incident/views.py +0 -0
  262. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/management/__init__.py +0 -0
  263. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/management/commands/__init__.py +0 -0
  264. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
  265. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/middleware.py +0 -0
  266. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/migrations/0001_initial.py +0 -0
  267. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/migrations/__init__.py +0 -0
  268. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/modals.py +0 -0
  269. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/models.py +0 -0
  270. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/notificationprofile/__init__.py +0 -0
  271. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/notificationprofile/urls.py +0 -0
  272. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/notificationprofile/views.py +0 -0
  273. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/request.py +0 -0
  274. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/root_urls.py +0 -0
  275. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/settings.py +0 -0
  276. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/choices-11.1.0.min.js +0 -0
  277. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
  278. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
  279. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/static/logo_white.svg +0 -0
  280. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/README.md +0 -0
  281. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/__init__.py +0 -0
  282. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/config.py +0 -0
  283. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/get_tailwind.py +0 -0
  284. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
  285. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
  286. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
  287. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/25-choices.css +0 -0
  288. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/snippets/30-incident-table.css +0 -0
  289. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/tailwind.config.js +0 -0
  290. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/tailwindtheme/utils.py +0 -0
  291. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/400.html +0 -0
  292. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/401.html +0 -0
  293. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/403.html +0 -0
  294. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/404.html +0 -0
  295. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/410.html +0 -0
  296. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/500.html +0 -0
  297. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/errors/dict/ul.html +0 -0
  298. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/errors/list/ul.html +0 -0
  299. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/field.html +0 -0
  300. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/label.html +0 -0
  301. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
  302. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/checkbox.html +0 -0
  303. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/checkbox_option.html +0 -0
  304. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/classless_attrs.html +0 -0
  305. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/date.html +0 -0
  306. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/datetime.html +0 -0
  307. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/input.html +0 -0
  308. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/radio_option.html +0 -0
  309. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/range.html +0 -0
  310. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/select.html +0 -0
  311. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/django/forms/widgets/time.html +0 -0
  312. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
  313. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
  314. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
  315. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
  316. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/base.html +0 -0
  317. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/components/_page_title.html +0 -0
  318. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/components/incident_list_refresh_info_select.html +0 -0
  319. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
  320. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_delete_form.html +0 -0
  321. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_edit_form.html +0 -0
  322. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
  323. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +0 -0
  324. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +0 -0
  325. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +0 -0
  326. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/input_field.html +0 -0
  327. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/forms/search_select_multiple.html +0 -0
  328. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
  329. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
  330. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
  331. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
  332. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
  333. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
  334. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +0 -0
  335. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
  336. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +0 -0
  337. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
  338. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
  339. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +0 -0
  340. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
  341. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +0 -0
  342. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
  343. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
  344. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table.html +0 -0
  345. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_autorefresh.html +0 -0
  346. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -0
  347. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_link_to_details.html +0 -0
  348. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_footer.html +0 -0
  349. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
  350. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +0 -0
  351. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
  352. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
  353. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
  354. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
  355. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
  356. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_unpaged_incident_table.html +0 -0
  357. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
  358. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +0 -0
  359. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack_icon.html +0 -0
  360. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -0
  361. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_age.html +0 -0
  362. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +0 -0
  363. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +0 -0
  364. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +0 -0
  365. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status_icons.html +0 -0
  366. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -0
  367. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -0
  368. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +0 -0
  369. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_list_select_all_checkbox_header.html +0 -0
  370. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +0 -0
  371. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -0
  372. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source_type.html +0 -0
  373. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +0 -0
  374. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_and_age.html +0 -0
  375. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -0
  376. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +0 -0
  377. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status_icon.html +0 -0
  378. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +0 -0
  379. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +0 -0
  380. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/cells/search_fields/input_search.html +0 -0
  381. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
  382. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
  383. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
  384. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
  385. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +0 -0
  386. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +0 -0
  387. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
  388. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
  389. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
  390. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -0
  391. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
  392. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +0 -0
  393. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
  394. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -0
  395. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
  396. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +0 -0
  397. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_incidents_table_columns_dropdown.html +0 -0
  398. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +0 -0
  399. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +0 -0
  400. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_preference_choice_nopreview.html +0 -0
  401. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_datetime.html +0 -0
  402. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +0 -0
  403. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +0 -0
  404. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
  405. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
  406. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx/user/preference_field_form.html +0 -0
  407. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/htmx_base.html +0 -0
  408. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/messages/_notification_message.html +0 -0
  409. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/messages/_notification_messages.html +0 -0
  410. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
  411. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/tailwind/styles.css +0 -0
  412. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
  413. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
  414. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templatetags/__init__.py +0 -0
  415. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/templatetags/argus_htmx.py +0 -0
  416. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/themes/__init__.py +0 -0
  417. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/themes/utils.py +0 -0
  418. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/timeslot/__init__.py +0 -0
  419. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/timeslot/urls.py +0 -0
  420. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/timeslot/views.py +0 -0
  421. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/urls.py +0 -0
  422. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/__init__.py +0 -0
  423. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/factories.py +0 -0
  424. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/__init__.py +0 -0
  425. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/models.py +0 -0
  426. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/preferences/utils.py +0 -0
  427. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/user/urls.py +0 -0
  428. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/utils.py +0 -0
  429. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/views.py +0 -0
  430. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/htmx/widgets.py +0 -0
  431. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/__init__.py +0 -0
  432. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/admin.py +0 -0
  433. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/apps.py +0 -0
  434. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/constants.py +0 -0
  435. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/fields.py +0 -0
  436. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/forms.py +0 -0
  437. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0001_initial.py +0 -0
  438. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
  439. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
  440. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0003_incident_level.py +0 -0
  441. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
  442. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
  443. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
  444. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
  445. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
  446. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/0009_use_bigautofield_on_quickly_growing_tables.py +0 -0
  447. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/migrations/__init__.py +0 -0
  448. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/serializers.py +0 -0
  449. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
  450. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
  451. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
  452. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/templates/incident/ticket/default_ticket_body.html +0 -0
  453. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/__init__.py +0 -0
  454. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/base.py +0 -0
  455. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/dummy.py +0 -0
  456. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/ticket/utils.py +0 -0
  457. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/urls.py +0 -0
  458. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/validators.py +0 -0
  459. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/views.py +0 -0
  460. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/incident/widgets.py +0 -0
  461. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/__init__.py +0 -0
  462. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/admin.py +0 -0
  463. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/apps.py +0 -0
  464. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/checks.py +0 -0
  465. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/factories.py +0 -0
  466. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/__init__.py +0 -0
  467. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/base.py +0 -0
  468. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/email.py +0 -0
  469. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/media/sms_as_email.py +0 -0
  470. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
  471. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
  472. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
  473. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
  474. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/0018_remove_closed_and_unacked_from_filterblob.py +0 -0
  475. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/migrations/__init__.py +0 -0
  476. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/models.py +0 -0
  477. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/serializers.py +0 -0
  478. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/signals.py +0 -0
  479. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
  480. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
  481. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
  482. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/urls.py +0 -0
  483. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/notificationprofile/views.py +0 -0
  484. {argus_server-2.4.0/src/argus/site → argus_server-2.5.0/src/argus/plannedmaintenance}/__init__.py +0 -0
  485. {argus_server-2.4.0/src/argus/util → argus_server-2.5.0/src/argus/plannedmaintenance/migrations}/__init__.py +0 -0
  486. {argus_server-2.4.0/tests → argus_server-2.5.0/src/argus/site}/__init__.py +0 -0
  487. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/api_v2_urls.py +0 -0
  488. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/logging.py +0 -0
  489. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/serializers.py +0 -0
  490. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/__init__.py +0 -0
  491. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/_serializers.py +0 -0
  492. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/backend.py +0 -0
  493. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/dev.py +0 -0
  494. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/dockerdev.py +0 -0
  495. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/prod.py +0 -0
  496. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/settings/test_CI.py +0 -0
  497. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/urls.py +0 -0
  498. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/utils.py +0 -0
  499. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/views.py +0 -0
  500. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/site/wsgi.py +0 -0
  501. {argus_server-2.4.0/tests/auth/management_commands → argus_server-2.5.0/src/argus/util}/__init__.py +0 -0
  502. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/admin_utils.py +0 -0
  503. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/datetime_utils.py +0 -0
  504. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/testing.py +0 -0
  505. {argus_server-2.4.0 → argus_server-2.5.0}/src/argus/util/utils.py +0 -0
  506. {argus_server-2.4.0/tests/dev → argus_server-2.5.0/tests}/__init__.py +0 -0
  507. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/__init__.py +0 -0
  508. {argus_server-2.4.0/tests/filter → argus_server-2.5.0/tests/auth/management_commands}/__init__.py +0 -0
  509. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/management_commands/test_changeuser.py +0 -0
  510. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/management_commands/test_createuser.py +0 -0
  511. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/models.py +0 -0
  512. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_auth.py +0 -0
  513. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_models.py +0 -0
  514. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_utils.py +0 -0
  515. {argus_server-2.4.0 → argus_server-2.5.0}/tests/auth/test_views.py +0 -0
  516. {argus_server-2.4.0/tests/htmx → argus_server-2.5.0/tests/dev}/__init__.py +0 -0
  517. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_bulk_incidents.py +0 -0
  518. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_check_token_expiry.py +0 -0
  519. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_close_incident.py +0 -0
  520. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_create_fake_incident.py +0 -0
  521. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_gen_secret_key.py +0 -0
  522. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_initial_setup.py +0 -0
  523. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_list_filters.py +0 -0
  524. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_toggle_profile_activation.py +0 -0
  525. {argus_server-2.4.0 → argus_server-2.5.0}/tests/dev/test_utils.py +0 -0
  526. {argus_server-2.4.0/tests/htmx/incident → argus_server-2.5.0/tests/filter}/__init__.py +0 -0
  527. {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/dummyplugin.py +0 -0
  528. {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/test_filterplugin.py +0 -0
  529. {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/test_filterwrapper.py +0 -0
  530. {argus_server-2.4.0 → argus_server-2.5.0}/tests/filter/test_queryset_filters.py +0 -0
  531. {argus_server-2.4.0 → argus_server-2.5.0}/tests/helpers.py +0 -0
  532. {argus_server-2.4.0/tests/htmx/notificationprofile → argus_server-2.5.0/tests/htmx}/__init__.py +0 -0
  533. {argus_server-2.4.0/tests/incident/fixtures → argus_server-2.5.0/tests/htmx/incident}/__init__.py +0 -0
  534. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_customization.py +0 -0
  535. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_filter.py +0 -0
  536. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_forms_incident_filters.py +0 -0
  537. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_utils.py +0 -0
  538. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/incident/test_views.py +0 -0
  539. {argus_server-2.4.0/tests/incident/ticket_plugins → argus_server-2.5.0/tests/htmx/notificationprofile}/__init__.py +0 -0
  540. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/notificationprofile/test_forms.py +0 -0
  541. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_incident_columns_rendering.py +0 -0
  542. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_middleware.py +0 -0
  543. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_templatetags.py +0 -0
  544. {argus_server-2.4.0 → argus_server-2.5.0}/tests/htmx/test_utils.py +0 -0
  545. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/__init__.py +0 -0
  546. {argus_server-2.4.0/tests/incident/unit → argus_server-2.5.0/tests/incident/fixtures}/__init__.py +0 -0
  547. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_change_event.py +0 -0
  548. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_create_fake_incident.py +0 -0
  549. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_event.py +0 -0
  550. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_filters.py +0 -0
  551. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_incident.py +0 -0
  552. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_incident_fields.py +0 -0
  553. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_queryset.py +0 -0
  554. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_serializers.py +0 -0
  555. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_source_system.py +0 -0
  556. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_source_system_type.py +0 -0
  557. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/test_views.py +0 -0
  558. {argus_server-2.4.0/tests/notificationprofile/destinations → argus_server-2.5.0/tests/incident/ticket_plugins}/__init__.py +0 -0
  559. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/ticket_plugins/test_base.py +0 -0
  560. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/ticket_plugins/test_dummy.py +0 -0
  561. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/ticket_plugins/test_utils.py +0 -0
  562. {argus_server-2.4.0/tests/notificationprofile/migrations → argus_server-2.5.0/tests/incident/unit}/__init__.py +0 -0
  563. {argus_server-2.4.0 → argus_server-2.5.0}/tests/incident/unit/test_incident_details_url.py +0 -0
  564. {argus_server-2.4.0 → argus_server-2.5.0}/tests/migration_example.py +0 -0
  565. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/__init__.py +0 -0
  566. {argus_server-2.4.0/tests/site → argus_server-2.5.0/tests/notificationprofile/destinations}/__init__.py +0 -0
  567. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/destinations/test_email.py +0 -0
  568. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/destinations/test_sms.py +0 -0
  569. {argus_server-2.4.0/tests/util → argus_server-2.5.0/tests/notificationprofile/migrations}/__init__.py +0 -0
  570. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_github236.py +0 -0
  571. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_media.py +0 -0
  572. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_models.py +0 -0
  573. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_serializers.py +0 -0
  574. {argus_server-2.4.0 → argus_server-2.5.0}/tests/notificationprofile/test_views.py +0 -0
  575. {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_misc.py +0 -0
  576. {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_settings_helpers.py +0 -0
  577. {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_settings_validators.py +0 -0
  578. {argus_server-2.4.0 → argus_server-2.5.0}/tests/site/test_views.py +0 -0
  579. {argus_server-2.4.0 → argus_server-2.5.0}/tests/util/test_utils.py +0 -0
@@ -4,10 +4,50 @@ read by developers.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the changes for the upcoming release can be found in <https://github.com/Uninett/Argus/tree/master/changelog.d/>.
7
+ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the changes for the upcoming release can be found in <https://github.com/Uninett/Argus/tree/main/changelog.d/>.
8
8
 
9
9
  <!-- towncrier release notes start -->
10
10
 
11
+ ## [2.5.0] - 2025-12-04
12
+
13
+ The big new thing this time around is a way to prevent notifications from
14
+ certain incidents by masking them via a planned maintenance filter stored in
15
+ a planned maintenance task. This task works just like a notification profile:
16
+ more filters add precision. The only way to set up a filter right now is via
17
+ the admin. Users with admin-access can click on the admin link, see the section
18
+ "ARGUS_PLANNEDMAINTENANCE".
19
+
20
+ We want some feedback on the feature before we add support
21
+ for setting up planned maintenance tasks via the API and the frontend.
22
+
23
+ Otherwise: work on increasing consistency in the frontend continues, and the
24
+ version number of argus should now always be available.
25
+
26
+ Customizers, please see the NOTES.md, the preferences page has more changes.
27
+
28
+ Remember to migrate if upgrading.
29
+
30
+ ### Added
31
+
32
+ - Add preview for theme and date format preferences
33
+ ([#1557](https://github.com/Uninett/Argus/issues/1557))
34
+ - Add model for planned maintenance tasks
35
+ ([#1586](https://github.com/Uninett/Argus/issues/1586))
36
+ - Added functionality to add/edit planned maintenance tasks to Django admin
37
+ ([#1587](https://github.com/Uninett/Argus/issues/1587))
38
+ - Filter out events covered by ongoing planned maintenance tasks from being
39
+ sent ([#1588](https://github.com/Uninett/Argus/issues/1588))
40
+ - Added Argus version number to user menu dropdown and login page
41
+ ([#1650](https://github.com/Uninett/Argus/issues/1650))
42
+
43
+ ### Changed
44
+
45
+ - Split user preferences into multiple sections
46
+ ([#1557](https://github.com/Uninett/Argus/issues/1557))
47
+ - Increase accessibility of cards by using borders instead of shadow
48
+ ([#1641](https://github.com/Uninett/Argus/issues/1641))
49
+
50
+
11
51
  ## [2.4.0] - 2025-11-28
12
52
 
13
53
  The most important feature this release is being able to filter on source
@@ -3,6 +3,21 @@
3
3
  This file documents changes to Argus that are relevant for operations,
4
4
  customizers and end-users.
5
5
 
6
+ ## [2.5.0] - 2025-12-04
7
+
8
+ This release adds a new app, "argus.plannedmaintenance", which uses a new
9
+ database table, so remember to migrate.
10
+
11
+ The new table is to store planned maintenance tasks, which are used to exclude
12
+ some notifications from being sent. A notification is only sent *iff* an
13
+ incident and its events are not found by any filter during a currently ongoing
14
+ planned maintenance task.
15
+
16
+ Customizers: We have started work on adding previews to all the preferences;
17
+ first out is previews of themes and date formats. If you have added your own
18
+ preferences or otherwise customized the preferences page you need to take extra
19
+ care when upgrading.
20
+
6
21
  ## [2.4.0] - 2025-11-28
7
22
 
8
23
  The most important feature this release is being able to filter on source
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: argus-server
3
- Version: 2.4.0
3
+ Version: 2.5.0
4
4
  Summary: Argus is an alert aggregator for monitoring systems
5
5
  Project-URL: Homepage, https://github.com/Uninett/Argus
6
6
  Author-email: Uninett Opensource <opensource@uninett.no>
@@ -59,7 +59,7 @@ Description-Content-Type: text/markdown
59
59
 
60
60
  # Argus
61
61
  [![test badge](https://github.com/Uninett/Argus/actions/workflows/python.yml/badge.svg)](https://github.com/Uninett/Argus/actions)
62
- [![codecov badge](https://codecov.io/gh/Uninett/Argus/branch/master/graph/badge.svg)](https://codecov.io/gh/Uninett/Argus)
62
+ [![codecov badge](https://codecov.io/gh/Uninett/Argus/branch/main/graph/badge.svg)](https://codecov.io/gh/Uninett/Argus)
63
63
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
64
64
  [![djLint](https://img.shields.io/badge/html%20style-djlint-blue.svg)](https://www.djlint.com)
65
65
  [![docs badge](https://readthedocs.org/projects/argus-server/badge/?version=latest&style=flat)](http://argus-server.rtfd.io/en/latest/)
@@ -320,12 +320,12 @@ Refer to the [tox.ini](tox.ini) file for further options.
320
320
 
321
321
  Do not ever remove these
322
322
 
323
- * master
323
+ * main
324
324
  * argus-demo
325
325
  * stable/SOMETHING
326
326
 
327
327
  The last branch-type is for backporting bugfixes and similar to older releases,
328
- bypassing master if necessary.
328
+ bypassing main if necessary.
329
329
 
330
330
 
331
331
  ## How to do maintenance
@@ -1,6 +1,6 @@
1
1
  # Argus
2
2
  [![test badge](https://github.com/Uninett/Argus/actions/workflows/python.yml/badge.svg)](https://github.com/Uninett/Argus/actions)
3
- [![codecov badge](https://codecov.io/gh/Uninett/Argus/branch/master/graph/badge.svg)](https://codecov.io/gh/Uninett/Argus)
3
+ [![codecov badge](https://codecov.io/gh/Uninett/Argus/branch/main/graph/badge.svg)](https://codecov.io/gh/Uninett/Argus)
4
4
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
5
5
  [![djLint](https://img.shields.io/badge/html%20style-djlint-blue.svg)](https://www.djlint.com)
6
6
  [![docs badge](https://readthedocs.org/projects/argus-server/badge/?version=latest&style=flat)](http://argus-server.rtfd.io/en/latest/)
@@ -261,12 +261,12 @@ Refer to the [tox.ini](tox.ini) file for further options.
261
261
 
262
262
  Do not ever remove these
263
263
 
264
- * master
264
+ * main
265
265
  * argus-demo
266
266
  * stable/SOMETHING
267
267
 
268
268
  The last branch-type is for backporting bugfixes and similar to older releases,
269
- bypassing master if necessary.
269
+ bypassing main if necessary.
270
270
 
271
271
 
272
272
  ## How to do maintenance
@@ -2,10 +2,10 @@ coverage:
2
2
  status:
3
3
  project:
4
4
  default:
5
- threshold: 90%
5
+ threshold: 1%
6
6
  patch:
7
7
  default:
8
- threshold: 90%
8
+ threshold: 1%
9
9
 
10
10
  ignore:
11
11
  - "manage.py"
@@ -67,6 +67,7 @@ server, such as:
67
67
  * Administration of Argus user accounts
68
68
  * Creating API authentication tokens for users
69
69
  * Defining new source systems to collect incidents from
70
+ * Creating and updating planned maintenance tasks
70
71
 
71
72
  Pick and choose
72
73
  ---------------
@@ -20,7 +20,7 @@ Test by making a .dot-file
20
20
 
21
21
  To test if everything is installed correctly, run::
22
22
 
23
- python manage.py graph_models argus_auth argus_incident argus_notificationprofile \
23
+ python manage.py graph_models argus_auth argus_incident argus_notificationprofile argus_plannedmaintenance \
24
24
  --group-models -X Permission,AbstractUser,AbstractBaseUser,PermissionsMixin
25
25
 
26
26
  This will dump a `.dot-file <https://graphviz.org/doc/info/lang.html>`_, the
@@ -42,7 +42,7 @@ We need to have one more dependency installed: one of ``pygraphviz`` or
42
42
 
43
43
  To generate the final PNG in the correct location, run::
44
44
 
45
- python manage.py graph_models argus_auth argus_incident argus_notificationprofile \
45
+ python manage.py graph_models argus_auth argus_incident argus_notificationprofile argus_plannedmaintenance \
46
46
  --group-models -X Permission,AbstractUser,AbstractBaseUser,PermissionsMixin \
47
47
  -o docs/reference/img/ER_model.png
48
48
 
@@ -52,7 +52,7 @@ Use ``graphviz`` directly on a .dot-file
52
52
  1. Make sure you have graphviz installed, how is OS/distro dependent
53
53
  2. Generate the dot-file with::
54
54
 
55
- python manage.py graph_models argus_auth argus_incident argus_notificationprofile \
55
+ python manage.py graph_models argus_auth argus_incident argus_notificationprofile argus_plannedmaintenance \
56
56
  --group-models -X Permission,AbstractUser,AbstractBaseUser,PermissionsMixin \
57
57
  -o ER_model.dot
58
58
  3. Generate the PNG with ``dot``::
@@ -43,11 +43,11 @@ not needed to do this yet.
43
43
  Checklist
44
44
  ---------
45
45
 
46
- #. Ensure you're on the correct branch to be released. Either ``master`` or
46
+ #. Ensure you're on the correct branch to be released. Either ``main`` or
47
47
  newest stable, which has a name of the form ``stable/1.5.x``. Release from
48
48
  the stable branch only under exceptional circumstances. For instance:
49
49
  there's a critical bugfix for production and there's a lot of new stuff on
50
- master that is not ready to go.
50
+ main that is not ready to go.
51
51
 
52
52
  #. Check that there are no files that have not been commited:
53
53
 
@@ -55,7 +55,7 @@ Prep the ORIGIN repo
55
55
 
56
56
  git fetch TARGET
57
57
 
58
- 9. Merge ORIGIN-clone's "main" into feceiving's "master"::
58
+ 9. Merge ORIGIN-clone's "main" into receiving's "master"::
59
59
 
60
60
  git merge --allow-unrelated-histories TARGET/master
61
61
 
@@ -25,6 +25,7 @@ INSTALLED_APPS = [
25
25
  "argus.filter",
26
26
  "argus.notificationprofile",
27
27
  "argus.dev",
28
+ "argus.plannedmaintenance",
28
29
  ]
29
30
 
30
31
  MEDIA_PLUGINS = []
@@ -4,7 +4,7 @@ Writing your own notification plugin
4
4
  ====================================
5
5
 
6
6
  When writing a new notification plugin the plugins for
7
- `SMS-as-Email <https://github.com/Uninett/Argus/blob/master/src/argus/notificationprofile/media/sms_as_email.py>`_
7
+ `SMS-as-Email <https://github.com/Uninett/Argus/blob/main/src/argus/notificationprofile/media/sms_as_email.py>`_
8
8
  and
9
9
  `Teams <https://github.com/Uninett/argus_notification_msteams/blob/main/src/argus_notification_msteams.py>`_
10
10
  can be used as guides.
@@ -89,6 +89,18 @@ Handling notifications
89
89
  Holds a ``DestinationConfig``'s type. The ``installed``-field is updated
90
90
  on startup to keep track of which ``notification plugin``\s are installed.
91
91
 
92
+ Handling maintenance work
93
+ =========================
94
+
95
+ .. glossary::
96
+
97
+ PlannedMaintenanceTask
98
+ Holds who created the task and when (not editable), the start and end time
99
+ of such a task, and a description of what this maintenance work entails and/or
100
+ why it is happening.
101
+
102
+ It also holds a collection of ``Filter``\s that describe what kind of events are
103
+ covered by that planned maintenance.
92
104
 
93
105
  ER diagram
94
106
  ==========
@@ -0,0 +1,43 @@
1
+ ===================
2
+ Planned maintenance
3
+ ===================
4
+
5
+ To interact with planned maintenance tasks visit the admin interface at:
6
+ ``/admin/argus_plannedmaintenance/plannedmaintenancetask/``.
7
+
8
+ A planned maintenance task consists of a start time and an end time (where the latter
9
+ is by default infinity). Those define the period during which planned work is happening
10
+ and when notifications for events, for example for affected devices, should not be
11
+ sent.
12
+
13
+ Filters are used to define exactly which kind of events notifications should be
14
+ suppressed for. As it is for notification profiles, if multiple filters are connected
15
+ to one planned maintenance task, then that tasks will only lead to a notification being
16
+ suppressed if all of the filters apply to that event.
17
+
18
+ .. warning:: When notifications are suppressed during a planned maintenance task and
19
+ that task ends, while the incident is still open, you will not receive a
20
+ notification.
21
+ It is your responsibility to check that everything is resolved when a planned
22
+ maintenance task is finished!
23
+
24
+ The planned maintenance task list
25
+ =================================
26
+
27
+ In the admin you can view a list of planned maintenance tasks, filter them and search
28
+ for specific ones.
29
+
30
+ You can also select multiple planned maintenance tasks and delete them or mark them as
31
+ finished. Marking a task as finished will set an open task's end time to the current
32
+ time. If you mark a task as finished that has not begun yet, then that task will be
33
+ deleted.
34
+
35
+ Adding/editing a planned maintenance task
36
+ =========================================
37
+
38
+ If you want to add a planned maintenance task click the
39
+ ``Add planned maintenance task`` button. If you want to see details for a specific
40
+ task or edit it, click the username in the column ``created by``.
41
+
42
+ You can mark an existing task as finished and see its history by clicking on the
43
+ buttons in the top right corner of the edit page.
@@ -16,7 +16,6 @@ class BaseUserFactory(factory.django.DjangoModelFactory):
16
16
 
17
17
  is_staff = False
18
18
  is_superuser = False
19
- password = factory.PostGenerationMethodCall("set_password", "defaultpassword")
20
19
 
21
20
 
22
21
  class PersonUserFactory(BaseUserFactory):
@@ -30,6 +29,7 @@ class PersonUserFactory(BaseUserFactory):
30
29
  lambda o: "%s.%s@%s" % (o.first_name.lower(), o.last_name.lower(), factory.Faker("safe_domain_name"))
31
30
  )
32
31
  username = email
32
+ password = factory.django.Password("very SECRET P455w0rD")
33
33
 
34
34
 
35
35
  class SourceUserFactory(BaseUserFactory):
@@ -40,6 +40,7 @@ class SourceUserFactory(BaseUserFactory):
40
40
  username = factory.Sequence(lambda n: "source_%d" % n)
41
41
  is_staff = False
42
42
  is_superuser = False
43
+ password = factory.django.Password(None)
43
44
 
44
45
 
45
46
  class AdminUserFactory(PersonUserFactory):
@@ -8,6 +8,7 @@ from django.contrib.auth import get_user_model
8
8
  from django.core.exceptions import ValidationError
9
9
  from django.core.management import CommandError, call_command
10
10
  from django.core.management.base import BaseCommand
11
+ from django.db.utils import IntegrityError
11
12
 
12
13
  from argus.dev.utils import get_json_from_file
13
14
  from argus.incident.constants import Level
@@ -125,5 +126,5 @@ class Command(BaseCommand):
125
126
 
126
127
  try:
127
128
  create_fake_incident(**incident)
128
- except (ValueError, ValidationError) as e:
129
+ except (IntegrityError, ValueError, ValidationError) as e:
129
130
  self.stderr.write(self.style.ERROR(str(e)))
@@ -1,6 +1,9 @@
1
1
  from django.core.management.base import BaseCommand
2
+ from django.db import transaction
2
3
 
4
+ from argus.auth.factories import SourceUserFactory
3
5
  from argus.incident.factories import SourceSystemFactory, SourceSystemTypeFactory
6
+ from argus.incident.models import SourceSystem
4
7
 
5
8
 
6
9
  class Command(BaseCommand):
@@ -15,5 +18,9 @@ class Command(BaseCommand):
15
18
  def handle(self, *args, **options):
16
19
  source = options["source"]
17
20
  source_type = options.get("source_type") or "argus"
18
- sst = SourceSystemTypeFactory(name=source_type.lower())
19
- SourceSystemFactory(name=source, type=sst)
21
+ if SourceSystem.objects.filter(name=source, type__name=source_type).exists():
22
+ return
23
+ with transaction.atomic():
24
+ user = SourceUserFactory(username=source)
25
+ sst = SourceSystemTypeFactory(name=source_type.lower())
26
+ SourceSystemFactory(user=user, name=source, type=sst)
@@ -10,6 +10,7 @@ See django settings for ``TEMPLATES``.
10
10
  from django.conf import settings
11
11
 
12
12
  from . import defaults
13
+ from argus.site.views import get_version
13
14
 
14
15
 
15
16
  def static_paths(request):
@@ -23,3 +24,7 @@ def static_paths(request):
23
24
 
24
25
  def banner_message(request):
25
26
  return {"banner_message": getattr(settings, "BANNER_MESSAGE", None)}
27
+
28
+
29
+ def metadata(request):
30
+ return {"version": get_version()}