argus-server 2.5.0__tar.gz → 2.7.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 (655) hide show
  1. {argus_server-2.5.0 → argus_server-2.7.0}/.pre-commit-config.yaml +3 -1
  2. {argus_server-2.5.0 → argus_server-2.7.0}/CHANGELOG.md +122 -0
  3. {argus_server-2.5.0 → argus_server-2.7.0}/CONTRIBUTING.rst +18 -0
  4. {argus_server-2.5.0 → argus_server-2.7.0}/NOTES.md +59 -0
  5. {argus_server-2.5.0 → argus_server-2.7.0}/PKG-INFO +3 -2
  6. {argus_server-2.5.0 → argus_server-2.7.0}/docs/customization/htmx-frontend.rst +1 -1
  7. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/customizing-filtering.rst +14 -9
  8. argus_server-2.7.0/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +51 -0
  9. argus_server-2.7.0/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +19 -0
  10. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/sonarqube.rst +9 -0
  11. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/management-commands.rst +25 -0
  12. argus_server-2.7.0/docs/img/incidents_filter.png +0 -0
  13. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/htmx-frontend.rst +136 -4
  14. argus_server-2.7.0/docs/reference/img/ER_model.png +0 -0
  15. argus_server-2.7.0/docs/reference/img/columns/ack.png +0 -0
  16. argus_server-2.7.0/docs/reference/img/columns/ack_icon.png +0 -0
  17. argus_server-2.7.0/docs/reference/img/columns/age.png +0 -0
  18. argus_server-2.7.0/docs/reference/img/columns/color_status.png +0 -0
  19. argus_server-2.7.0/docs/reference/img/columns/combined_status.png +0 -0
  20. argus_server-2.7.0/docs/reference/img/columns/combined_status_icons.png +0 -0
  21. argus_server-2.7.0/docs/reference/img/columns/compact_level.png +0 -0
  22. argus_server-2.7.0/docs/reference/img/columns/compact_select_levels.png +0 -0
  23. argus_server-2.7.0/docs/reference/img/columns/description.png +0 -0
  24. argus_server-2.7.0/docs/reference/img/columns/end_time.png +0 -0
  25. argus_server-2.7.0/docs/reference/img/columns/has_ticket_url.png +0 -0
  26. argus_server-2.7.0/docs/reference/img/columns/id.png +0 -0
  27. argus_server-2.7.0/docs/reference/img/columns/level.png +0 -0
  28. argus_server-2.7.0/docs/reference/img/columns/narrow_end_time.png +0 -0
  29. argus_server-2.7.0/docs/reference/img/columns/narrow_start_time.png +0 -0
  30. argus_server-2.7.0/docs/reference/img/columns/row_select.png +0 -0
  31. argus_server-2.7.0/docs/reference/img/columns/search_description.png +0 -0
  32. argus_server-2.7.0/docs/reference/img/columns/search_id.png +0 -0
  33. argus_server-2.7.0/docs/reference/img/columns/search_ticket_url.png +0 -0
  34. argus_server-2.7.0/docs/reference/img/columns/select_levels.png +0 -0
  35. argus_server-2.7.0/docs/reference/img/columns/source.png +0 -0
  36. argus_server-2.7.0/docs/reference/img/columns/start_time.png +0 -0
  37. argus_server-2.7.0/docs/reference/img/columns/start_time_and_age.png +0 -0
  38. argus_server-2.7.0/docs/reference/img/columns/status.png +0 -0
  39. argus_server-2.7.0/docs/reference/img/columns/status_icon.png +0 -0
  40. argus_server-2.7.0/docs/reference/img/columns/tags.png +0 -0
  41. argus_server-2.7.0/docs/reference/img/columns/ticket.png +0 -0
  42. argus_server-2.7.0/docs/reference/img/columns/under_maintenance.png +0 -0
  43. {argus_server-2.5.0 → argus_server-2.7.0}/docs/user-manual.rst +163 -196
  44. argus_server-2.7.0/htmlcov/.gitignore +2 -0
  45. {argus_server-2.5.0 → argus_server-2.7.0}/pyproject.toml +2 -1
  46. argus_server-2.7.0/requirements/django52.txt +1 -0
  47. argus_server-2.7.0/requirements/django60.txt +1 -0
  48. {argus_server-2.5.0 → argus_server-2.7.0}/requirements-django52.txt +3 -3
  49. argus_server-2.7.0/requirements-django60.txt +169 -0
  50. {argus_server-2.5.0 → argus_server-2.7.0}/requirements.txt +3 -3
  51. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/utils.py +0 -3
  52. argus_server-2.7.0/src/argus/dev/management/commands/check_ended_maintenance.py +26 -0
  53. argus_server-2.7.0/src/argus/dev/management/commands/check_started_maintenance.py +26 -0
  54. argus_server-2.7.0/src/argus/filter/checks.py +25 -0
  55. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/default.py +1 -2
  56. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/filterwrapper.py +28 -19
  57. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/queryset_filters.py +27 -2
  58. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/serializers.py +1 -0
  59. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/context_processors.py +2 -0
  60. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/defaults.py +19 -0
  61. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/columns.py +95 -17
  62. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/filter.py +75 -12
  63. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/forms/incident_filters.py +84 -0
  64. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/views.py +37 -11
  65. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/middleware.py +5 -11
  66. argus_server-2.7.0/src/argus/htmx/plannedmaintenance/urls.py +16 -0
  67. argus_server-2.7.0/src/argus/htmx/plannedmaintenance/views.py +184 -0
  68. argus_server-2.7.0/src/argus/htmx/static/flatpickr-4.6.13.min.css +13 -0
  69. argus_server-2.7.0/src/argus/htmx/static/flatpickr-4.6.13.min.js +2 -0
  70. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/static/styles.css +590 -81
  71. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/snippets/30-incident-table.css +4 -0
  72. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/tailwind.config.js +6 -1
  73. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/datetime.html +1 -1
  74. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/base.html +1 -1
  75. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/destination/_delete_form.html +1 -1
  76. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/destination/_edit_form.html +1 -1
  77. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +1 -0
  78. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +1 -0
  79. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +5 -2
  80. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/forms/input_field.html +8 -3
  81. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/forms/search_select_multiple.html +2 -1
  82. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_base_incident_table.html +5 -2
  83. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +1 -1
  84. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +1 -1
  85. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +4 -1
  86. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_footer.html +1 -1
  87. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack_icon.html +4 -2
  88. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_compact_severity_filter.html +55 -0
  89. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_compact_severity_header.html +21 -0
  90. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_end_time.html +4 -0
  91. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_events.html +9 -0
  92. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header_content.html +63 -0
  93. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +5 -0
  94. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_level_compact.html +6 -0
  95. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_maintenance.html +4 -0
  96. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_sort_button.html +20 -0
  97. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_sort_button_element.html +15 -0
  98. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_sortable_column_header.html +5 -0
  99. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status_icon.html +3 -2
  100. argus_server-2.7.0/src/argus/htmx/templates/htmx/incident/cells/_incident_tags.html +11 -0
  101. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/search_fields/input_search.html +13 -3
  102. argus_server-2.7.0/src/argus/htmx/templates/htmx/plannedmaintenance/_cancel_confirm_dialog.html +22 -0
  103. argus_server-2.7.0/src/argus/htmx/templates/htmx/plannedmaintenance/_delete_confirm_dialog.html +25 -0
  104. argus_server-2.7.0/src/argus/htmx/templates/htmx/plannedmaintenance/base.html +13 -0
  105. argus_server-2.7.0/src/argus/htmx/templates/htmx/plannedmaintenance/plannedmaintenance_form.html +183 -0
  106. argus_server-2.7.0/src/argus/htmx/templates/htmx/plannedmaintenance/plannedmaintenance_list.html +93 -0
  107. argus_server-2.7.0/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +40 -0
  108. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +1 -1
  109. argus_server-2.7.0/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +4 -0
  110. argus_server-2.7.0/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +12 -0
  111. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_theme.html +4 -1
  112. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_user_menu.html +3 -0
  113. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/preference_form/_base_form.html +2 -0
  114. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_form.html +6 -3
  115. argus_server-2.7.0/src/argus/htmx/templates/htmx/user/preference_form/_incident_table_preview.html +30 -0
  116. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx_base.html +0 -12
  117. argus_server-2.7.0/src/argus/htmx/templates/messages/_banner.html +31 -0
  118. argus_server-2.7.0/src/argus/htmx/templates/messages/_notification_message.html +29 -0
  119. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/messages/_notification_messages.html +2 -2
  120. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/timeslot/views.py +44 -20
  121. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/urls.py +2 -0
  122. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/user/preferences/forms.py +22 -0
  123. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/user/preferences/models.py +2 -0
  124. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/user/urls.py +1 -0
  125. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/user/views.py +35 -2
  126. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/utils.py +14 -0
  127. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/widgets.py +7 -0
  128. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/apps.py +2 -0
  129. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/signals.py +8 -1
  130. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/validators.py +2 -1
  131. argus_server-2.7.0/src/argus/notificationprofile/filterwrapper.py +47 -0
  132. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/media/__init__.py +7 -5
  133. argus_server-2.7.0/src/argus/notificationprofile/migrations/0002_filter_public.py +18 -0
  134. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/models.py +18 -0
  135. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/views.py +22 -2
  136. argus_server-2.7.0/src/argus/plannedmaintenance/migrations/0002_incidents_connection.py +23 -0
  137. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/plannedmaintenance/models.py +59 -3
  138. argus_server-2.7.0/src/argus/plannedmaintenance/utils.py +111 -0
  139. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/base.py +2 -0
  140. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/test_CI.py +14 -0
  141. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/util/testing.py +4 -1
  142. argus_server-2.7.0/src/argus/version.py +1 -0
  143. argus_server-2.7.0/tests/filter/test_filter_model.py +43 -0
  144. {argus_server-2.5.0 → argus_server-2.7.0}/tests/filter/test_filterwrapper.py +39 -40
  145. argus_server-2.7.0/tests/filter/test_queryset_filters.py +175 -0
  146. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/incident/test_filter.py +73 -0
  147. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/incident/test_forms_incident_filters.py +49 -1
  148. argus_server-2.7.0/tests/htmx/plannedmaintenance/test_views.py +286 -0
  149. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/test_middleware.py +62 -2
  150. argus_server-2.7.0/tests/htmx/timeslot/test_views.py +181 -0
  151. argus_server-2.7.0/tests/htmx/user/test_views.py +34 -0
  152. argus_server-2.7.0/tests/notificationprofile/migrations/__init__.py +0 -0
  153. argus_server-2.7.0/tests/notificationprofile/test_filterwrapper.py +84 -0
  154. argus_server-2.7.0/tests/plannedmaintenance/__init__.py +0 -0
  155. {argus_server-2.5.0 → argus_server-2.7.0}/tests/plannedmaintenance/test_models.py +45 -0
  156. {argus_server-2.5.0 → argus_server-2.7.0}/tests/plannedmaintenance/test_utils.py +46 -0
  157. argus_server-2.7.0/tests/site/__init__.py +0 -0
  158. argus_server-2.7.0/tests/util/__init__.py +0 -0
  159. {argus_server-2.5.0 → argus_server-2.7.0}/tox.ini +18 -2
  160. argus_server-2.5.0/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -21
  161. argus_server-2.5.0/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -16
  162. argus_server-2.5.0/docs/img/incidents_filter.png +0 -0
  163. argus_server-2.5.0/docs/reference/img/ER_model.png +0 -0
  164. argus_server-2.5.0/requirements/django52.txt +0 -1
  165. argus_server-2.5.0/src/argus/filter/checks.py +0 -22
  166. argus_server-2.5.0/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header_content.html +0 -47
  167. argus_server-2.5.0/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +0 -5
  168. argus_server-2.5.0/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -25
  169. argus_server-2.5.0/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -6
  170. argus_server-2.5.0/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +0 -13
  171. argus_server-2.5.0/src/argus/htmx/templates/messages/_notification_message.html +0 -21
  172. argus_server-2.5.0/src/argus/plannedmaintenance/utils.py +0 -52
  173. argus_server-2.5.0/src/argus/version.py +0 -1
  174. argus_server-2.5.0/tests/filter/test_queryset_filters.py +0 -96
  175. {argus_server-2.5.0 → argus_server-2.7.0}/.git-blame-ignore-revs +0 -0
  176. {argus_server-2.5.0 → argus_server-2.7.0}/.gitattributes +0 -0
  177. {argus_server-2.5.0 → argus_server-2.7.0}/.gitignore +0 -0
  178. {argus_server-2.5.0 → argus_server-2.7.0}/.mailmap +0 -0
  179. {argus_server-2.5.0 → argus_server-2.7.0}/.readthedocs.yaml +0 -0
  180. {argus_server-2.5.0 → argus_server-2.7.0}/.sonarcloud.properties +0 -0
  181. {argus_server-2.5.0 → argus_server-2.7.0}/CONTRIBUTORS.md +0 -0
  182. {argus_server-2.5.0 → argus_server-2.7.0}/Dockerfile +0 -0
  183. {argus_server-2.5.0 → argus_server-2.7.0}/LICENSE +0 -0
  184. {argus_server-2.5.0 → argus_server-2.7.0}/MAINTAINING.rst +0 -0
  185. {argus_server-2.5.0 → argus_server-2.7.0}/Makefile +0 -0
  186. {argus_server-2.5.0 → argus_server-2.7.0}/README.md +0 -0
  187. {argus_server-2.5.0 → argus_server-2.7.0}/UPGRADING.md +0 -0
  188. {argus_server-2.5.0 → argus_server-2.7.0}/changelog.d/.gitkeep +0 -0
  189. {argus_server-2.5.0 → argus_server-2.7.0}/cmd.sh-template +0 -0
  190. {argus_server-2.5.0 → argus_server-2.7.0}/codecov.yml +0 -0
  191. {argus_server-2.5.0 → argus_server-2.7.0}/constraints.txt +0 -0
  192. {argus_server-2.5.0 → argus_server-2.7.0}/docker/Dockerfile +0 -0
  193. {argus_server-2.5.0 → argus_server-2.7.0}/docker/README.md +0 -0
  194. {argus_server-2.5.0 → argus_server-2.7.0}/docker/docker-entrypoint.sh +0 -0
  195. {argus_server-2.5.0 → argus_server-2.7.0}/docker/dockersettings.py +0 -0
  196. {argus_server-2.5.0 → argus_server-2.7.0}/docker-compose.yml +0 -0
  197. {argus_server-2.5.0 → argus_server-2.7.0}/docs/Makefile +0 -0
  198. {argus_server-2.5.0 → argus_server-2.7.0}/docs/_exts/djangodocs.py +0 -0
  199. {argus_server-2.5.0 → argus_server-2.7.0}/docs/_static/.gitkeep +0 -0
  200. {argus_server-2.5.0 → argus_server-2.7.0}/docs/_templates/.gitkeep +0 -0
  201. {argus_server-2.5.0 → argus_server-2.7.0}/docs/about-argus.rst +0 -0
  202. {argus_server-2.5.0 → argus_server-2.7.0}/docs/conf.py +0 -0
  203. {argus_server-2.5.0 → argus_server-2.7.0}/docs/customization.rst +0 -0
  204. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/add-more-preferences.rst +0 -0
  205. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/change-settings.rst +0 -0
  206. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/changelog-entry.rst +0 -0
  207. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/commit-messages.rst +0 -0
  208. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/federated-logins.rst +0 -0
  209. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/howtos-for-git.rst +0 -0
  210. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/howtos-for-github.rst +0 -0
  211. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
  212. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
  213. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
  214. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
  215. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/htmx-frontend/override_templates.rst +0 -0
  216. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/htmx-frontend.rst +0 -0
  217. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/notification-system-testing.rst +0 -0
  218. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
  219. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/regenerate-the-ER-diagram.rst +0 -0
  220. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/release-checklist.rst +0 -0
  221. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
  222. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/trigger-test-error-pages.rst +0 -0
  223. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/update-contributors.rst +0 -0
  224. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos/vendor-a-repo.rst +0 -0
  225. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/howtos.rst +0 -0
  226. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/makefile-rules.rst +0 -0
  227. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/notes.rst +0 -0
  228. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/styleguide.rst +0 -0
  229. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development/troubleshooting.rst +0 -0
  230. {argus_server-2.5.0 → argus_server-2.7.0}/docs/development.rst +0 -0
  231. {argus_server-2.5.0 → argus_server-2.7.0}/docs/django_settings.py +0 -0
  232. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/default_timeslot.png +0 -0
  233. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/destinations_view.png +0 -0
  234. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/example_timeslot.png +0 -0
  235. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/filter_selector.png +0 -0
  236. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/incident_details_view.png +0 -0
  237. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/incidents_page.png +0 -0
  238. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/new_notification_profile.png +0 -0
  239. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/notification_profiles.png +0 -0
  240. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/synced_destination_delete_error.png +0 -0
  241. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/timeslots_view.png +0 -0
  242. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/unsaved_recurrence.png +0 -0
  243. {argus_server-2.5.0 → argus_server-2.7.0}/docs/img/user_menu.png +0 -0
  244. {argus_server-2.5.0 → argus_server-2.7.0}/docs/index.rst +0 -0
  245. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/_note.rst +0 -0
  246. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/glue-services/index.rst +0 -0
  247. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
  248. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/index.rst +0 -0
  249. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/notifications/email-plugin.rst +0 -0
  250. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/notifications/index.rst +0 -0
  251. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/notifications/sms-plugin.rst +0 -0
  252. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/notifications/writing-notification-plugins.rst +0 -0
  253. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/ticket-systems/index.rst +0 -0
  254. {argus_server-2.5.0 → argus_server-2.7.0}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
  255. {argus_server-2.5.0 → argus_server-2.7.0}/docs/make.bat +0 -0
  256. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/admin.rst +0 -0
  257. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/api/v2.rst +0 -0
  258. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/api.rst +0 -0
  259. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/authentication.rst +0 -0
  260. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/glossary.rst +0 -0
  261. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/models.rst +0 -0
  262. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/planned-maintenance.rst +0 -0
  263. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference/site-specific-settings.rst +0 -0
  264. {argus_server-2.5.0 → argus_server-2.7.0}/docs/reference.rst +0 -0
  265. {argus_server-2.5.0 → argus_server-2.7.0}/requirements/dev.txt +0 -0
  266. {argus_server-2.5.0 → argus_server-2.7.0}/requirements/please-pip-sync.txt +0 -0
  267. {argus_server-2.5.0 → argus_server-2.7.0}/requirements/test.txt +0 -0
  268. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/__init__.py +0 -0
  269. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/__init__.py +0 -0
  270. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/admin.py +0 -0
  271. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/apps.py +0 -0
  272. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/authentication.py +0 -0
  273. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/context_processors.py +0 -0
  274. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/drftoken/__init__.py +0 -0
  275. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/drftoken/serializers.py +0 -0
  276. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/drftoken/urls.py +0 -0
  277. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/drftoken/views.py +0 -0
  278. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/factories.py +0 -0
  279. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/knox/__init__.py +0 -0
  280. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/knox/serializers.py +0 -0
  281. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/knox/urls.py +0 -0
  282. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/knox/views.py +0 -0
  283. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/management/__init__.py +0 -0
  284. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/management/commands/__init__.py +0 -0
  285. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/management/commands/changeuser.py +0 -0
  286. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/management/commands/createuser.py +0 -0
  287. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
  288. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
  289. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/management/commands/setpassword.py +0 -0
  290. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/migrations/0001_initial.py +0 -0
  291. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
  292. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
  293. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
  294. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
  295. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/migrations/__init__.py +0 -0
  296. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/models.py +0 -0
  297. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/serializers.py +0 -0
  298. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/urls.py +0 -0
  299. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/auth/views.py +0 -0
  300. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/base/__init__.py +0 -0
  301. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/base/apps.py +0 -0
  302. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/base/static/favicon.svg +0 -0
  303. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/base/templates/base.html +0 -0
  304. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/base/templates/index.html +0 -0
  305. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/compat.py +0 -0
  306. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/__init__.py +0 -0
  307. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/apps.py +0 -0
  308. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/__init__.py +0 -0
  309. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/__init__.py +0 -0
  310. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
  311. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
  312. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/close_incident.py +0 -0
  313. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/create_fake_incident.py +0 -0
  314. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/create_source.py +0 -0
  315. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
  316. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/initial_setup.py +0 -0
  317. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/list_filters.py +0 -0
  318. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/stresstest.py +0 -0
  319. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
  320. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/dev/utils.py +0 -0
  321. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/drf/__init__.py +0 -0
  322. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/drf/permissions.py +0 -0
  323. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/__init__.py +0 -0
  324. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/apps.py +0 -0
  325. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/factories.py +0 -0
  326. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/filters.py +0 -0
  327. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/primitive_serializers.py +0 -0
  328. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/swappable/__init__.py +0 -0
  329. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/swappable/serializers.py +0 -0
  330. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/filter/validators.py +0 -0
  331. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/__init__.py +0 -0
  332. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/appconfig.py +0 -0
  333. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/apps.py +0 -0
  334. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/auth/__init__.py +0 -0
  335. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/auth/views.py +0 -0
  336. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/checks.py +0 -0
  337. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/constants.py +0 -0
  338. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/dateformat/__init__.py +0 -0
  339. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/dateformat/constants.py +0 -0
  340. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/destination/__init__.py +0 -0
  341. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/destination/forms.py +0 -0
  342. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/destination/urls.py +0 -0
  343. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/destination/views.py +0 -0
  344. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/forms.py +0 -0
  345. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/htmx_urls.py +0 -0
  346. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/__init__.py +0 -0
  347. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/constants.py +0 -0
  348. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/forms/__init__.py +0 -0
  349. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/forms/base.py +0 -0
  350. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/forms/incident_actions.py +0 -0
  351. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/urls.py +0 -0
  352. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/incident/utils.py +0 -0
  353. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/management/__init__.py +0 -0
  354. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/management/commands/__init__.py +0 -0
  355. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
  356. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/migrations/0001_initial.py +0 -0
  357. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/migrations/__init__.py +0 -0
  358. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/modals.py +0 -0
  359. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/models.py +0 -0
  360. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/notificationprofile/__init__.py +0 -0
  361. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/notificationprofile/urls.py +0 -0
  362. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/notificationprofile/views.py +0 -0
  363. {argus_server-2.5.0/src/argus/htmx/tailwindtheme → argus_server-2.7.0/src/argus/htmx/plannedmaintenance}/__init__.py +0 -0
  364. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/request.py +0 -0
  365. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/root_urls.py +0 -0
  366. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/settings.py +0 -0
  367. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/static/choices-11.1.0.min.js +0 -0
  368. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
  369. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
  370. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/static/logo_white.svg +0 -0
  371. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/README.md +0 -0
  372. {argus_server-2.5.0/src/argus/htmx/templatetags → argus_server-2.7.0/src/argus/htmx/tailwindtheme}/__init__.py +0 -0
  373. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/config.py +0 -0
  374. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/get_tailwind.py +0 -0
  375. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
  376. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
  377. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
  378. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/snippets/25-choices.css +0 -0
  379. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/snippets/35-cards.css +0 -0
  380. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/styles.css +0 -0
  381. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/tailwindtheme/utils.py +0 -0
  382. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/400.html +0 -0
  383. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/401.html +0 -0
  384. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/403.html +0 -0
  385. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/404.html +0 -0
  386. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/410.html +0 -0
  387. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/500.html +0 -0
  388. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/errors/dict/ul.html +0 -0
  389. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/errors/list/ul.html +0 -0
  390. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/field.html +0 -0
  391. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/label.html +0 -0
  392. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
  393. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/checkbox.html +0 -0
  394. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/checkbox_option.html +0 -0
  395. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/classless_attrs.html +0 -0
  396. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/date.html +0 -0
  397. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/input.html +0 -0
  398. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/radio_option.html +0 -0
  399. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/range.html +0 -0
  400. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/select.html +0 -0
  401. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/django/forms/widgets/time.html +0 -0
  402. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
  403. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
  404. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
  405. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
  406. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/components/_page_title.html +0 -0
  407. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/components/incident_list_refresh_info_select.html +0 -0
  408. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +0 -0
  409. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
  410. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/destination/_create_form.html +0 -0
  411. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
  412. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/destination/destination_list.html +0 -0
  413. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
  414. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
  415. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
  416. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
  417. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
  418. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
  419. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
  420. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
  421. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
  422. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
  423. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +0 -0
  424. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
  425. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
  426. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table.html +0 -0
  427. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_autorefresh.html +0 -0
  428. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -0
  429. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_link_to_details.html +0 -0
  430. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
  431. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +0 -0
  432. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
  433. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
  434. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
  435. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
  436. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
  437. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_unpaged_incident_table.html +0 -0
  438. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
  439. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +0 -0
  440. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -0
  441. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_age.html +0 -0
  442. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +0 -0
  443. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +0 -0
  444. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +0 -0
  445. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status_icons.html +0 -0
  446. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -0
  447. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -0
  448. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_list_select_all_checkbox_header.html +0 -0
  449. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +0 -0
  450. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -0
  451. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source_type.html +0 -0
  452. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +0 -0
  453. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_and_age.html +0 -0
  454. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -0
  455. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +0 -0
  456. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +0 -0
  457. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +0 -0
  458. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
  459. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/incident_detail.html +0 -0
  460. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
  461. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
  462. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
  463. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +0 -0
  464. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +0 -0
  465. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/notificationprofile/base.html +0 -0
  466. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
  467. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +0 -0
  468. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +0 -0
  469. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/styleguide.html +0 -0
  470. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
  471. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
  472. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/timeslot/base.html +0 -0
  473. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
  474. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
  475. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
  476. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +0 -0
  477. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_incidents_table_columns_dropdown.html +0 -0
  478. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +0 -0
  479. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +0 -0
  480. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_preference_choice_nopreview.html +0 -0
  481. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_preference_choice_preview_datetime.html +0 -0
  482. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +0 -0
  483. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +0 -0
  484. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
  485. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
  486. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/preference_field_form.html +0 -0
  487. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/preference_form/_preference_form_script.html +0 -0
  488. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/preference_form/_theme_and_format_form.html +0 -0
  489. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/preferences_list.html +0 -0
  490. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/htmx/user/radio_option.html +0 -0
  491. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
  492. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/registration/login.html +0 -0
  493. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/tailwind/styles.css +0 -0
  494. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
  495. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
  496. {argus_server-2.5.0/src/argus/htmx/themes → argus_server-2.7.0/src/argus/htmx/templatetags}/__init__.py +0 -0
  497. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/templatetags/argus_htmx.py +0 -0
  498. {argus_server-2.5.0/src/argus/htmx/timeslot → argus_server-2.7.0/src/argus/htmx/themes}/__init__.py +0 -0
  499. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/themes/utils.py +0 -0
  500. {argus_server-2.5.0/src/argus/htmx/user/preferences → argus_server-2.7.0/src/argus/htmx/timeslot}/__init__.py +0 -0
  501. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/timeslot/urls.py +0 -0
  502. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/user/__init__.py +0 -0
  503. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/user/factories.py +0 -0
  504. {argus_server-2.5.0/src/argus/incident/migrations → argus_server-2.7.0/src/argus/htmx/user/preferences}/__init__.py +0 -0
  505. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/user/preferences/utils.py +0 -0
  506. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/htmx/views.py +0 -0
  507. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/__init__.py +0 -0
  508. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/admin.py +0 -0
  509. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/constants.py +0 -0
  510. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/factories.py +0 -0
  511. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/fields.py +0 -0
  512. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/forms.py +0 -0
  513. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0001_initial.py +0 -0
  514. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
  515. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
  516. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0003_incident_level.py +0 -0
  517. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
  518. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
  519. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
  520. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
  521. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
  522. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/migrations/0009_use_bigautofield_on_quickly_growing_tables.py +0 -0
  523. {argus_server-2.5.0/src/argus/incident/ticket → argus_server-2.7.0/src/argus/incident/migrations}/__init__.py +0 -0
  524. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/models.py +0 -0
  525. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/serializers.py +0 -0
  526. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
  527. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
  528. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
  529. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/templates/incident/ticket/default_ticket_body.html +0 -0
  530. {argus_server-2.5.0/src/argus/notificationprofile/migrations → argus_server-2.7.0/src/argus/incident/ticket}/__init__.py +0 -0
  531. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/ticket/base.py +0 -0
  532. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/ticket/dummy.py +0 -0
  533. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/ticket/utils.py +0 -0
  534. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/urls.py +0 -0
  535. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/views.py +0 -0
  536. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/incident/widgets.py +0 -0
  537. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/__init__.py +0 -0
  538. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/admin.py +0 -0
  539. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/apps.py +0 -0
  540. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/checks.py +0 -0
  541. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/factories.py +0 -0
  542. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/media/base.py +0 -0
  543. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/media/email.py +0 -0
  544. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/media/sms_as_email.py +0 -0
  545. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
  546. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
  547. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
  548. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
  549. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/migrations/0018_remove_closed_and_unacked_from_filterblob.py +0 -0
  550. {argus_server-2.5.0/src/argus/plannedmaintenance → argus_server-2.7.0/src/argus/notificationprofile/migrations}/__init__.py +0 -0
  551. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/serializers.py +0 -0
  552. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/signals.py +0 -0
  553. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
  554. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
  555. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
  556. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/notificationprofile/urls.py +0 -0
  557. {argus_server-2.5.0/src/argus/plannedmaintenance/migrations → argus_server-2.7.0/src/argus/plannedmaintenance}/__init__.py +0 -0
  558. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/plannedmaintenance/admin.py +0 -0
  559. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/plannedmaintenance/apps.py +0 -0
  560. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/plannedmaintenance/factories.py +0 -0
  561. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/plannedmaintenance/migrations/0001_initial.py +0 -0
  562. {argus_server-2.5.0/src/argus/site → argus_server-2.7.0/src/argus/plannedmaintenance/migrations}/__init__.py +0 -0
  563. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/plannedmaintenance/templates/plannedmaintenance/admin/planned_maintenance_change_form.html +0 -0
  564. {argus_server-2.5.0/src/argus/util → argus_server-2.7.0/src/argus/site}/__init__.py +0 -0
  565. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/api_v2_urls.py +0 -0
  566. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/logging.py +0 -0
  567. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/serializers.py +0 -0
  568. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/__init__.py +0 -0
  569. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/_serializers.py +0 -0
  570. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/backend.py +0 -0
  571. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/dev.py +0 -0
  572. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/dockerdev.py +0 -0
  573. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/settings/prod.py +0 -0
  574. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/urls.py +0 -0
  575. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/utils.py +0 -0
  576. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/views.py +0 -0
  577. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/site/wsgi.py +0 -0
  578. {argus_server-2.5.0/tests → argus_server-2.7.0/src/argus/util}/__init__.py +0 -0
  579. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/util/admin_utils.py +0 -0
  580. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/util/datetime_utils.py +0 -0
  581. {argus_server-2.5.0 → argus_server-2.7.0}/src/argus/util/utils.py +0 -0
  582. {argus_server-2.5.0/tests/auth/management_commands → argus_server-2.7.0/tests}/__init__.py +0 -0
  583. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/__init__.py +0 -0
  584. {argus_server-2.5.0/tests/dev → argus_server-2.7.0/tests/auth/management_commands}/__init__.py +0 -0
  585. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/management_commands/test_changeuser.py +0 -0
  586. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/management_commands/test_createuser.py +0 -0
  587. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/models.py +0 -0
  588. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/test_auth.py +0 -0
  589. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/test_knox_views.py +0 -0
  590. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/test_models.py +0 -0
  591. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/test_utils.py +0 -0
  592. {argus_server-2.5.0 → argus_server-2.7.0}/tests/auth/test_views.py +0 -0
  593. {argus_server-2.5.0/tests/filter → argus_server-2.7.0/tests/dev}/__init__.py +0 -0
  594. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_bulk_incidents.py +0 -0
  595. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_check_token_expiry.py +0 -0
  596. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_close_incident.py +0 -0
  597. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_create_fake_incident.py +0 -0
  598. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_create_source.py +0 -0
  599. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_gen_secret_key.py +0 -0
  600. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_initial_setup.py +0 -0
  601. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_list_filters.py +0 -0
  602. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_toggle_profile_activation.py +0 -0
  603. {argus_server-2.5.0 → argus_server-2.7.0}/tests/dev/test_utils.py +0 -0
  604. {argus_server-2.5.0/tests/htmx → argus_server-2.7.0/tests/filter}/__init__.py +0 -0
  605. {argus_server-2.5.0 → argus_server-2.7.0}/tests/filter/dummyplugin.py +0 -0
  606. {argus_server-2.5.0 → argus_server-2.7.0}/tests/filter/test_filterplugin.py +0 -0
  607. {argus_server-2.5.0 → argus_server-2.7.0}/tests/helpers.py +0 -0
  608. {argus_server-2.5.0/tests/htmx/incident → argus_server-2.7.0/tests/htmx}/__init__.py +0 -0
  609. {argus_server-2.5.0/tests/htmx/notificationprofile → argus_server-2.7.0/tests/htmx/incident}/__init__.py +0 -0
  610. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/incident/test_customization.py +0 -0
  611. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/incident/test_utils.py +0 -0
  612. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/incident/test_views.py +0 -0
  613. {argus_server-2.5.0/tests/incident/fixtures → argus_server-2.7.0/tests/htmx/notificationprofile}/__init__.py +0 -0
  614. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/notificationprofile/test_forms.py +0 -0
  615. {argus_server-2.5.0/tests/incident/ticket_plugins → argus_server-2.7.0/tests/htmx/plannedmaintenance}/__init__.py +0 -0
  616. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/test_context_processors.py +0 -0
  617. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/test_incident_columns_rendering.py +0 -0
  618. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/test_templatetags.py +0 -0
  619. {argus_server-2.5.0 → argus_server-2.7.0}/tests/htmx/test_utils.py +0 -0
  620. {argus_server-2.5.0/tests/incident/unit → argus_server-2.7.0/tests/htmx/timeslot}/__init__.py +0 -0
  621. {argus_server-2.5.0/tests/notificationprofile/destinations → argus_server-2.7.0/tests/htmx/user}/__init__.py +0 -0
  622. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/__init__.py +0 -0
  623. {argus_server-2.5.0/tests/notificationprofile/migrations → argus_server-2.7.0/tests/incident/fixtures}/__init__.py +0 -0
  624. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_change_event.py +0 -0
  625. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_create_fake_incident.py +0 -0
  626. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_event.py +0 -0
  627. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_filters.py +0 -0
  628. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_incident.py +0 -0
  629. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_incident_fields.py +0 -0
  630. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_queryset.py +0 -0
  631. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_serializers.py +0 -0
  632. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_source_system.py +0 -0
  633. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_source_system_type.py +0 -0
  634. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/test_views.py +0 -0
  635. {argus_server-2.5.0/tests/plannedmaintenance → argus_server-2.7.0/tests/incident/ticket_plugins}/__init__.py +0 -0
  636. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/ticket_plugins/test_base.py +0 -0
  637. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/ticket_plugins/test_dummy.py +0 -0
  638. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/ticket_plugins/test_utils.py +0 -0
  639. {argus_server-2.5.0/tests/site → argus_server-2.7.0/tests/incident/unit}/__init__.py +0 -0
  640. {argus_server-2.5.0 → argus_server-2.7.0}/tests/incident/unit/test_incident_details_url.py +0 -0
  641. {argus_server-2.5.0 → argus_server-2.7.0}/tests/migration_example.py +0 -0
  642. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/__init__.py +0 -0
  643. {argus_server-2.5.0/tests/util → argus_server-2.7.0/tests/notificationprofile/destinations}/__init__.py +0 -0
  644. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/destinations/test_email.py +0 -0
  645. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/destinations/test_sms.py +0 -0
  646. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/test_github236.py +0 -0
  647. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/test_media.py +0 -0
  648. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/test_models.py +0 -0
  649. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/test_serializers.py +0 -0
  650. {argus_server-2.5.0 → argus_server-2.7.0}/tests/notificationprofile/test_views.py +0 -0
  651. {argus_server-2.5.0 → argus_server-2.7.0}/tests/site/test_misc.py +0 -0
  652. {argus_server-2.5.0 → argus_server-2.7.0}/tests/site/test_settings_helpers.py +0 -0
  653. {argus_server-2.5.0 → argus_server-2.7.0}/tests/site/test_settings_validators.py +0 -0
  654. {argus_server-2.5.0 → argus_server-2.7.0}/tests/site/test_views.py +0 -0
  655. {argus_server-2.5.0 → argus_server-2.7.0}/tests/util/test_utils.py +0 -0
@@ -8,7 +8,7 @@ repos:
8
8
  exclude: &exclude_pattern '^changelog.d/'
9
9
  - id: debug-statements
10
10
  - repo: https://github.com/astral-sh/ruff-pre-commit
11
- rev: v0.12.0
11
+ rev: v0.14.13
12
12
  hooks:
13
13
  # Run the linter
14
14
  - id: ruff
@@ -20,4 +20,6 @@ repos:
20
20
  rev: v1.36.4
21
21
  hooks:
22
22
  - id: djlint-reformat-django
23
+ args: [--configuration, pyproject.toml]
23
24
  - id: djlint-django
25
+ args: [--configuration, pyproject.toml]
@@ -8,6 +8,128 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang
8
8
 
9
9
  <!-- towncrier release notes start -->
10
10
 
11
+ ## [2.7.0] - 2026-01-23
12
+
13
+ This release improves the UX for creating planned maintenance tasks, by having
14
+ dedicated pages for it and allowing all logged in users to see the list of
15
+ future, ongoing and past planned maintenance periods. To take full advantage of
16
+ thisi column, see NOTES.md.
17
+
18
+ Furthermore, admins can create filters that can be used (but not edited) by
19
+ everyone.
20
+
21
+ The sorting of the incident list can now be controlled via relevant columns,
22
+ but only one column at a time.
23
+
24
+ There are lots and lots of new columns! See NOTES.md
25
+
26
+ There are two new column presets, one for making notification filters and
27
+ another for making planned maintenance tasks.
28
+
29
+ A long-standing bug has been fixed that prevented the sending of notifications,
30
+ see NOTES.md.
31
+
32
+ ### Added
33
+
34
+ - Added searchable `id` column
35
+ ([#1288](https://github.com/Uninett/Argus/issues/1288))
36
+ - Made it possible to filter on event types
37
+ ([#1455](https://github.com/Uninett/Argus/issues/1455))
38
+ - Added column for marking incidents as under maintenance
39
+ ([#1589](https://github.com/Uninett/Argus/issues/1589))
40
+ - Prohibited editing planned maintenance task closed for longer than 12 hours
41
+ ([#1648](https://github.com/Uninett/Argus/issues/1648))
42
+ - Added pictures of each column type to docs
43
+ ([#1653](https://github.com/Uninett/Argus/issues/1653))
44
+ - Save current incident filters as a user preference and restore on page load
45
+ ([#1682](https://github.com/Uninett/Argus/issues/1682))
46
+ - Added a new column showing all tags of an incident.
47
+ ([#1698](https://github.com/Uninett/Argus/issues/1698))
48
+ - Add new `end_time` and `narrow_end_time` columns to display the `end_time` of
49
+ an incident ([#1715](https://github.com/Uninett/Argus/issues/1715))
50
+ - Add compact severity columns with filtering and sorting
51
+ ([#1717](https://github.com/Uninett/Argus/issues/1717))
52
+ - Added management command to connect incidents to new planned maintenance
53
+ tasks ([#1734](https://github.com/Uninett/Argus/issues/1734))
54
+ - Added first version of pages for CRUD-ing planned maintenance tasks. Everyone
55
+ can see them but only admins can alter anything
56
+ ([#1735](https://github.com/Uninett/Argus/issues/1735))
57
+ - Added management command to remove incidents from ended planned maintenance
58
+ tasks ([#1736](https://github.com/Uninett/Argus/issues/1736))
59
+ - Made it possible to mark a filter as "public". This means that anyone can use
60
+ it in the incident list, for notification profiles or for making planned
61
+ maintenance tasks. The flag can currently only be set via the admin
62
+ interface, and is thus limited to administrators.
63
+ ([#1742](https://github.com/Uninett/Argus/issues/1742))
64
+ - Add sortable columns to incident table
65
+ ([#1980](https://github.com/Uninett/Argus/issues/1980))
66
+ - Added a very rough and ready column to show an incident's events.
67
+ - Added two new column presets:
68
+
69
+ * "notifications" with columns useful for making notification profiles
70
+ * "on maintenance" with columns useful for finding things that will be on
71
+ planned maintenance
72
+ - Argus now supports Django 6.0
73
+
74
+ ### Changed
75
+
76
+ - Implemented a Contributor License Agreement for Argus, based on the Free
77
+ Software Foundation's Fiduciary License Agreement
78
+ ([#956](https://github.com/Uninett/Argus/issues/956))
79
+ - Replace column filter button with debounced auto-submit
80
+ ([#1575](https://github.com/Uninett/Argus/issues/1575))
81
+ - Improve toast notification accessibility with ARIA attributes and screen
82
+ reader support ([#1711](https://github.com/Uninett/Argus/issues/1711))
83
+ - Changed label of start time column to 'Start time'
84
+ ([#1718](https://github.com/Uninett/Argus/issues/1718))
85
+ - Renamed column `start_time_and_age` to `narrow_start_time_and_age` and added
86
+ wider column named `start_time_and_age`
87
+ ([#1719](https://github.com/Uninett/Argus/issues/1719))
88
+ - The buttons in the column layout preview were disabled.
89
+ - The theme chooser on the user preferences page now shows the text color for
90
+ each color palette in addition to the background color.
91
+
92
+ ### Fixed
93
+
94
+ - Added key requirements to error message in tag validation
95
+ ([#511](https://github.com/Uninett/Argus/issues/511))
96
+ - Fixed dropdown multi-select fields (e.g. Source Types) selecting first item
97
+ when clicked ([#1697](https://github.com/Uninett/Argus/issues/1697))
98
+ - Show meaningful error messages in UI and log full tracebacks for HTMX errors
99
+ instead of generic "500 Internal Server Error" and HTML content
100
+ ([#1702](https://github.com/Uninett/Argus/issues/1702))
101
+ - Fixed page size preference being reset to default when visiting the incidents
102
+ page without a `page_size` URL parameter
103
+ ([#1704](https://github.com/Uninett/Argus/issues/1704))
104
+ - Fix bug where multiselect is not cleared when de-selecting all options
105
+ ([#1751](https://github.com/Uninett/Argus/issues/1751))
106
+ - Fixed longstanding bug that led to fewer notifications than expected. Instead
107
+ of checking when an *event* happened in order to decide whether to send
108
+ a notification, we only checked when the incident *started*. So, no
109
+ notifications could be sent for long-lasting incidents if they started
110
+ outside of all active timeslots.
111
+ - Missing filters are now handled better. If a filter was deleted while it was
112
+ in use by the incident list page, the page would get stuck with a "500 Server
113
+ Error" until the filter was manually removed from the session.
114
+
115
+
116
+ ## [2.6.0] - 2026-01-06
117
+
118
+ This is a tiny release to finish up what was started at the end of 2025.
119
+
120
+ ### Added
121
+
122
+ - Add preview for incident table preferences
123
+ ([#1658](https://github.com/Uninett/Argus/issues/1658))
124
+
125
+ ### Fixed
126
+
127
+ - Filter on source type in dashboard. The previous release made it work for
128
+ notifications but not in the incident list in the frontend.
129
+ - Fix bug where the incident table overlaps filter dropdowns
130
+ ([#1669](https://github.com/Uninett/Argus/issues/1669))
131
+
132
+
11
133
  ## [2.5.0] - 2025-12-04
12
134
 
13
135
  The big new thing this time around is a way to prevent notifications from
@@ -54,3 +54,21 @@ Nuts and bolts
54
54
 
55
55
  * How to write a changelog, and when `(local copy) <./docs/development/howtos/changelog-entry.rst>`_, `RTD <https://argus-server.readthedocs.io/en/latest/development/howtos/changelog-entry.html>`_
56
56
  * What we want to see in a commit message `(local copy) <./docs/development/howtos/commit-messages.rst>`_, `RTD <https://argus-server.readthedocs.io/en/latest/development/howtos/commit-messages.html>`_
57
+
58
+ Contributor License Agreement
59
+ =============================
60
+
61
+ To contribute code to Argus, you need to sign our contributor license
62
+ agreement, based on The Free Software Foundation's `Fiduciary License
63
+ Agreement 2.0 <https://fsfe.org/activities/ftf/fla.en.html>`_.
64
+
65
+ We use `CLA assistant`_ to streamline the process. When you create a pull
66
+ request against the Argus repository and have not previously signed our
67
+ agreement, the assistant will automatically post a comment on your pull
68
+ request with instructions on how to sign it digitally using your GitHub
69
+ account.
70
+
71
+ `The full agreement text can be read at the CLA Assistant site.
72
+ <https://cla-assistant.io/Uninett/Argus>`_
73
+
74
+ .. _CLA assistant: https://cla-assistant.io/
@@ -3,6 +3,65 @@
3
3
  This file documents changes to Argus that are relevant for operations,
4
4
  customizers and end-users.
5
5
 
6
+ ## [2.7.0] - 2026-01-23
7
+
8
+ ### Planned maintenance
9
+
10
+ This release improves the UX for creating planned maintenance tasks, by having
11
+ dedicated pages for it and allowing all logged in users to see the list of
12
+ future, ongoing and past planned maintenance periods. There is also a new
13
+ column `under_plannedmaintenance`. This column depends on two new management commands:
14
+
15
+ - `check_started_maintenance`
16
+ - `check_ended_maintenance`
17
+
18
+ Both takes an argument `--minutes` which defaults to 5. These commands connects
19
+ and disconnects incidents to a planned maintenance task if they fit the
20
+ criteria set in the filter(s).
21
+
22
+ The commands are designed to be run via cron or similar repetitive scheduler.
23
+
24
+ ### Public filters
25
+
26
+ Filters can now be public. At the moment they can only be created by admins in
27
+ the admin. The idea is to make it easy to have a little library of the most
28
+ useful, most used or just default filters, allowing you to get started quicker.
29
+
30
+ ### New columns
31
+
32
+ - `id` and `search_id`
33
+ - `under_maintenance`
34
+ - `end_time` and `narrow_end_time`
35
+ - `narrow_start_time_and_age` is the old `start_time_and_age`, a new
36
+ `start_time_and_age` is wider.
37
+ - `compact_level` and `compact_select_levels`, only showing the number.
38
+ - `events`, to help with making filters for sending notifications
39
+
40
+ ### New column layouts
41
+
42
+ There are two new column presets, one for making notification filters and
43
+ another for making planned maintenance tasks. With the classic built-in layout
44
+ that means there are always a minimum of three column layouts available.
45
+
46
+ ### Expect more notification sent
47
+
48
+ A long-standing bug has been fixed that prevented the sending of notifications
49
+ of events that happened if the start of the incident was not covered by
50
+ a notification timeslot. This might mean more notifications! Please set the
51
+ `event types` filter to only the types of events desired.
52
+
53
+ ## [2.6.0] - 2026-01-06
54
+
55
+ This is a tiny release to finish up what was started at the end of 2025.
56
+
57
+ The feature for having mutiple column presets for the incident list is now
58
+ finished. Please make add issue if you have a column-type you would like
59
+ added.
60
+
61
+ Also, there were some bugs with the typeahead for the tag filter and the new
62
+ source system type filter that was introduced in 2.4.0, the ones we know of
63
+ have been fixed.
64
+
6
65
  ## [2.5.0] - 2025-12-04
7
66
 
8
67
  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.7.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>
@@ -8,6 +8,7 @@ License: GPL-3.0-or-later
8
8
  License-File: LICENSE
9
9
  Classifier: Framework :: Django
10
10
  Classifier: Framework :: Django :: 5.2
11
+ Classifier: Framework :: Django :: 6.0
11
12
  Classifier: Intended Audience :: Information Technology
12
13
  Classifier: Intended Audience :: System Administrators
13
14
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
@@ -25,7 +26,7 @@ Requires-Dist: django-htmx
25
26
  Requires-Dist: django-phonenumber-field[phonenumberslite]
26
27
  Requires-Dist: django-rest-knox
27
28
  Requires-Dist: django-widget-tweaks==1.5.0
28
- Requires-Dist: django<6.0,>=5.2
29
+ Requires-Dist: django<6.1,>=5.2.8
29
30
  Requires-Dist: djangorestframework>=3.14
30
31
  Requires-Dist: drf-rw-serializers>=1.1
31
32
  Requires-Dist: drf-spectacular>=0.17
@@ -127,7 +127,7 @@ given a ``str``, this key must be available in the
127
127
  ``argus.htmx.incidents.customization.BUILTIN_COLUMNS`` dictionary. For
128
128
  example::
129
129
 
130
- from argus.htmx.incidents.customization import BUILTIN_COLUMNS, IncidentTableColumn
130
+ from argus.htmx.incident.columns import BUILTIN_COLUMNS, IncidentTableColumn
131
131
 
132
132
  INCIDENT_TABLE_COLUMN_LAYOUTS = {
133
133
  "default": [
@@ -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
@@ -0,0 +1,51 @@
1
+ ==================================================
2
+ How to make a column for an ack with a known group
3
+ ==================================================
4
+
5
+ You need a new template for the cell, for instance containing::
6
+
7
+ {% load argus_htmx %}
8
+ {% if incident|is_acked_by:column.context.group %}X{% endif %}
9
+
10
+ Our recommended filename for the template file is::
11
+
12
+ ``htmx/incident/cells/_incident_ack_by_group.html``
13
+
14
+ It is *necessary* to use a specialized settings-file for this, since you
15
+ need to both set where to look for the additional template, and to set
16
+ up the actual column.
17
+
18
+ Tell Argus where the template is
19
+ ================================
20
+
21
+ There are two available methods to tell Argus where the template is. They can
22
+ be combined, but then the template in the hardcoded directory name (option 2)
23
+ always takes precedence.
24
+
25
+ 1. Add a Django app at the start of :setting:`INSTALLED_APPS` that has
26
+ a directory ``templates/`` that contains the new template file. You can use
27
+ the same app for any other overrides.
28
+ 2. Add a directory to the :setting:`DIRS` list in the :setting:`TEMPLATES`
29
+ setting, see `Django settings: TEMPLATES
30
+ <https://docs.djangoproject.com/en/5.2/ref/settings/#templates>`_ in the
31
+ official Django documentation. Templates here will override any template
32
+ from any app, provided the relative path matches.
33
+
34
+ Set up the column
35
+ =================
36
+
37
+ You need to add the column to a column config::
38
+
39
+ INCIDENT_TABLE_COLUMN_LAYOUTS = {
40
+ "mylayout":[
41
+ ..
42
+ IncidentTableColumn(
43
+ "mygroup_ack",
44
+ "MYGROUP",
45
+ "htmx/incident/cells/_incident_ack_by_group.html",
46
+ context={"group": "MYGROUP"},
47
+ )
48
+ ..
49
+ ],
50
+ ..
51
+ }
@@ -0,0 +1,19 @@
1
+ =======================================
2
+ How to make a column for a specific tag
3
+ =======================================
4
+
5
+ You can add the column to a named column config::
6
+
7
+ INCIDENT_TABLE_COLUMN_LAYOUTS = {
8
+ "mylayout": [
9
+ ..
10
+ IncidentTableColumn(
11
+ "mytag",
12
+ "MYTAG",
13
+ "htmx/incidents/cells/_incident_tag.html",
14
+ context={"tag": "MYTAG"},
15
+ )
16
+ ..
17
+ ]
18
+ ..
19
+ }
@@ -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
@@ -466,6 +466,31 @@ whether the user is a superuser (superuser) or not (nosuperuser). Superusers
466
466
  have by default access to the admin, but this can be turned off with
467
467
  ``--nostaff``.
468
468
 
469
+ Planned maintenance handling
470
+ ============================
471
+ Connect new planned maintenance tasks with their covered incidents
472
+ ------------------------------------------------------------------
473
+
474
+ There is a command ``check_started_maintenance``. It takes an argument ``--minutes``
475
+ (default 5 min) and will find all planned maintenance tasks that have started within
476
+ the last x minutes. For each of these tasks it finds all open incidents that are
477
+ covered by it and adds them to the ``incidents`` list of that task if it isn't already
478
+ there.
479
+
480
+ This field will be used to show in the dashboard which incidents are covered by an
481
+ ongoing planned maintenance task.
482
+
483
+ Remove covered incidents from recently closed planned maintenance tasks
484
+ -----------------------------------------------------------------------
485
+
486
+ There is a command ``check_ended_maintenance``. It takes an argument ``--minutes``
487
+ (default 5 min) and will find all planned maintenance tasks that have ended within the
488
+ last x minutes. For each of these tasks it clears the ``incidents`` field of that task.
489
+
490
+ This field is be used to show in the dashboard which incidents are covered by an
491
+ ongoing planned maintenance task. Since the task has ended these incidents are not
492
+ covered by it anymore.
493
+
469
494
  Deprecated/overlapping commands
470
495
  ===============================
471
496