firefighter-incident 0.0.24__tar.gz → 0.0.26__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 (525) hide show
  1. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/PKG-INFO +1 -1
  2. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/_version.py +2 -2
  3. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/impact.py +16 -16
  4. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/service_postmortem.py +5 -4
  5. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/models.py +3 -3
  6. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/service.py +4 -0
  7. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/types.py +3 -3
  8. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/closure_reason.py +19 -14
  9. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/test_postmortem_service.py +2 -2
  10. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/pyproject.toml +0 -1
  11. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/.gitignore +0 -0
  12. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/LICENSE +0 -0
  13. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/README.md +0 -0
  14. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/__init__.py +0 -0
  15. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/__init__.py +0 -0
  16. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/admin.py +0 -0
  17. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/apps.py +0 -0
  18. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/authentication.py +0 -0
  19. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/migrations/0001_initial.py +0 -0
  20. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/migrations/0002_alter_apitokenproxy_options.py +0 -0
  21. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/migrations/0003_alter_apitokenproxy_options.py +0 -0
  22. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/migrations/__init__.py +0 -0
  23. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/models.py +0 -0
  24. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/permissions.py +0 -0
  25. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/renderer.py +0 -0
  26. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/serializers.py +0 -0
  27. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/urls.py +0 -0
  28. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/__init__.py +0 -0
  29. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/_base.py +0 -0
  30. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/components.py +0 -0
  31. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/environments.py +0 -0
  32. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/groups.py +0 -0
  33. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/incident_cost_types.py +0 -0
  34. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/incident_costs.py +0 -0
  35. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/incidents.py +0 -0
  36. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/api/views/severities.py +0 -0
  37. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/__init__.py +0 -0
  38. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/avatar/__init__.py +0 -0
  39. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/avatar/avatar.html +0 -0
  40. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/avatar/avatar.py +0 -0
  41. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/card/__init__.py +0 -0
  42. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/card/card.html +0 -0
  43. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/card/card.py +0 -0
  44. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/export_button/__init__.py +0 -0
  45. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/export_button/export_button.html +0 -0
  46. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/export_button/export_button.py +0 -0
  47. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/form/__init__.py +0 -0
  48. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/form/form.html +0 -0
  49. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/form/form.py +0 -0
  50. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/form_field/__init__.py +0 -0
  51. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/form_field/form_field.html +0 -0
  52. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/form_field/form_field.py +0 -0
  53. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/messages/__init__.py +0 -0
  54. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/messages/messages.html +0 -0
  55. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/messages/messages.py +0 -0
  56. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/modal/__init__.py +0 -0
  57. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/modal/modal.html +0 -0
  58. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/components/modal/modal.py +0 -0
  59. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/__init__.py +0 -0
  60. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/admin.py +0 -0
  61. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/apps.py +0 -0
  62. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/client.py +0 -0
  63. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/management/__init__.py +0 -0
  64. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/management/commands/__init__.py +0 -0
  65. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/management/commands/sort_postmortems.py +0 -0
  66. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/management/commands/sort_runbooks.py +0 -0
  67. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/management/commands/sync_postmortems.py +0 -0
  68. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/management/commands/sync_runbooks.py +0 -0
  69. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/migrations/0001_initial_oss.py +0 -0
  70. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/migrations/__init__.py +0 -0
  71. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/models.py +0 -0
  72. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/serializers.py +0 -0
  73. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/service.py +0 -0
  74. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/signals/__init__.py +0 -0
  75. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/signals/incident_updated.py +0 -0
  76. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/tables.py +0 -0
  77. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/tasks/__init__.py +0 -0
  78. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/tasks/archive_postmortems.py +0 -0
  79. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/tasks/sort_runbooks.py +0 -0
  80. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/tasks/sync_pages_content.py +0 -0
  81. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/tasks/sync_postmortems.py +0 -0
  82. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/tasks/sync_runbooks.py +0 -0
  83. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/templates/oncall_team.xml +0 -0
  84. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/templates/pages/runbook_list.html +0 -0
  85. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/urls.py +0 -0
  86. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/utils.py +0 -0
  87. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/views/__init__.py +0 -0
  88. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/views/api.py +0 -0
  89. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/views/postmortem/__init__.py +0 -0
  90. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/views/postmortem/postmortem_detail.py +0 -0
  91. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/views/runbook/__init__.py +0 -0
  92. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/confluence/views/runbook/runbook_list.py +0 -0
  93. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/__init__.py +0 -0
  94. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/admin.py +0 -0
  95. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/apps.py +0 -0
  96. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/asgi.py +0 -0
  97. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/celery_client.py +0 -0
  98. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/fields_forms_widgets.py +0 -0
  99. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/filters.py +0 -0
  100. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/formats/__init__.py +0 -0
  101. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/formats/en/__init__.py +0 -0
  102. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/formats/en/formats.py +0 -0
  103. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/http_client.py +0 -0
  104. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/management/__init__.py +0 -0
  105. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/management/commands/__init__.py +0 -0
  106. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/management/commands/task.py +0 -0
  107. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/middleware.py +0 -0
  108. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/__init__.py +0 -0
  109. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/__init__.py +0 -0
  110. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/api.py +0 -0
  111. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/caches.py +0 -0
  112. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/celery.py +0 -0
  113. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/common.py +0 -0
  114. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/confluence.py +0 -0
  115. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/jira_app.py +0 -0
  116. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/logging.py +0 -0
  117. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/pagerduty.py +0 -0
  118. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/raid.py +0 -0
  119. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/components/slack.py +0 -0
  120. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/environments/__init__.py +0 -0
  121. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/environments/dev.py +0 -0
  122. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/environments/prod.py +0 -0
  123. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/settings_builder.py +0 -0
  124. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/settings/settings_utils.py +0 -0
  125. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/sso.py +0 -0
  126. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/tables_utils.py +0 -0
  127. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/templates/admin/base.html +0 -0
  128. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/templates/admin/login.html +0 -0
  129. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/templates/admin/send_message_conversation.html +0 -0
  130. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/templates/robots.txt +0 -0
  131. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/urls.py +0 -0
  132. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/utils.py +0 -0
  133. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/views.py +0 -0
  134. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/firefighter/wsgi.py +0 -0
  135. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/__init__.py +0 -0
  136. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/admin.py +0 -0
  137. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/apps.py +0 -0
  138. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/enums.py +0 -0
  139. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/factories.py +0 -0
  140. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/__init__.py +0 -0
  141. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/close_incident.py +0 -0
  142. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/closure_reason.py +0 -0
  143. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/create_incident.py +0 -0
  144. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/edit.py +0 -0
  145. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/select_impact.py +0 -0
  146. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/unified_incident.py +0 -0
  147. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/update_key_events.py +0 -0
  148. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/update_roles.py +0 -0
  149. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/update_status.py +0 -0
  150. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/forms/utils.py +0 -0
  151. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/menus.py +0 -0
  152. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0001_initial_oss.py +0 -0
  153. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0002_alter_severity_name_alter_user_password_featureteam.py +0 -0
  154. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0003_delete_featureteam.py +0 -0
  155. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0004_incidentupdate_environment.py +0 -0
  156. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0005_enable_from_p1_to_p5_priority.py +0 -0
  157. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0006_update_group_names.py +0 -0
  158. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0007_update_component_name.py +0 -0
  159. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0008_impact_level.py +0 -0
  160. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0009_update_sla.py +0 -0
  161. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0010_update_components.py +0 -0
  162. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0011_update_incidents.py +0 -0
  163. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0012_alter_impactlevel.py +0 -0
  164. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0013_add_missing_component.py +0 -0
  165. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0014_update_components_slack_groups.py +0 -0
  166. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0015_update_impact_level.py +0 -0
  167. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0016_update_business_incidents_and_level.py +0 -0
  168. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0017_reorder_impact_types.py +0 -0
  169. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0018_update_impactlevel_names.py +0 -0
  170. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0019_set_security_components_private.py +0 -0
  171. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0020_create_incident_category_model.py +0 -0
  172. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0021_copy_component_data_to_incident_category.py +0 -0
  173. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0022_add_incident_category_fields.py +0 -0
  174. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0023_populate_incident_category_references.py +0 -0
  175. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0024_remove_component_fields_and_model.py +0 -0
  176. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0025_make_incident_category_required.py +0 -0
  177. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0026_alter_incidentcategory_options_and_more.py +0 -0
  178. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0027_add_closure_fields.py +0 -0
  179. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0028_add_closure_reason_constraint.py +0 -0
  180. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/0029_add_custom_fields_to_incident.py +0 -0
  181. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/migrations/__init__.py +0 -0
  182. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/__init__.py +0 -0
  183. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/environment.py +0 -0
  184. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/group.py +0 -0
  185. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/incident.py +0 -0
  186. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/incident_category.py +0 -0
  187. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/incident_cost.py +0 -0
  188. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/incident_cost_type.py +0 -0
  189. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/incident_membership.py +0 -0
  190. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/incident_role_type.py +0 -0
  191. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/incident_update.py +0 -0
  192. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/metric_type.py +0 -0
  193. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/milestone_type.py +0 -0
  194. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/priority.py +0 -0
  195. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/severity.py +0 -0
  196. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/models/user.py +0 -0
  197. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/signals.py +0 -0
  198. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/css/incident.css +0 -0
  199. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/css/main.css +0 -0
  200. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/css/main.min.css +0 -0
  201. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/css/tailwind.css +0 -0
  202. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/favicon/android-chrome-192x192.png +0 -0
  203. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/favicon/android-chrome-512x512.png +0 -0
  204. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/favicon/apple-touch-icon.png +0 -0
  205. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/favicon/favicon-16x16.png +0 -0
  206. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/favicon/favicon-32x32.png +0 -0
  207. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/favicon/favicon.ico +0 -0
  208. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/favicon/site.webmanifest +0 -0
  209. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/gameday.png +0 -0
  210. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/logo-firefighter.png +0 -0
  211. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/p1.png +0 -0
  212. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/p2.png +0 -0
  213. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/p3.png +0 -0
  214. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/p4.png +0 -0
  215. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/img/p5.png +0 -0
  216. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/js/main.js +0 -0
  217. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/static/js/main.min.js +0 -0
  218. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/tables.py +0 -0
  219. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/tasks/__init__.py +0 -0
  220. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/tasks/updateoncall.py +0 -0
  221. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/errors/base.html +0 -0
  222. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/filter.html +0 -0
  223. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/table/priority_column.html +0 -0
  224. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/table/status_column.html +0 -0
  225. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/table.html +0 -0
  226. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/widgets/form_container.html +0 -0
  227. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/widgets/grouped_checkbox_nested.html +0 -0
  228. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/incidents/widgets/input_option.html +0 -0
  229. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/index.html +0 -0
  230. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/created_at_help.html +0 -0
  231. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/environment_pill.html +0 -0
  232. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/footer.html +0 -0
  233. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/header.html +0 -0
  234. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/incident_card.html +0 -0
  235. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/incident_metrics.html +0 -0
  236. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/incident_timeline.html +0 -0
  237. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/incident_update_key_events_view.html +0 -0
  238. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/incident_update_key_events_view_modal.html +0 -0
  239. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/partial_table_list_paginated.html +0 -0
  240. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/priority_icon.html +0 -0
  241. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/priority_pill.html +0 -0
  242. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/status_pill.html +0 -0
  243. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/table.html +0 -0
  244. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/user_card.html +0 -0
  245. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/partials/user_tooltip.html +0 -0
  246. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/layouts/view_filters.html +0 -0
  247. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/dashboard.html +0 -0
  248. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/docs_metrics.html +0 -0
  249. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_category_detail.html +0 -0
  250. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_category_list.html +0 -0
  251. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_create.html +0 -0
  252. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_detail.html +0 -0
  253. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_list.html +0 -0
  254. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_role_types_detail.html +0 -0
  255. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_role_types_list.html +0 -0
  256. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_statistics.html +0 -0
  257. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_statistics_partial.html +0 -0
  258. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/incident_update_key_events_form.html +0 -0
  259. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/templates/pages/user_detail.html +0 -0
  260. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/urls.py +0 -0
  261. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/__init__.py +0 -0
  262. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/components/__init__.py +0 -0
  263. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/components/details.py +0 -0
  264. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/components/list.py +0 -0
  265. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/date_filter.py +0 -0
  266. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/date_utils.py +0 -0
  267. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/docs/__init__.py +0 -0
  268. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/docs/metrics.py +0 -0
  269. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/docs/role_types.py +0 -0
  270. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/errors.py +0 -0
  271. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/reports.py +0 -0
  272. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/users/__init__.py +0 -0
  273. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/users/details.py +0 -0
  274. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/incidents/views/views.py +0 -0
  275. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/__init__.py +0 -0
  276. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/admin.py +0 -0
  277. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/apps.py +0 -0
  278. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/client.py +0 -0
  279. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/management/__init__.py +0 -0
  280. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/management/commands/__init__.py +0 -0
  281. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/migrations/0001_initial_oss.py +0 -0
  282. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/migrations/0002_add_jira_postmortem_model.py +0 -0
  283. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/migrations/__init__.py +0 -0
  284. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/models.py +0 -0
  285. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/signals/__init__.py +0 -0
  286. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/signals/incident_key_events_updated.py +0 -0
  287. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/signals/postmortem_created.py +0 -0
  288. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/tasks/__init__.py +0 -0
  289. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/tasks/sync_users_jira.py +0 -0
  290. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/templates/jira/postmortem/impact.txt +0 -0
  291. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/templates/jira/postmortem/incident_summary.txt +0 -0
  292. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/templates/jira/postmortem/mitigation_actions.txt +0 -0
  293. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/templates/jira/postmortem/root_causes.txt +0 -0
  294. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/templates/jira/postmortem/timeline.txt +0 -0
  295. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/types.py +0 -0
  296. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/jira_app/utils.py +0 -0
  297. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/logging/__init__.py +0 -0
  298. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/logging/custom_json_formatter.py +0 -0
  299. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/logging/pretty_formatter.py +0 -0
  300. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/__init__.py +0 -0
  301. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/admin.py +0 -0
  302. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/apps.py +0 -0
  303. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/client.py +0 -0
  304. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/forms/__init__.py +0 -0
  305. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/forms/create_pagerduty_incident.py +0 -0
  306. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/migrations/0001_initial_oss.py +0 -0
  307. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/migrations/__init__.py +0 -0
  308. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/service.py +0 -0
  309. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/signals/__init__.py +0 -0
  310. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/signals/get_invites_from_pagerduty.py +0 -0
  311. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/signals/incident_channel_done_oncall.py +0 -0
  312. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/tasks/__init__.py +0 -0
  313. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/tasks/fetch_oncall.py +0 -0
  314. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/tasks/fetch_services.py +0 -0
  315. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/tasks/fetch_users.py +0 -0
  316. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/tasks/trigger_oncall.py +0 -0
  317. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/templates/pages/oncall_list.html +0 -0
  318. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/templates/pages/oncall_trigger.html +0 -0
  319. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/templates/partials/trigger_oncall_form_view.html +0 -0
  320. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/templates/partials/trigger_oncall_form_view_modal.html +0 -0
  321. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/urls.py +0 -0
  322. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/views/__init__.py +0 -0
  323. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/views/oncall_list.py +0 -0
  324. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/pagerduty/views/oncall_trigger.py +0 -0
  325. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/__init__.py +0 -0
  326. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/admin.py +0 -0
  327. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/apps.py +0 -0
  328. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/client.py +0 -0
  329. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/forms.py +0 -0
  330. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/messages.py +0 -0
  331. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/migrations/0001_initial_oss.py +0 -0
  332. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/migrations/0002_featureteam_remove_qualifierrotation_jira_user_and_more.py +0 -0
  333. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/migrations/0003_delete_raidarea.py +0 -0
  334. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/migrations/__init__.py +0 -0
  335. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/models.py +0 -0
  336. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/resources.py +0 -0
  337. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/serializers.py +0 -0
  338. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/signals/__init__.py +0 -0
  339. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/signals/incident_updated.py +0 -0
  340. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/tasks/__init__.py +0 -0
  341. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/urls.py +0 -0
  342. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/utils.py +0 -0
  343. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/raid/views/__init__.py +0 -0
  344. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/__init__.py +0 -0
  345. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/admin.py +0 -0
  346. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/apps.py +0 -0
  347. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/factories.py +0 -0
  348. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/forms/__init__.py +0 -0
  349. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/forms/sos_form.py +0 -0
  350. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/management/__init__.py +0 -0
  351. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/management/commands/__init__.py +0 -0
  352. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/management/commands/generate_manifest.py +0 -0
  353. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/management/commands/switch_test_users.py +0 -0
  354. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/messages/__init__.py +0 -0
  355. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/messages/base.py +0 -0
  356. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/messages/slack_messages.py +0 -0
  357. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0001_initial_oss.py +0 -0
  358. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0002_usergroup_tag.py +0 -0
  359. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0003_alter_usergroup_tag.py +0 -0
  360. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0004_alter_usergroup_components.py +0 -0
  361. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0005_add_incident_categories_fields.py +0 -0
  362. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0006_copy_components_to_incident_categories.py +0 -0
  363. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0007_remove_components_fields.py +0 -0
  364. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/0008_alter_conversation_incident_categories_and_more.py +0 -0
  365. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/migrations/__init__.py +0 -0
  366. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/models/__init__.py +0 -0
  367. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/models/conversation.py +0 -0
  368. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/models/incident_channel.py +0 -0
  369. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/models/message.py +0 -0
  370. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/models/sos.py +0 -0
  371. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/models/user.py +0 -0
  372. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/models/user_group.py +0 -0
  373. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/rules.py +0 -0
  374. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/__init__.py +0 -0
  375. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/create_incident_conversation.py +0 -0
  376. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/get_users.py +0 -0
  377. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/handle_incident_channel_done.py +0 -0
  378. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/incident_closed.py +0 -0
  379. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/incident_updated.py +0 -0
  380. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/postmortem_created.py +0 -0
  381. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/signals/roles_reminders.py +0 -0
  382. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/slack_app.py +0 -0
  383. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/slack_incident_context.py +0 -0
  384. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/slack_templating.py +0 -0
  385. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/__init__.py +0 -0
  386. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/fetch_conversations_members.py +0 -0
  387. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/reminder_postmortem.py +0 -0
  388. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/send_message.py +0 -0
  389. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/send_reminders.py +0 -0
  390. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/sync_users.py +0 -0
  391. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/update_usergroups_members.py +0 -0
  392. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/tasks/update_users.py +0 -0
  393. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/urls.py +0 -0
  394. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/utils.py +0 -0
  395. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/__init__.py +0 -0
  396. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/__init__.py +0 -0
  397. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/actions_and_shortcuts.py +0 -0
  398. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/channel_archive.py +0 -0
  399. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/channel_id_changed.py +0 -0
  400. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/channel_rename.py +0 -0
  401. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/channel_shared.py +0 -0
  402. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/channel_unarchive.py +0 -0
  403. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/channel_unshared.py +0 -0
  404. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/commands.py +0 -0
  405. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/home.py +0 -0
  406. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/member_joined_channel.py +0 -0
  407. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/member_left_channel.py +0 -0
  408. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/message.py +0 -0
  409. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/message_deleted.py +0 -0
  410. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/events/reaction_added.py +0 -0
  411. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/__init__.py +0 -0
  412. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/base_modal/__init__.py +0 -0
  413. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/base_modal/base.py +0 -0
  414. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/base_modal/base_mixins.py +0 -0
  415. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/base_modal/form_utils.py +0 -0
  416. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/base_modal/mixins.py +0 -0
  417. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/base_modal/modal_utils.py +0 -0
  418. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/close.py +0 -0
  419. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/downgrade_workflow.py +0 -0
  420. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/edit.py +0 -0
  421. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/key_event_message.py +0 -0
  422. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/open.py +0 -0
  423. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/opening/__init__.py +0 -0
  424. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/opening/check_current_incidents.py +0 -0
  425. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/opening/details/__init__.py +0 -0
  426. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/opening/details/unified.py +0 -0
  427. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/opening/select_impact.py +0 -0
  428. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/opening/set_details.py +0 -0
  429. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/opening/types.py +0 -0
  430. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/postmortem.py +0 -0
  431. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/select.py +0 -0
  432. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/send_sos.py +0 -0
  433. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/status.py +0 -0
  434. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/trigger_oncall.py +0 -0
  435. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/update.py +0 -0
  436. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/update_roles.py +0 -0
  437. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/update_status.py +0 -0
  438. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/modals/utils.py +0 -0
  439. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter/slack/views/views.py +0 -0
  440. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/environments.json +0 -0
  441. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/groups.json +0 -0
  442. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/impact_level.json +0 -0
  443. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/impact_type.json +0 -0
  444. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/incident_categories.json +0 -0
  445. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/incident_role_type.json +0 -0
  446. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/metric_type.json +0 -0
  447. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/milestone_type.json +0 -0
  448. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/priorities.json +0 -0
  449. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_fixtures/incidents/severities.json +0 -0
  450. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/__init__.py +0 -0
  451. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/conftest.py +0 -0
  452. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_api/test_api_landbot.py +0 -0
  453. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_api/test_api_urls.py +0 -0
  454. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_api/test_renderer.py +0 -0
  455. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_confluence/test_confluence_utils.py +0 -0
  456. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_firefighter/test_firefighter_utils.py +0 -0
  457. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_firefighter/test_logging.py +0 -0
  458. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_firefighter/test_sso.py +0 -0
  459. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_firefighter/test_urls.py +0 -0
  460. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_enums.py +0 -0
  461. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/conftest.py +0 -0
  462. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_closure_reason.py +0 -0
  463. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_form_select_impact.py +0 -0
  464. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_form_utils.py +0 -0
  465. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_unified_incident_form.py +0 -0
  466. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_unified_incident_form_integration.py +0 -0
  467. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_unified_incident_form_p4_p5.py +0 -0
  468. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_update_key_events.py +0 -0
  469. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_update_status_workflow.py +0 -0
  470. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_forms/test_workflow_transitions.py +0 -0
  471. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_incident_urls.py +0 -0
  472. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_models/test_incident_category.py +0 -0
  473. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_models/test_incident_model.py +0 -0
  474. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_models/test_migrations/test_incident_migrations.py +0 -0
  475. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_utils/test_date_utils.py +0 -0
  476. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_views/test_incident_detail_view.py +0 -0
  477. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_incidents/test_views/test_index_view.py +0 -0
  478. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/__init__.py +0 -0
  479. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/conftest.py +0 -0
  480. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/test_incident_key_events_sync.py +0 -0
  481. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/test_jira_client_watchers.py +0 -0
  482. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/test_models.py +0 -0
  483. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/test_postmortem_issue_link.py +0 -0
  484. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_jira_app/test_timeline_template.py +0 -0
  485. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/conftest.py +0 -0
  486. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_alert_p4_p5.py +0 -0
  487. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_client.py +0 -0
  488. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_client_users.py +0 -0
  489. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_forms.py +0 -0
  490. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_models.py +0 -0
  491. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_serializers.py +0 -0
  492. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_service.py +0 -0
  493. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_signals.py +0 -0
  494. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_transitions.py +0 -0
  495. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_utils.py +0 -0
  496. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_raid_views.py +0 -0
  497. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_raid/test_zendesk_integration.py +0 -0
  498. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/conftest.py +0 -0
  499. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/messages/__init__.py +0 -0
  500. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/messages/test_slack_messages.py +0 -0
  501. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/test_conversation_tags.py +0 -0
  502. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/test_models/test_conversations.py +0 -0
  503. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/test_models/test_incident_channel.py +0 -0
  504. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/test_models/test_slack_user.py +0 -0
  505. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/test_signals_downgrade.py +0 -0
  506. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/test_slack_utils.py +0 -0
  507. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/conftest.py +0 -0
  508. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_close.py +0 -0
  509. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_closure_reason_modal.py +0 -0
  510. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_edit.py +0 -0
  511. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_form_utils_multiple_choice.py +0 -0
  512. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_key_event_message.py +0 -0
  513. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_open.py +0 -0
  514. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_opening_unified.py +0 -0
  515. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_send_sos.py +0 -0
  516. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_status.py +0 -0
  517. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_update_status.py +0 -0
  518. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/firefighter_tests/test_slack/views/modals/test_utils.py +0 -0
  519. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/gunicorn.conf.py +0 -0
  520. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/main.py +0 -0
  521. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/manage.py +0 -0
  522. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/package-lock.json +0 -0
  523. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/package.json +0 -0
  524. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/scripts/gen_credits.py +0 -0
  525. {firefighter_incident-0.0.24 → firefighter_incident-0.0.26}/scripts/hatch_build.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: firefighter-incident
3
- Version: 0.0.24
3
+ Version: 0.0.26
4
4
  Summary: Incident Management tool made for Slack using Django
5
5
  Project-URL: Repository, https://github.com/ManoManoTech/firefighter-incident
6
6
  Project-URL: Documentation, https://manomanotech.github.io/firefighter-incident/latest/
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.0.24'
32
- __version_tuple__ = version_tuple = (0, 0, 24)
31
+ __version__ = version = '0.0.26'
32
+ __version_tuple__ = version_tuple = (0, 0, 26)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -40,29 +40,29 @@ class LevelChoices(models.TextChoices):
40
40
  @property
41
41
  def priority(self) -> int:
42
42
  """Send level choice priority ."""
43
- priority_mapping = {
44
- self.HIGHEST: 1,
45
- self.HIGH: 2,
46
- self.MEDIUM: 3,
47
- self.LOW: 4,
48
- self.LOWEST: 5,
49
- self.NONE: 6,
43
+ priority_mapping: dict[str, int] = {
44
+ LevelChoices.HIGHEST: 1,
45
+ LevelChoices.HIGH: 2,
46
+ LevelChoices.MEDIUM: 3,
47
+ LevelChoices.LOW: 4,
48
+ LevelChoices.LOWEST: 5,
49
+ LevelChoices.NONE: 6,
50
50
  }
51
- return priority_mapping.get(self, 6) # type: ignore[call-overload]
51
+ return priority_mapping.get(self.value, 6)
52
52
 
53
53
  @property
54
54
  def emoji(self) -> str:
55
55
  """Send emoji un function of priority."""
56
56
  none_emoji = ""
57
- emoji_mapping = {
58
- self.HIGHEST: "⏫",
59
- self.HIGH: "🔼",
60
- self.MEDIUM: "➡️",
61
- self.LOW: "🔽",
62
- self.LOWEST: "⏬",
63
- self.NONE: none_emoji,
57
+ emoji_mapping: dict[str, str] = {
58
+ LevelChoices.HIGHEST: "⏫",
59
+ LevelChoices.HIGH: "🔼",
60
+ LevelChoices.MEDIUM: "➡️",
61
+ LevelChoices.LOW: "🔽",
62
+ LevelChoices.LOWEST: "⏬",
63
+ LevelChoices.NONE: none_emoji,
64
64
  }
65
- return emoji_mapping.get(self, none_emoji) # type: ignore[call-overload]
65
+ return emoji_mapping.get(self.value, none_emoji)
66
66
 
67
67
 
68
68
  class ImpactLevel(models.Model):
@@ -229,7 +229,7 @@ class JiraPostMortemService:
229
229
  - Zoho desk ticket (customfield_10896)
230
230
  - Zendesk ticket (customfield_10895)
231
231
  - Seller Contract ID (customfield_10908)
232
- - Platform (customfield_10201)
232
+ - Platforms (customfield_10201) - first platform from list
233
233
  - Business Impact (customfield_10936)
234
234
 
235
235
  Args:
@@ -264,9 +264,10 @@ class JiraPostMortemService:
264
264
  fields["customfield_10908"] = str(seller_contract_id)
265
265
 
266
266
  # Platform - customfield_10201 (option field)
267
- platform = custom_fields.get("platform")
268
- if platform:
269
- # Remove "platform-" prefix if present
267
+ platforms = custom_fields.get("platforms", [])
268
+ if platforms:
269
+ # Extract first platform and remove "platform-" prefix if present
270
+ platform = platforms[0] if isinstance(platforms, list) else platforms
270
271
  platform_value = platform.replace("platform-", "") if isinstance(platform, str) else platform
271
272
  fields["customfield_10201"] = {"value": platform_value}
272
273
 
@@ -331,13 +331,13 @@ class PagerDutySchedule(models.Model):
331
331
  pagerduty_url = models.URLField(max_length=256, null=True, blank=True)
332
332
  # TODO: Add more fields
333
333
 
334
- escalation_policies = models.ManyToManyField(
334
+ escalation_policies: models.ManyToManyField[PagerDutyEscalationPolicy, PagerDutyEscalationPolicy] = models.ManyToManyField(
335
335
  PagerDutyEscalationPolicy, related_name="pagerduty_schedule_set", blank=True
336
336
  )
337
- users = models.ManyToManyField(
337
+ users: models.ManyToManyField[PagerDutyUser, PagerDutyUser] = models.ManyToManyField(
338
338
  PagerDutyUser, related_name="pagerduty_schedule_set", blank=True
339
339
  )
340
- teams = models.ManyToManyField(
340
+ teams: models.ManyToManyField[PagerDutyTeam, PagerDutyTeam] = models.ManyToManyField(
341
341
  PagerDutyTeam, related_name="pagerduty_schedule_set", blank=True
342
342
  )
343
343
 
@@ -24,6 +24,10 @@ error_jira_ticket_creation = "Could not create Jira ticket"
24
24
 
25
25
 
26
26
  def check_issue_id(issue: JiraObject, title: str, reporter: str) -> int | str:
27
+ """Check and return the issue ID from a JiraObject.
28
+
29
+ Raises JiraAPIError if the issue ID is missing or invalid.
30
+ """
27
31
  issue_id = issue.get("id")
28
32
  if issue_id is None:
29
33
  logger.error(
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TypedDict
3
+ from typing import NotRequired, TypedDict
4
4
 
5
5
  _JiraId = int | str
6
6
  _Key = str
@@ -12,8 +12,8 @@ _BusinessImpact = str
12
12
 
13
13
 
14
14
  class JiraObject(TypedDict):
15
- id: _JiraId
16
- key: _Key
15
+ id: NotRequired[_JiraId]
16
+ key: NotRequired[_Key]
17
17
  assignee_id: _AssigneeId
18
18
  reporter_id: _ReporterId
19
19
  description: _Description
@@ -115,20 +115,25 @@ class ClosureReasonModal(IncidentSelectableModalMixin, SlackModal):
115
115
  self, ack: Ack, body: dict[str, Any], incident: Incident, user: User
116
116
  ) -> bool | None:
117
117
  """Handle the closure reason modal submission."""
118
- # Early validation: Check if incident can be closed BEFORE calling ack()
119
- # This validation happens BEFORE ack() so we can display errors in the modal
120
- can_close, reasons = incident.can_be_closed
121
- if not can_close:
122
- # Build error message from reasons
123
- error_messages = [reason[1] for reason in reasons]
124
- error_text = "\n".join([f"• {msg}" for msg in error_messages])
125
- ack(
126
- response_action="errors",
127
- errors={
128
- "closure_message": f"Cannot close this incident:\n{error_text}"
129
- }
130
- )
131
- return False
118
+ # For early closure (OPEN/INVESTIGATING), we bypass normal workflow checks
119
+ # For normal closure (MITIGATED/POST_MORTEM), we must validate key events
120
+ current_status = incident.status
121
+ is_early_closure = current_status.value in {IncidentStatus.OPEN, IncidentStatus.INVESTIGATING}
122
+
123
+ if not is_early_closure:
124
+ # Normal closure path - validate that incident can be closed
125
+ can_close, reasons = incident.can_be_closed
126
+ if not can_close:
127
+ # Build error message from reasons
128
+ error_messages = [reason[1] for reason in reasons]
129
+ error_text = "\n".join([f"• {msg}" for msg in error_messages])
130
+ ack(
131
+ response_action="errors",
132
+ errors={
133
+ "closure_message": f"Cannot close this incident:\n{error_text}"
134
+ }
135
+ )
136
+ return False
132
137
 
133
138
  # Clear ALL modals in the stack (not just this one)
134
139
  # This ensures the underlying "Update Status" modal is also closed
@@ -261,7 +261,7 @@ class TestJiraPostMortemService:
261
261
  "zendesk_ticket_id": "12345",
262
262
  "zoho_desk_ticket_id": "67890",
263
263
  "seller_contract_id": "98765",
264
- "platform": "platform-FR",
264
+ "platforms": ["platform-FR"],
265
265
  "environments": ["PRD", "STG"],
266
266
  },
267
267
  )
@@ -404,7 +404,7 @@ class TestJiraPostMortemService:
404
404
  _status=IncidentStatus.POST_MORTEM,
405
405
  created_by=user,
406
406
  custom_fields={
407
- "platform": "platform-DE",
407
+ "platforms": ["platform-DE"],
408
408
  },
409
409
  )
410
410
 
@@ -401,7 +401,6 @@ warn_no_return = true
401
401
  disallow_subclassing_any = false
402
402
  implicit_reexport = true
403
403
  warn_return_any = false
404
- warn_unused_ignores = false
405
404
  # XXX More aggresive type checking
406
405
 
407
406
  [[tool.mypy.overrides]]