firefighter-incident 0.0.12__py3-none-any.whl → 0.0.14__py3-none-any.whl
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.
- firefighter/_version.py +16 -3
- firefighter/api/serializers.py +8 -8
- firefighter/api/urls.py +8 -1
- firefighter/api/views/_base.py +1 -1
- firefighter/api/views/components.py +5 -5
- firefighter/api/views/incidents.py +9 -9
- firefighter/firefighter/settings/components/raid.py +3 -0
- firefighter/incidents/admin.py +24 -24
- firefighter/incidents/factories.py +14 -5
- firefighter/incidents/forms/close_incident.py +4 -4
- firefighter/incidents/forms/create_incident.py +4 -4
- firefighter/incidents/forms/update_status.py +4 -4
- firefighter/incidents/menus.py +2 -2
- firefighter/incidents/migrations/0005_enable_from_p1_to_p5_priority.py +7 -5
- firefighter/incidents/migrations/0009_update_sla.py +7 -5
- firefighter/incidents/migrations/0019_set_security_components_private.py +67 -0
- firefighter/incidents/migrations/0020_create_incident_category_model.py +64 -0
- firefighter/incidents/migrations/0021_copy_component_data_to_incident_category.py +57 -0
- firefighter/incidents/migrations/0022_add_incident_category_fields.py +34 -0
- firefighter/incidents/migrations/0023_populate_incident_category_references.py +57 -0
- firefighter/incidents/migrations/0024_remove_component_fields_and_model.py +26 -0
- firefighter/incidents/migrations/0025_make_incident_category_required.py +24 -0
- firefighter/incidents/migrations/0026_alter_incidentcategory_options_and_more.py +39 -0
- firefighter/incidents/models/__init__.py +1 -1
- firefighter/incidents/models/group.py +1 -1
- firefighter/incidents/models/incident.py +15 -15
- firefighter/incidents/models/{component.py → incident_category.py} +30 -29
- firefighter/incidents/models/incident_update.py +3 -3
- firefighter/incidents/tables.py +9 -9
- firefighter/incidents/templates/layouts/partials/incident_card.html +1 -1
- firefighter/incidents/templates/layouts/partials/incident_timeline.html +2 -2
- firefighter/incidents/templates/pages/{component_detail.html → incident_category_detail.html} +13 -13
- firefighter/incidents/templates/pages/{component_list.html → incident_category_list.html} +2 -2
- firefighter/incidents/templates/pages/incident_detail.html +3 -3
- firefighter/incidents/urls.py +6 -6
- firefighter/incidents/views/components/details.py +9 -9
- firefighter/incidents/views/components/list.py +9 -9
- firefighter/incidents/views/reports.py +2 -2
- firefighter/incidents/views/users/details.py +2 -2
- firefighter/incidents/views/views.py +7 -7
- firefighter/jira_app/client.py +1 -1
- firefighter/logging/custom_json_formatter.py +2 -1
- firefighter/pagerduty/tasks/trigger_oncall.py +1 -1
- firefighter/raid/admin.py +0 -11
- firefighter/raid/client.py +3 -3
- firefighter/raid/forms.py +53 -19
- firefighter/raid/migrations/0003_delete_raidarea.py +16 -0
- firefighter/raid/models.py +2 -21
- firefighter/raid/serializers.py +5 -4
- firefighter/raid/service.py +29 -27
- firefighter/raid/signals/incident_created.py +4 -2
- firefighter/raid/utils.py +1 -1
- firefighter/raid/views/__init__.py +1 -1
- firefighter/raid/views/open_normal.py +2 -2
- firefighter/slack/admin.py +8 -8
- firefighter/slack/management/commands/switch_test_users.py +272 -0
- firefighter/slack/messages/slack_messages.py +5 -5
- firefighter/slack/migrations/0005_add_incident_categories_fields.py +33 -0
- firefighter/slack/migrations/0006_copy_components_to_incident_categories.py +57 -0
- firefighter/slack/migrations/0007_remove_components_fields.py +22 -0
- firefighter/slack/migrations/0008_alter_conversation_incident_categories_and_more.py +33 -0
- firefighter/slack/models/conversation.py +3 -3
- firefighter/slack/models/incident_channel.py +1 -1
- firefighter/slack/models/user.py +1 -1
- firefighter/slack/models/user_group.py +3 -3
- firefighter/slack/rules.py +1 -1
- firefighter/slack/signals/get_users.py +2 -2
- firefighter/slack/signals/incident_updated.py +1 -1
- firefighter/slack/utils.py +2 -2
- firefighter/slack/views/events/home.py +2 -2
- firefighter/slack/views/modals/base_modal/form_utils.py +15 -0
- firefighter/slack/views/modals/close.py +3 -3
- firefighter/slack/views/modals/open.py +25 -1
- firefighter/slack/views/modals/opening/check_current_incidents.py +2 -2
- firefighter/slack/views/modals/opening/details/critical.py +1 -1
- firefighter/slack/views/modals/opening/select_impact.py +5 -2
- firefighter/slack/views/modals/update_status.py +4 -4
- firefighter_fixtures/incidents/{components.json → incident_categories.json} +52 -52
- {firefighter_incident-0.0.12.dist-info → firefighter_incident-0.0.14.dist-info}/METADATA +2 -2
- {firefighter_incident-0.0.12.dist-info → firefighter_incident-0.0.14.dist-info}/RECORD +99 -77
- firefighter_tests/conftest.py +4 -5
- firefighter_tests/test_api/test_api_landbot.py +1 -1
- firefighter_tests/test_firefighter/test_sso.py +146 -0
- firefighter_tests/test_incidents/test_forms/test_form_utils.py +15 -15
- firefighter_tests/test_incidents/test_incident_urls.py +3 -3
- firefighter_tests/test_incidents/test_models/test_incident_category.py +165 -0
- firefighter_tests/test_incidents/test_models/test_incident_model.py +2 -2
- firefighter_tests/test_raid/test_priority_mapping.py +267 -0
- firefighter_tests/test_raid/test_raid_client.py +580 -0
- firefighter_tests/test_raid/test_raid_forms.py +795 -0
- firefighter_tests/test_raid/test_raid_models.py +185 -0
- firefighter_tests/test_raid/test_raid_serializers.py +507 -0
- firefighter_tests/test_raid/test_raid_service.py +442 -0
- firefighter_tests/test_raid/test_raid_views.py +196 -0
- firefighter_tests/test_slack/views/modals/test_close.py +6 -6
- firefighter_tests/test_slack/views/modals/test_update_status.py +4 -4
- firefighter_fixtures/raid/area.json +0 -1
- {firefighter_incident-0.0.12.dist-info → firefighter_incident-0.0.14.dist-info}/WHEEL +0 -0
- {firefighter_incident-0.0.12.dist-info → firefighter_incident-0.0.14.dist-info}/entry_points.txt +0 -0
- {firefighter_incident-0.0.12.dist-info → firefighter_incident-0.0.14.dist-info}/licenses/LICENSE +0 -0
|
@@ -6,7 +6,7 @@ gunicorn.conf.py,sha256=vHsTGjaKOr8FDMp6fTKYTX4AtokmPgYvvt5Mr0Q6APc,273
|
|
|
6
6
|
main.py,sha256=CsbprHoOYhjCLpTJmq9Z_aRYFoFgWxoz2pDLuwm8Eqg,1558
|
|
7
7
|
manage.py,sha256=5ivHGD13C6nJ8QvltKsJ9T9akA5he8da70HLWaEP3k8,689
|
|
8
8
|
firefighter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
firefighter/_version.py,sha256=
|
|
9
|
+
firefighter/_version.py,sha256=YDX9ERYoOeE60PulkdUCy2JxmS89Xb_igX2wwbidLMQ,706
|
|
10
10
|
firefighter/api/__init__.py,sha256=JQW0Bv6xwGqy7ioxx3h6UGMzkkJ4DntDpbvV1Ncgi8k,136
|
|
11
11
|
firefighter/api/admin.py,sha256=x9Ysy-GiYjb0rynmFdS9g56e6n24fkN0ouGy5QD9Yrc,4629
|
|
12
12
|
firefighter/api/apps.py,sha256=P5uU1_gMrDfzurdMbfqw1Bnb2uNKKcMq17WBPg2sLhc,204
|
|
@@ -14,20 +14,20 @@ firefighter/api/authentication.py,sha256=1OEeTF0NU54ZLgq2Vy3GxrR-7skj6HmobVp4UGP
|
|
|
14
14
|
firefighter/api/models.py,sha256=HJh0PtlrUX8HVCdcdQlClwA6kIFVYnivnKmiQ30D0nQ,1533
|
|
15
15
|
firefighter/api/permissions.py,sha256=1uxMg5ylFkmvIIonJVlQKL0RJAcgAY79a0y5ROiNrTg,608
|
|
16
16
|
firefighter/api/renderer.py,sha256=RCQFnjZBIq9fF3dapu3kid2B1s0in8XOEBJmbh5cPlU,4057
|
|
17
|
-
firefighter/api/serializers.py,sha256=
|
|
18
|
-
firefighter/api/urls.py,sha256=
|
|
17
|
+
firefighter/api/serializers.py,sha256=PKvjmg4wJx9v4uLGUvL4UfQYWuqAcu-UhLA0yMGQhMU,10242
|
|
18
|
+
firefighter/api/urls.py,sha256=kjL6TwO836laVMn8e4fF4GiULyCXQkZiTDqXiVxrGtY,2103
|
|
19
19
|
firefighter/api/migrations/0001_initial.py,sha256=8Q3Q_OUjAOsB_NzjYunAefC9WPk1FUwL3PA7N_gMylc,1496
|
|
20
20
|
firefighter/api/migrations/0002_alter_apitokenproxy_options.py,sha256=BRuXscZS1gmcbF9mFlUyYy_Mwf-5xnUHcuFL2VA89eY,933
|
|
21
21
|
firefighter/api/migrations/0003_alter_apitokenproxy_options.py,sha256=WwkVLRK9Vr0dWPcJOVAtPfiJnQTLTAnlMQZ27-CjRNo,1008
|
|
22
22
|
firefighter/api/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
23
|
firefighter/api/views/__init__.py,sha256=9sSE12yIKG6v0x_OeyM7g--2S05fqGb-4C2Q1J-kInA,230
|
|
24
|
-
firefighter/api/views/_base.py,sha256=
|
|
25
|
-
firefighter/api/views/components.py,sha256=
|
|
24
|
+
firefighter/api/views/_base.py,sha256=s3mLSJsFFS613Smr8ch1IO2w8F3p1FCKS8tEsR8EDaQ,2617
|
|
25
|
+
firefighter/api/views/components.py,sha256=KFFW15mkC6KL668zXAhdL96577XKjuHSMmvHhcXOY4Q,433
|
|
26
26
|
firefighter/api/views/environments.py,sha256=B9j5qFnFHzXw20ZVzJIJJSKjlNXINNeXqJ8r_s0E6bE,373
|
|
27
27
|
firefighter/api/views/groups.py,sha256=mu75XdBNBCMXaVCbiFSLNd0YtpmneNa5u-tgXadAsCE,331
|
|
28
28
|
firefighter/api/views/incident_cost_types.py,sha256=cNYqk3ez5ud_BA45aS2ySLEIJotHdCu_fLc4YRiULk4,410
|
|
29
29
|
firefighter/api/views/incident_costs.py,sha256=aZYEGlT8nF09He4hV_90QJToKFRgi-cJdrsKHR_8HUM,409
|
|
30
|
-
firefighter/api/views/incidents.py,sha256=
|
|
30
|
+
firefighter/api/views/incidents.py,sha256=yx_ORI-8GUSWMC8aKC0BEc-dRSmudQIxcaD-MjPZGxA,10306
|
|
31
31
|
firefighter/api/views/severities.py,sha256=mdkR4GjZibydC1Dx-Sglm-f35GZxWbjmqStAx_kRv7U,352
|
|
32
32
|
firefighter/components/__init__.py,sha256=Vd_Uk5Uq7Mqp6NOFp5QiniWZAyzmYLqNSFEEw1x7COk,167
|
|
33
33
|
firefighter/components/avatar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -118,7 +118,7 @@ firefighter/firefighter/settings/components/confluence.py,sha256=DPpP9FYyXZM1S3J
|
|
|
118
118
|
firefighter/firefighter/settings/components/jira_app.py,sha256=yax_NLQsK_Fws-GC6_-QYxJDJQiLAhp56gzRFV-d0TU,843
|
|
119
119
|
firefighter/firefighter/settings/components/logging.py,sha256=PzaDYr2BxspK2tXaTecUAKu7BlVZOLQYizQMAa959KA,3336
|
|
120
120
|
firefighter/firefighter/settings/components/pagerduty.py,sha256=_LT0_RPhN2E4qW2XQiyywky_iGAQK_eSaabXJyAYMRc,698
|
|
121
|
-
firefighter/firefighter/settings/components/raid.py,sha256=
|
|
121
|
+
firefighter/firefighter/settings/components/raid.py,sha256=i16Gtgmbye-GpUqHYX0HwzC2CipQhLjGDeeOuquB7y8,1004
|
|
122
122
|
firefighter/firefighter/settings/components/slack.py,sha256=zGhMKtl_LlQiPy3gTXxf1-yhMHwTSF47RR36ML-mgRs,2208
|
|
123
123
|
firefighter/firefighter/settings/environments/__init__.py,sha256=yuDUD1Ekza-0cRlnHx8KA53uvY8iCfbtHOIbfLN77lo,88
|
|
124
124
|
firefighter/firefighter/settings/environments/dev.py,sha256=AXgKmzpY11YFeeWKBg_6ghddI9i9D-sL3w-vhj6L0GQ,6192
|
|
@@ -128,32 +128,32 @@ firefighter/firefighter/templates/admin/base.html,sha256=JZbBsYmdr77PMeMMGHss1lY
|
|
|
128
128
|
firefighter/firefighter/templates/admin/login.html,sha256=EY9AvQe8Y9GNQAAMr9g9Wl1hBfbYC-hLIDzY0rR5SAc,536
|
|
129
129
|
firefighter/firefighter/templates/admin/send_message_conversation.html,sha256=LavOB38P3GFcDzzzdsvUhwMr5jzE4H1wyFTGITucAmE,2058
|
|
130
130
|
firefighter/incidents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
131
|
-
firefighter/incidents/admin.py,sha256=
|
|
131
|
+
firefighter/incidents/admin.py,sha256=ZbGmAkR9xCIBvS2h18WaV21z4pNc516P98Z4JFBF9rk,22018
|
|
132
132
|
firefighter/incidents/apps.py,sha256=GySoDZsz-BH-nsIZWTOd0H1hgL9s9il1BEuLC4gKTXs,378
|
|
133
133
|
firefighter/incidents/enums.py,sha256=qRVpRvcCXEZ8xF6FTXmAtZjDxCj06hLDgEZlak6ket4,937
|
|
134
|
-
firefighter/incidents/factories.py,sha256=
|
|
135
|
-
firefighter/incidents/menus.py,sha256=
|
|
134
|
+
firefighter/incidents/factories.py,sha256=EXrJ83H28QrD7J0SpzmO8rq2RgkQ8iRj8hmil4QD0Rs,3723
|
|
135
|
+
firefighter/incidents/menus.py,sha256=pJVnLsxmXfltlNlfg5HeeWEYPDe2nIVc0F2IGNT4dWI,4140
|
|
136
136
|
firefighter/incidents/signals.py,sha256=hUlPVVKSi9zuL4gz_Sa-HrDleYCASeMqKqA-kkHCaDQ,2128
|
|
137
|
-
firefighter/incidents/tables.py,sha256=
|
|
138
|
-
firefighter/incidents/urls.py,sha256=
|
|
137
|
+
firefighter/incidents/tables.py,sha256=00IRFri58YdO18g0C5yeiy0ESS9Qem5-UVLvijbrwf4,3392
|
|
138
|
+
firefighter/incidents/urls.py,sha256=21D1FNlqZPqT40T0bPaZWX0gyQgPR-38ZMFCRADlUjo,2129
|
|
139
139
|
firefighter/incidents/forms/__init__.py,sha256=OU0r5eZc2A0UJNsL83n8AI5EvwUvg4Yx0GyPBI7R73M,111
|
|
140
|
-
firefighter/incidents/forms/close_incident.py,sha256=
|
|
141
|
-
firefighter/incidents/forms/create_incident.py,sha256=
|
|
140
|
+
firefighter/incidents/forms/close_incident.py,sha256=wyLIlNXx6eU183SkR8H--k9YEOVehOWMecY82Bc2PmM,965
|
|
141
|
+
firefighter/incidents/forms/create_incident.py,sha256=cm5EWIvkJ1BZ-JfRJrh4TAE2wYYLV694gQ3MRIkcrGQ,2764
|
|
142
142
|
firefighter/incidents/forms/edit.py,sha256=2rQkiKak-vac-K3cIsqlGv4R5nhI7JLxw3DhFMXbWms,956
|
|
143
143
|
firefighter/incidents/forms/select_impact.py,sha256=jLbzVj4UeUGwOYYa5P92PXkEu1J_6H43UATZYzDgSLY,4630
|
|
144
144
|
firefighter/incidents/forms/update_key_events.py,sha256=1Xmnxe5OgZqLFS2HmMzQm3VGFPQipsdrLgKSwdh-fKc,4441
|
|
145
145
|
firefighter/incidents/forms/update_roles.py,sha256=Q26UPfwAj-8N23RNZLQkvmHGnS1_j_X5KQWjJmPjMKY,3635
|
|
146
|
-
firefighter/incidents/forms/update_status.py,sha256=
|
|
146
|
+
firefighter/incidents/forms/update_status.py,sha256=f84X3mZWx60aFYa4z9zlI6oXWLwAi83pqNm9ODOaeK8,1059
|
|
147
147
|
firefighter/incidents/forms/utils.py,sha256=g2azRXQE4GwBNvq47z_Q51yKcGYSBzFyITTDkLlC_Gk,3651
|
|
148
148
|
firefighter/incidents/migrations/0001_initial_oss.py,sha256=OCrPbxf90h3NW9xolGGcsAryHKptD1TtKj5FucjBjg8,60311
|
|
149
149
|
firefighter/incidents/migrations/0002_alter_severity_name_alter_user_password_featureteam.py,sha256=YfIJhw_-Yqm8qrkbp01461bkcUr7v5Zy90oHjkY3bSA,1113
|
|
150
150
|
firefighter/incidents/migrations/0003_delete_featureteam.py,sha256=kH5UUSx3k5DtjR_goDxROdV0htCC2JZfBGwJpn-dEQs,336
|
|
151
151
|
firefighter/incidents/migrations/0004_incidentupdate_environment.py,sha256=BoIuavjeUT6sdUDOwqJoqARUY0P4HW54erGHeWGYq4g,691
|
|
152
|
-
firefighter/incidents/migrations/0005_enable_from_p1_to_p5_priority.py,sha256=
|
|
152
|
+
firefighter/incidents/migrations/0005_enable_from_p1_to_p5_priority.py,sha256=w8Vv_jCfsCs6D4WMR5rodgyLVJrqh2Z33ddWeCJRu0Q,909
|
|
153
153
|
firefighter/incidents/migrations/0006_update_group_names.py,sha256=RHWre_VrnBmloFaqfoKA3TQtF8J2k5w1vzTEfGW81SQ,3172
|
|
154
154
|
firefighter/incidents/migrations/0007_update_component_name.py,sha256=Al9k5Xx2_ea4u20MIp2blTErdv7jkGDYCLhGJ3P-gdw,6555
|
|
155
155
|
firefighter/incidents/migrations/0008_impact_level.py,sha256=tjSzEMTa1hDB4JFola1Z_Zs-zWV6kzcWmIK8OaU_v7Q,9702
|
|
156
|
-
firefighter/incidents/migrations/0009_update_sla.py,sha256=
|
|
156
|
+
firefighter/incidents/migrations/0009_update_sla.py,sha256=LZoH8QdwZkXH-OqPekRCkTLScyDNMlctMmDnlee8rWo,895
|
|
157
157
|
firefighter/incidents/migrations/0010_update_components.py,sha256=IwAj3axIXM95DrQcAZ8NBe-3GgL4NPrZqyBMdVqA8Lo,4301
|
|
158
158
|
firefighter/incidents/migrations/0011_update_incidents.py,sha256=tV4MA5ZJcqiRPteOLxJNZuhj7q6ncWXjAklm_9IzLbo,3190
|
|
159
159
|
firefighter/incidents/migrations/0012_alter_impactlevel.py,sha256=krszrYoJ_vkYW5RdrgnT-vIIoCa4HC0SPGUtvZ4lMzs,1136
|
|
@@ -163,18 +163,26 @@ firefighter/incidents/migrations/0015_update_impact_level.py,sha256=OQVTVrWvQ1or
|
|
|
163
163
|
firefighter/incidents/migrations/0016_update_business_incidents_and_level.py,sha256=O5AL9twmjstSw44ndJ2-Og6dpKreReXVw_brpQb-t0w,3600
|
|
164
164
|
firefighter/incidents/migrations/0017_reorder_impact_types.py,sha256=7NN2KjcDRHNInXyEh8YKZli2LWT_i0UHXBbI21dXB6w,877
|
|
165
165
|
firefighter/incidents/migrations/0018_update_impactlevel_names.py,sha256=E37png_LiXABzuXk-vmxTgikw8YmULODkiytE2mkxT0,2227
|
|
166
|
+
firefighter/incidents/migrations/0019_set_security_components_private.py,sha256=hgQX2Yc7WIIdZVciQfjtQrXWYr1PpyFRc26vqBReDoA,2334
|
|
167
|
+
firefighter/incidents/migrations/0020_create_incident_category_model.py,sha256=3Ca4bCg4g2pI6dXLisW4-0f6Y6jZiuL3i5-DOUB8yA8,2297
|
|
168
|
+
firefighter/incidents/migrations/0021_copy_component_data_to_incident_category.py,sha256=vQKzv00CN2JuSnsCBE2wgwcFobuBGuCwoKVFfTi45zM,2135
|
|
169
|
+
firefighter/incidents/migrations/0022_add_incident_category_fields.py,sha256=PvzkrGSA4MBDS2e2lKXuZlY9GbxZX0SUsvqZ6H6sDNc,1004
|
|
170
|
+
firefighter/incidents/migrations/0023_populate_incident_category_references.py,sha256=porsF2OcyqNQ5NGBprwTLvG2zLXlgg2X-NrG1BycXas,2413
|
|
171
|
+
firefighter/incidents/migrations/0024_remove_component_fields_and_model.py,sha256=5CWUAXcezgC2QaLyWblEqgwSov_IJ19la3akn5ZDhJc,668
|
|
172
|
+
firefighter/incidents/migrations/0025_make_incident_category_required.py,sha256=UmfZ0Vh56dADv-YbUPAOKmSlzlre0qyROf9o84x7xo0,706
|
|
173
|
+
firefighter/incidents/migrations/0026_alter_incidentcategory_options_and_more.py,sha256=kitqppqhUlSiG3OIBZ87IECsR9Y0yCulYEtolFNYyS8,1116
|
|
166
174
|
firefighter/incidents/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
|
-
firefighter/incidents/models/__init__.py,sha256=
|
|
168
|
-
firefighter/incidents/models/component.py,sha256=7GyXKNFk1MZns6RUGLpkNw5u6He7H9N1LexzXbG4sBM,7445
|
|
175
|
+
firefighter/incidents/models/__init__.py,sha256=FLVyBwIdyxLdgSvXRAKC3fry9YwwqlqhitTIuG0vWrk,877
|
|
169
176
|
firefighter/incidents/models/environment.py,sha256=51txwua3dCrWZ1iSG3ZA8rbDn9c00pyMAZujl9gwE5c,827
|
|
170
|
-
firefighter/incidents/models/group.py,sha256=
|
|
177
|
+
firefighter/incidents/models/group.py,sha256=VrVL315VFUvKW69AZuRUBg1h0jZJvn8zWeMxMOWec1Y,700
|
|
171
178
|
firefighter/incidents/models/impact.py,sha256=URoMsQBJQnyfaNRpVl1o4A1IllM7dg94sd6tf5Ssr-k,4868
|
|
172
|
-
firefighter/incidents/models/incident.py,sha256=
|
|
179
|
+
firefighter/incidents/models/incident.py,sha256=7L3jDxWgjHGjaZ7Cmtn8_KkYFbAg6qKx3Mjghky9Ldk,26280
|
|
180
|
+
firefighter/incidents/models/incident_category.py,sha256=g4OHv_XQhWcH6dvkqkyCgjlruo_1eih_CdtAPgPhaW4,7744
|
|
173
181
|
firefighter/incidents/models/incident_cost.py,sha256=juwOfJKRaNQpOHkRUCHShDDba0FU98YjRPkU4I0ofAU,1346
|
|
174
182
|
firefighter/incidents/models/incident_cost_type.py,sha256=wm8diry_VySJzIjC9M3Yavv2tYbvJgpN9UDb2gFRuH4,845
|
|
175
183
|
firefighter/incidents/models/incident_membership.py,sha256=vvvBvYPxNlM98KdF81cMrDif8_Wl5TqqNkmf_z9lZO8,1745
|
|
176
184
|
firefighter/incidents/models/incident_role_type.py,sha256=YxtQmsmZQRVxa_pSVe-lIVEoZN5k56cR7o8soWCcFng,2104
|
|
177
|
-
firefighter/incidents/models/incident_update.py,sha256=
|
|
185
|
+
firefighter/incidents/models/incident_update.py,sha256=lCslA0Bz7qI9qORr0-Wir6yWzp0AeuCKsYHhLyKKukQ,4612
|
|
178
186
|
firefighter/incidents/models/metric_type.py,sha256=nmc7LANTMjwQmm6LCfLhv4aF7ClEBV2L4PAu1wGfV3w,2981
|
|
179
187
|
firefighter/incidents/models/milestone_type.py,sha256=SToXfQncNkGWLs4xZDNtT0lM4lj-9Pj9mZvr4JI85Fs,1827
|
|
180
188
|
firefighter/incidents/models/priority.py,sha256=5bWsuurbE6TFtMczgCBX6uYkb-nBdTC2ABV-d7b9iw0,2199
|
|
@@ -216,9 +224,9 @@ firefighter/incidents/templates/layouts/partials/created_at_help.html,sha256=HVS
|
|
|
216
224
|
firefighter/incidents/templates/layouts/partials/environment_pill.html,sha256=PoEWgUn3r-IKGgf-J68VW3UegDuaH1sYASFT3dcbEtY,383
|
|
217
225
|
firefighter/incidents/templates/layouts/partials/footer.html,sha256=4poLvnggOYPZFoOF1S8giSaj3A8xTDGAqfNhclKsedA,1490
|
|
218
226
|
firefighter/incidents/templates/layouts/partials/header.html,sha256=OMef96AQGSklh9LWR6uxEwNjV8TkWI4BtnVQ46-pqsA,4849
|
|
219
|
-
firefighter/incidents/templates/layouts/partials/incident_card.html,sha256=
|
|
227
|
+
firefighter/incidents/templates/layouts/partials/incident_card.html,sha256=0QC3CAEoDiA6LUJ0vSZIXVQ8TypszssWe9gZ8ev0UNk,1927
|
|
220
228
|
firefighter/incidents/templates/layouts/partials/incident_metrics.html,sha256=tHFjeWtwEDZtXlTHdnaHk9_ajl2rOAtEokVQQAV66rQ,1445
|
|
221
|
-
firefighter/incidents/templates/layouts/partials/incident_timeline.html,sha256=
|
|
229
|
+
firefighter/incidents/templates/layouts/partials/incident_timeline.html,sha256=_RrqSUo7LT8Od_ggAiHYOndlyf620kmGjVD4eapWRoY,7097
|
|
222
230
|
firefighter/incidents/templates/layouts/partials/incident_update_key_events_view.html,sha256=LXmElIIxAfDnk4q93VeipGashJJKOn5sLuR0UfVq6V0,422
|
|
223
231
|
firefighter/incidents/templates/layouts/partials/incident_update_key_events_view_modal.html,sha256=MOYicsn3L3KMUhPkpnvvw2Q28lBv0TbclLQi2L7OEiQ,886
|
|
224
232
|
firefighter/incidents/templates/layouts/partials/partial_table_list_paginated.html,sha256=O4VGlObu4gBXx0tid-K04XMnJeKXsGBfywu4IXdVxqM,6411
|
|
@@ -228,12 +236,12 @@ firefighter/incidents/templates/layouts/partials/status_pill.html,sha256=D9V8bnO
|
|
|
228
236
|
firefighter/incidents/templates/layouts/partials/table.html,sha256=eZE4kh0nQwGik6qc7A0O_jHyZcg32uzHc1pkjJRt6hw,1567
|
|
229
237
|
firefighter/incidents/templates/layouts/partials/user_card.html,sha256=LgYHSpqC0BAhVENMSmLpow8jlPnh5uRvHzooJlJna6w,802
|
|
230
238
|
firefighter/incidents/templates/layouts/partials/user_tooltip.html,sha256=KkVPpoODXIzrm6iItTg5RQphBGruQw4dFdOgAuGRt1E,562
|
|
231
|
-
firefighter/incidents/templates/pages/component_detail.html,sha256=WLO9zg8zDCUtINOHK9xP5dKd5WaB8UWT6JNjLjYSQKs,5277
|
|
232
|
-
firefighter/incidents/templates/pages/component_list.html,sha256=WbkLGozNbijTk_5iklOS5Hftlc-JHBpkSVL2s1FgUgk,1719
|
|
233
239
|
firefighter/incidents/templates/pages/dashboard.html,sha256=jGfTCTdyLt3fWtX66HVG1bNgpffV4J7jagVgksCGsSE,1743
|
|
234
240
|
firefighter/incidents/templates/pages/docs_metrics.html,sha256=q10CCPwjujuj9_h7Mj4-NgP6BMt4TJ6Z3D20W9qZbaQ,3744
|
|
241
|
+
firefighter/incidents/templates/pages/incident_category_detail.html,sha256=65vhQ3l3cWlLUYilfKHPuMn7lEfRJFjokiOeYUpeTTY,5425
|
|
242
|
+
firefighter/incidents/templates/pages/incident_category_list.html,sha256=gXLPk9N7R585xqmA6JpL06J7hsxAXQvnsShesK2HR9o,1731
|
|
235
243
|
firefighter/incidents/templates/pages/incident_create.html,sha256=syDS8EqmdcCf6z2dJox5gSPTOsyNdq0jFiDdzVc_vmU,2280
|
|
236
|
-
firefighter/incidents/templates/pages/incident_detail.html,sha256=
|
|
244
|
+
firefighter/incidents/templates/pages/incident_detail.html,sha256=HhwpMg1nAaUqbYDi2RrgK5IkPhiKzHKcoSmk98O-rng,15058
|
|
237
245
|
firefighter/incidents/templates/pages/incident_list.html,sha256=IWTZyuIeG1RVCZGNLQ_N3Jg7a_Ush6YbQXWUy0xVuV8,2339
|
|
238
246
|
firefighter/incidents/templates/pages/incident_role_types_detail.html,sha256=LVoFbW9rrP4Yln_Ld-Jwe1JvhhvgwpxZgpdNzbrLWsA,4099
|
|
239
247
|
firefighter/incidents/templates/pages/incident_role_types_list.html,sha256=SRBhDIfne-bX4C-EhYqyCktIksR4Rd5GPMkYfE6El1o,1556
|
|
@@ -245,20 +253,20 @@ firefighter/incidents/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
245
253
|
firefighter/incidents/views/date_filter.py,sha256=fUhTjkBulMokI5tAHuqNDVv1dyspjmw3O2vzkkhqbUs,5648
|
|
246
254
|
firefighter/incidents/views/date_utils.py,sha256=tiRTlh7PmRv4eAH0asiSX3Gn7ajsal9egm4S1d7s3_s,5759
|
|
247
255
|
firefighter/incidents/views/errors.py,sha256=yDuH0YOdGf-voVNEC51yR9Ie3OU-az7g2EqWs_uV1Kk,7855
|
|
248
|
-
firefighter/incidents/views/reports.py,sha256=
|
|
249
|
-
firefighter/incidents/views/views.py,sha256
|
|
256
|
+
firefighter/incidents/views/reports.py,sha256=9suCtnyZASHnHAH9Rlb2DPOso8esSf14XPP8emgL-R4,20961
|
|
257
|
+
firefighter/incidents/views/views.py,sha256=-z-cfYJ8lIwORAkAxXRMCAg34RmwcPO3l0-VuDpEGyA,10543
|
|
250
258
|
firefighter/incidents/views/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
251
|
-
firefighter/incidents/views/components/details.py,sha256=
|
|
252
|
-
firefighter/incidents/views/components/list.py,sha256=
|
|
259
|
+
firefighter/incidents/views/components/details.py,sha256=gFEezmL1TcVYnM_ryLNNMaynuIdjYV31Qzx_GfzrQiA,1040
|
|
260
|
+
firefighter/incidents/views/components/list.py,sha256=u8HfXetmdL59h_4AZIhiHmKcmrPRZXgekPfnucB4Rek,2207
|
|
253
261
|
firefighter/incidents/views/docs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
254
262
|
firefighter/incidents/views/docs/metrics.py,sha256=n2-chgxTokOqCx-W5YZRHK3pYmzvz0b_RF6s1de2Fcw,1713
|
|
255
263
|
firefighter/incidents/views/docs/role_types.py,sha256=88dGBAL7NMC24lyqLDN0jGnh5-ILRI5afL2Wig7LrFs,1122
|
|
256
264
|
firefighter/incidents/views/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
257
|
-
firefighter/incidents/views/users/details.py,sha256=
|
|
265
|
+
firefighter/incidents/views/users/details.py,sha256=xqDUEMorplAdSJNQ2vcNzntKKn6UsMDb_dXjVBN2GeY,1853
|
|
258
266
|
firefighter/jira_app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
259
267
|
firefighter/jira_app/admin.py,sha256=YywHfi1dlpyyW8XPYvjtOW3fbTZGm5bKXvHbDkr0D_8,702
|
|
260
268
|
firefighter/jira_app/apps.py,sha256=W6iM_e2X-dQ4YSeDPuFPM4wp-zIgpWsEiehtng0fk48,348
|
|
261
|
-
firefighter/jira_app/client.py,sha256=
|
|
269
|
+
firefighter/jira_app/client.py,sha256=pf0uqs6ccLKy0wCEIcP9FtKrsgTRkpipA9J6Mkj9p2I,16140
|
|
262
270
|
firefighter/jira_app/models.py,sha256=m-ay74zeI9zMyKuTBfN7W8DPDc9zPmiDESC8mnGBjR4,1741
|
|
263
271
|
firefighter/jira_app/types.py,sha256=Ukak1U1EhcH2jQPN-UoEL6AMZ-kzPsQ8c7FUr7GmahE,956
|
|
264
272
|
firefighter/jira_app/utils.py,sha256=3xuzr8viZCBm6j2J9oFzA4bUvVW8TN1DOdlpbruJ_TE,3443
|
|
@@ -267,7 +275,7 @@ firefighter/jira_app/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
267
275
|
firefighter/jira_app/tasks/__init__.py,sha256=XLCPkolM6LwIUGv0MNbk_0lCuBHyzgRFHsE3vTRD5ds,86
|
|
268
276
|
firefighter/jira_app/tasks/sync_users_jira.py,sha256=sSSLsVCdzkPNRS6Gt8j0YwCTuoRqkJAJLxDBu7IElmM,1437
|
|
269
277
|
firefighter/logging/__init__.py,sha256=SSTapLdwQsMkBy8FDFOjLkzJlutfT152mmPEGErirK4,60
|
|
270
|
-
firefighter/logging/custom_json_formatter.py,sha256=
|
|
278
|
+
firefighter/logging/custom_json_formatter.py,sha256=dckOtllNTfeDLc1J4FWJ-_PVeT_CqfQIyTs9FKfZsqE,5601
|
|
271
279
|
firefighter/logging/pretty_formatter.py,sha256=6FxNVpQczcVhmLbLCz6HWxOQOvbqgH12-y8t1d7drfs,2411
|
|
272
280
|
firefighter/pagerduty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
273
281
|
firefighter/pagerduty/admin.py,sha256=PmC227877OM-dq86953aQppu8TMWPnCZy4xJw5NST6E,3216
|
|
@@ -287,7 +295,7 @@ firefighter/pagerduty/tasks/__init__.py,sha256=7OtGthF6OX0Dmbe9U81Gk8h7A0dehfsJY
|
|
|
287
295
|
firefighter/pagerduty/tasks/fetch_oncall.py,sha256=knoyHbBLUSrBsrWdv8UODPlByOOvqW5a5hInRa7-lGI,3952
|
|
288
296
|
firefighter/pagerduty/tasks/fetch_services.py,sha256=GD3cCZtIBmI3mnRJnb4HdWeJwIm1X081gTIE0zAZvks,1268
|
|
289
297
|
firefighter/pagerduty/tasks/fetch_users.py,sha256=wPFV9xR2xj3pNJlHPjM9BlX9I6E8hh7wfO29bH-Jz0k,2489
|
|
290
|
-
firefighter/pagerduty/tasks/trigger_oncall.py,sha256=
|
|
298
|
+
firefighter/pagerduty/tasks/trigger_oncall.py,sha256=nwjqHZOa2oYqtZvnaIERPAB-MdoZ7RoYcckfGG-pzDg,3414
|
|
291
299
|
firefighter/pagerduty/templates/pages/oncall_list.html,sha256=fDgQnST-l5-CiIScQLAioT_ewb7Gs6yW0BWo4T_EDbE,4388
|
|
292
300
|
firefighter/pagerduty/templates/pages/oncall_trigger.html,sha256=Un6BgHp8r52cCbqH8FJLI6criaHpzu6BtjJq10kJg4w,568
|
|
293
301
|
firefighter/pagerduty/templates/partials/trigger_oncall_form_view.html,sha256=m3uIodbv3U76QGcGq5ijCQYwe-PvBY2ISXnEMksdlB4,450
|
|
@@ -296,63 +304,69 @@ firefighter/pagerduty/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
296
304
|
firefighter/pagerduty/views/oncall_list.py,sha256=o8h0ln7YsYcJp_N8DePzIBO2NMc2bJWCFLfLXWQJA9s,1086
|
|
297
305
|
firefighter/pagerduty/views/oncall_trigger.py,sha256=LYHpWyEaR6O8NazmsTl5ydtw1XHynUfaTB1IU429eZ8,2526
|
|
298
306
|
firefighter/raid/__init__.py,sha256=nMNmvHCSkyLQsdhTow7myMU62vXk1e755gUntVfFFlY,154
|
|
299
|
-
firefighter/raid/admin.py,sha256=
|
|
307
|
+
firefighter/raid/admin.py,sha256=WhIHaRAv7JPp2NH27w7_0JfvGHrvoyRJhYr3_WwedrA,1117
|
|
300
308
|
firefighter/raid/apps.py,sha256=BUkaZSu45Ghdpx1XnE3DaFD4SC2SeUtSDZOTYynte5k,1655
|
|
301
|
-
firefighter/raid/client.py,sha256=
|
|
302
|
-
firefighter/raid/forms.py,sha256=
|
|
309
|
+
firefighter/raid/client.py,sha256=zzEtu4hOyn0XocMlmGrwgWUE7E4CGNm8s9CgJ-K1QTk,8108
|
|
310
|
+
firefighter/raid/forms.py,sha256=zjbVqsYXuPRWapTCX0SbVBD3VmqbYE-1_FUlf0Y_tsM,17282
|
|
303
311
|
firefighter/raid/messages.py,sha256=e75kwi0hCe5ChwU4t-_6Q3Rcy22MLLdVSsYyjvG2SCM,5542
|
|
304
|
-
firefighter/raid/models.py,sha256=
|
|
312
|
+
firefighter/raid/models.py,sha256=29Smci739K1ZdcMu7uXYvoVEhgDpwLQoCzBbc5wvwhs,2211
|
|
305
313
|
firefighter/raid/resources.py,sha256=39GhITs3OAWA1eSPZme-rLd818kuz7gwYzdN38zNz8Y,436
|
|
306
|
-
firefighter/raid/serializers.py,sha256=
|
|
307
|
-
firefighter/raid/service.py,sha256=
|
|
314
|
+
firefighter/raid/serializers.py,sha256=EYsah8qWqzy9WENIyFJ1LCNJ4yO2OrxSyXYFnsL8J04,11479
|
|
315
|
+
firefighter/raid/service.py,sha256=rxRjEpA5wg4JRe4UrGW-y8C8quHvGlJzQ0U8rdy-DyM,8490
|
|
308
316
|
firefighter/raid/types.py,sha256=0lFy_Wl3Ekyy_sxTHPRxMn3kjEJVWCTPjmefDlrPqMQ,438
|
|
309
317
|
firefighter/raid/urls.py,sha256=oESkDY2tfZcnPGUgULqixvbV3Z7YsZfeI10RX3A5tZY,924
|
|
310
|
-
firefighter/raid/utils.py,sha256=
|
|
318
|
+
firefighter/raid/utils.py,sha256=OhsuFb46lokVxjyfeBFLMcMIGzjkTrrdd6DCXUJym0E,1111
|
|
311
319
|
firefighter/raid/migrations/0001_initial_oss.py,sha256=oZQ44dHboLeHbvVyziHX_hhdis8H_Buv2W3jHiDzQhA,6259
|
|
312
320
|
firefighter/raid/migrations/0002_featureteam_remove_qualifierrotation_jira_user_and_more.py,sha256=1UkwuNqqjtRJ_xlgNMs9qn2ryLcssQN06ZBCL296CWw,1034
|
|
321
|
+
firefighter/raid/migrations/0003_delete_raidarea.py,sha256=M_XkKCu73ib2H09co2L-ssLQakJJFNOfqJpKrzOYP2Y,332
|
|
313
322
|
firefighter/raid/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
314
323
|
firefighter/raid/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
315
|
-
firefighter/raid/signals/incident_created.py,sha256=
|
|
324
|
+
firefighter/raid/signals/incident_created.py,sha256=s4PNNrXDmhAw_3NnDQenHbQl9WPMmN_OmYAGq7tueVk,3908
|
|
316
325
|
firefighter/raid/signals/incident_updated.py,sha256=cLiqgCIKjGZpvkb7w3ASDtJ8tWP4agFpmgfmDnT3xOs,1330
|
|
317
326
|
firefighter/raid/tasks/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
|
|
318
|
-
firefighter/raid/views/__init__.py,sha256=
|
|
319
|
-
firefighter/raid/views/open_normal.py,sha256=
|
|
327
|
+
firefighter/raid/views/__init__.py,sha256=noK-M1X4L46OMAp6S29jqajovzL6sIMSnIBv5l9vxIM,5174
|
|
328
|
+
firefighter/raid/views/open_normal.py,sha256=g8ajo-_bXxL7suaKW2HYbLQuh6DZPYdeNwYl9tMDV-k,4681
|
|
320
329
|
firefighter/slack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
321
|
-
firefighter/slack/admin.py,sha256=
|
|
330
|
+
firefighter/slack/admin.py,sha256=pNJbA-szxUUrghxv_Z0BNezu6lULDzFcOu_K5i4m7Cs,13963
|
|
322
331
|
firefighter/slack/apps.py,sha256=gR0zWTtqT58tjPayBX22ZSzMkLiNpmoOvLShNvhJA6Q,664
|
|
323
332
|
firefighter/slack/factories.py,sha256=tnrUTbtgehCuBr24MtTyJ3uezKC6gJbOdHuYZ5JBoyU,3886
|
|
324
|
-
firefighter/slack/rules.py,sha256=
|
|
333
|
+
firefighter/slack/rules.py,sha256=nt60Uwb_bTEZpLbUzdd9nqGRjkmuKxqZudm1mqEaSk8,1647
|
|
325
334
|
firefighter/slack/slack_app.py,sha256=mvaH0hPFaNIUxEB7J0fy6y-PNPGsdPqjXFVmpTQ_hCo,4201
|
|
326
335
|
firefighter/slack/slack_incident_context.py,sha256=PjE7-w-pGFyV4faw8EMsEFp4RG_T251RhofmqrsDG7Q,7277
|
|
327
336
|
firefighter/slack/slack_templating.py,sha256=rWe8m1n648wizw08U_vLz8daRnp4zmkcWRqocIBpQj4,3841
|
|
328
337
|
firefighter/slack/urls.py,sha256=3HKbEPcjV-XzFvGFBS3FWsAOshp33hssOxRAmSaBIgE,247
|
|
329
|
-
firefighter/slack/utils.py,sha256=
|
|
338
|
+
firefighter/slack/utils.py,sha256=wsSQs-WnV2WybvQixfYputcVdzEjr7eFsGZxbrUJm8s,4095
|
|
330
339
|
firefighter/slack/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
331
340
|
firefighter/slack/forms/sos_form.py,sha256=v544RMMzUjVgInSaZh_75PmbZf0FIKy4fcjdlV78pCE,257
|
|
332
341
|
firefighter/slack/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
333
342
|
firefighter/slack/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
334
343
|
firefighter/slack/management/commands/generate_manifest.py,sha256=zFWHAC7ioozcDdhJ5KrLU4JNhULdtYjBUJTtclgBgSo,6911
|
|
344
|
+
firefighter/slack/management/commands/switch_test_users.py,sha256=2KTSvCBxsEvZa61J8p0r3huPNhwuytcj2J7IawwZWpQ,11064
|
|
335
345
|
firefighter/slack/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
336
346
|
firefighter/slack/messages/base.py,sha256=biH-YEAaldJ-OLHEs5ZjW-gtUYUbjOqxrAEflqV2XS0,4593
|
|
337
|
-
firefighter/slack/messages/slack_messages.py,sha256=
|
|
347
|
+
firefighter/slack/messages/slack_messages.py,sha256=nN7lF81VqtkxFLOaWag3oNg-9FVdZyuuKQihhbR4z8g,33137
|
|
338
348
|
firefighter/slack/migrations/0001_initial_oss.py,sha256=XmTPgq7zCME2xDwzRFoVi4OegSIG9eSKoyTNoW05Qtg,12933
|
|
339
349
|
firefighter/slack/migrations/0002_usergroup_tag.py,sha256=098tmGA81mT-R2uhb6uQfZ7gKiRG9bFhEwQ8rrp4SKM,583
|
|
340
350
|
firefighter/slack/migrations/0003_alter_usergroup_tag.py,sha256=ncH3KUWEPZHlbdcAtOJ0KGt5H6EX-cKspTGU3osrAhE,591
|
|
341
351
|
firefighter/slack/migrations/0004_alter_usergroup_components.py,sha256=uCp1bhjcHRHbxlc_oewY__r4FY7eRHcoLSltJWgJ5x0,703
|
|
352
|
+
firefighter/slack/migrations/0005_add_incident_categories_fields.py,sha256=KMdKfyQdxXzsbUwN3UL78N3LajZUaZAfxNcFJ6Ojo7M,1214
|
|
353
|
+
firefighter/slack/migrations/0006_copy_components_to_incident_categories.py,sha256=xUF7lLyWERux6SyIYHK2Uk1Yb4QLCGTaHW_KXVqX8n4,2478
|
|
354
|
+
firefighter/slack/migrations/0007_remove_components_fields.py,sha256=_GXmcpB3enpVBT1NZ-tGDlh16r_cM-JkH2gebrmwIOs,563
|
|
355
|
+
firefighter/slack/migrations/0008_alter_conversation_incident_categories_and_more.py,sha256=yzuAnunYvlF-wcYd7oe5h-kL5aOoawSXv_QGfmTFoBo,1034
|
|
342
356
|
firefighter/slack/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
343
357
|
firefighter/slack/models/__init__.py,sha256=MGc4yuDnVhmAiHy1-5rjaLIfVv9JOup5arRutcUs8Ak,332
|
|
344
|
-
firefighter/slack/models/conversation.py,sha256=
|
|
345
|
-
firefighter/slack/models/incident_channel.py,sha256=
|
|
358
|
+
firefighter/slack/models/conversation.py,sha256=f7a0muD0lrpf8mIhF6E2gEhNsgwZFw9jlKIQppZhNL0,16227
|
|
359
|
+
firefighter/slack/models/incident_channel.py,sha256=aN5Y_uU5HLz_D6CzFDGRrdKDcc0PDa5r-McnGO4BBAM,7576
|
|
346
360
|
firefighter/slack/models/message.py,sha256=E1MQoZJz4MsgCeqgP94_jtSrz2RYuWdoys8tz4Tfboc,4727
|
|
347
361
|
firefighter/slack/models/sos.py,sha256=Sji-7DxgsrLs7vFRJKPw7nmYyo2tIjNwoTcmdCmzEvA,1418
|
|
348
|
-
firefighter/slack/models/user.py,sha256=
|
|
349
|
-
firefighter/slack/models/user_group.py,sha256=
|
|
362
|
+
firefighter/slack/models/user.py,sha256=2Thcz5qQUsWGV9q77U5Z1b_jePZQJfE7BehwN_BlYH8,17230
|
|
363
|
+
firefighter/slack/models/user_group.py,sha256=9bedrDwDwj641oTy65ucw63oQasCyKWhBZ1xx6peMBM,7141
|
|
350
364
|
firefighter/slack/signals/__init__.py,sha256=dqMf2x-PVKgmwzH2d9uHuQ8hZ4fbu74eRd4Ij2_dNSg,186
|
|
351
365
|
firefighter/slack/signals/create_incident_conversation.py,sha256=uybiqCgPlWYq2AA2FKNkEmqhDYxDy-h0ebT-RBVpx9I,4965
|
|
352
|
-
firefighter/slack/signals/get_users.py,sha256
|
|
366
|
+
firefighter/slack/signals/get_users.py,sha256=-ZUI3ORJZJ4tLiGhVwIU-pWHoriALtOC7Kh_bFR4bGU,2287
|
|
353
367
|
firefighter/slack/signals/handle_incident_channel_done.py,sha256=pYoS_ZJf2u9seHCqahfPHz4BrfvF1vIZjE1_yy0P5mY,1726
|
|
354
368
|
firefighter/slack/signals/incident_closed.py,sha256=6QyUmTjEGVg0Wn5W-i2F8DlJuhvHjg3MxkcvAXFn9Bk,687
|
|
355
|
-
firefighter/slack/signals/incident_updated.py,sha256=
|
|
369
|
+
firefighter/slack/signals/incident_updated.py,sha256=HLJS6HaZ9fthvobUEx-x-SAtyOsO8W2_utGP9i36h5Y,8123
|
|
356
370
|
firefighter/slack/signals/postmortem_created.py,sha256=XY8_lEmBEG3VSsankpbOWdEB9dom9Ke6u8ss4-aDX6Y,1152
|
|
357
371
|
firefighter/slack/signals/roles_reminders.py,sha256=1Ef_J1PubY8WTVs2WDXz4KWa6X2Lvp1RFObIjSGpiOM,4041
|
|
358
372
|
firefighter/slack/tasks/__init__.py,sha256=28QxZkakyi9l7Ae83fQuzOS-9EaBiwuh_peUZwIxCx4,179
|
|
@@ -374,18 +388,18 @@ firefighter/slack/views/events/channel_shared.py,sha256=179KUJ8wZ1hPFXF58Neh3njJ
|
|
|
374
388
|
firefighter/slack/views/events/channel_unarchive.py,sha256=YSwMz9H5CeXXeLOUHWI6uAIS4q_oxe4fyMJ9ha0-fuk,968
|
|
375
389
|
firefighter/slack/views/events/channel_unshared.py,sha256=attB5woORof1OOECyfAbxLqL0QrUtdSVfOdEIjS4YgU,734
|
|
376
390
|
firefighter/slack/views/events/commands.py,sha256=M65X9gtjKOQtbuMuWoeJHqyskw6J0bgNUwyjydVmxLY,4827
|
|
377
|
-
firefighter/slack/views/events/home.py,sha256=
|
|
391
|
+
firefighter/slack/views/events/home.py,sha256=OnWkn9vjDXvKzzV5KdbZ0kedunDYPWrvwCYKdAR5l_8,6450
|
|
378
392
|
firefighter/slack/views/events/member_joined_channel.py,sha256=BJySHHTAuDotyRK0TXBiyqzZXsEDZGKM_4KILdXUr5g,2370
|
|
379
393
|
firefighter/slack/views/events/member_left_channel.py,sha256=49CQxYvjJwFEBnnpgrLl8WFk8ArOrj-L7GPNIlULQVw,2181
|
|
380
394
|
firefighter/slack/views/events/message.py,sha256=c8tvo0btOUu_5Bc83oiO3IQbaEyoRiUWFk118yqF90g,2068
|
|
381
395
|
firefighter/slack/views/events/message_deleted.py,sha256=tyA1-sAlG9ImcKIhqSn6EgujHmbvj4Uw2QzQ4JH4QwI,747
|
|
382
396
|
firefighter/slack/views/events/reaction_added.py,sha256=AipwBnrU5B35D97YIZCXdSW8W7-9QTIIQqUcrLTLQ5c,4241
|
|
383
397
|
firefighter/slack/views/modals/__init__.py,sha256=fXecF962l_qsp-MK8u2Y84p49cDKyFDQXlWUEKME9XE,1833
|
|
384
|
-
firefighter/slack/views/modals/close.py,sha256=
|
|
398
|
+
firefighter/slack/views/modals/close.py,sha256=TE9NXcpMk86yeV_zKxGKFeVhstdJCemghY6yVRuaGMQ,11630
|
|
385
399
|
firefighter/slack/views/modals/downgrade_workflow.py,sha256=S0y0_GYH4q7ewZUr_eA9Ly2c1FQueZzNCTiuIiWYUoY,3109
|
|
386
400
|
firefighter/slack/views/modals/edit.py,sha256=60xav4XG4KGS9KknqsQNCQjl3qQzk7OtmHiEYTQ9pUk,3861
|
|
387
401
|
firefighter/slack/views/modals/key_event_message.py,sha256=ga3-ITZyzJExwzctX-GfgnDqyQaxTfcqpqnOwY2E38M,5620
|
|
388
|
-
firefighter/slack/views/modals/open.py,sha256=
|
|
402
|
+
firefighter/slack/views/modals/open.py,sha256=VJUDVIEy0gcN7RrLOWfh621_1ElWbw1MNV6XosIcnV0,26383
|
|
389
403
|
firefighter/slack/views/modals/postmortem.py,sha256=AeEtmiam_XgCRxDmltKluNT2VN1gcuCB2VbYeeATVcA,2525
|
|
390
404
|
firefighter/slack/views/modals/select.py,sha256=Y-Ji_ALnzhYkXDBAyi497UL1Xn2vCGqXCtj8eog75Jk,3312
|
|
391
405
|
firefighter/slack/views/modals/send_sos.py,sha256=bP6HgYyDwPrIcTq7n_sQz6UQsxhYbvBDS4HjM0uRccA,4838
|
|
@@ -393,63 +407,71 @@ firefighter/slack/views/modals/status.py,sha256=C8-eJRtquSeaHe568SC7yCFef1k14m2_
|
|
|
393
407
|
firefighter/slack/views/modals/trigger_oncall.py,sha256=h_LAD5X5rjMFWiDYTEp5VB9OaF7sTvKZhNaW3KQkw5M,5065
|
|
394
408
|
firefighter/slack/views/modals/update.py,sha256=OF9sf-Z6IiviNmjN28MQNYiUbJ5tha0MdHUQyPpVFiY,2150
|
|
395
409
|
firefighter/slack/views/modals/update_roles.py,sha256=De3Gv67MZQHyNdonX3S99F5MtKF_Rj3y71gdWibxBaM,2419
|
|
396
|
-
firefighter/slack/views/modals/update_status.py,sha256=
|
|
410
|
+
firefighter/slack/views/modals/update_status.py,sha256=gxjl7axpIk1b7yQ8dbnuOQp1fNPJJ0N4tBHU6IT5UHI,4520
|
|
397
411
|
firefighter/slack/views/modals/base_modal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
398
412
|
firefighter/slack/views/modals/base_modal/base.py,sha256=7mvOxZTtegSmitSMnDvu8BK0qLUXoudUsda6CaLjdkY,12479
|
|
399
413
|
firefighter/slack/views/modals/base_modal/base_mixins.py,sha256=Xl1koQsPpHO_kKIiuSSJHJnIBmytDXseI1KcAZQZC3M,230
|
|
400
|
-
firefighter/slack/views/modals/base_modal/form_utils.py,sha256=
|
|
414
|
+
firefighter/slack/views/modals/base_modal/form_utils.py,sha256=VJlqHo_VCTImKIbHq7slIBWXpFF7agB84hRRO6F_SK8,21800
|
|
401
415
|
firefighter/slack/views/modals/base_modal/mixins.py,sha256=c7WYs0aXKXVktEMNSZ8IUQbAmustrLbRzbOoo4nyYGA,1917
|
|
402
416
|
firefighter/slack/views/modals/base_modal/modal_utils.py,sha256=1uHTlLxxeXUQttH3bHaehJwCuI6a-h04s-GzdnVA4sI,2459
|
|
403
417
|
firefighter/slack/views/modals/opening/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
404
|
-
firefighter/slack/views/modals/opening/check_current_incidents.py,sha256=
|
|
405
|
-
firefighter/slack/views/modals/opening/select_impact.py,sha256=
|
|
418
|
+
firefighter/slack/views/modals/opening/check_current_incidents.py,sha256=4hFp6nEKH55j0BBYE2Ks9KNwCPImCKQdxyweIWmW5E4,2551
|
|
419
|
+
firefighter/slack/views/modals/opening/select_impact.py,sha256=LoioV9IAGOVXzn6i60UDOKxp55qixDjQACuBalktvEk,11721
|
|
406
420
|
firefighter/slack/views/modals/opening/set_details.py,sha256=i6zQM2FYz3Z6s5AZH7lXgB2e8yjS0rDwgfMBZaiOqIw,5791
|
|
407
421
|
firefighter/slack/views/modals/opening/types.py,sha256=ETpp0DAz5OMI5h7iv62Of7yJCbI-Q4-3kKSS6msPQeY,563
|
|
408
422
|
firefighter/slack/views/modals/opening/details/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
409
|
-
firefighter/slack/views/modals/opening/details/critical.py,sha256
|
|
410
|
-
firefighter_fixtures/incidents/components.json,sha256=qVVG201I4V-9f4Z3ZB0n9C4yZOJ8Qkz9v9MNAlqT8L8,21229
|
|
423
|
+
firefighter/slack/views/modals/opening/details/critical.py,sha256=OY3IwXCoauv1ov5-HiE94sLdIJy-5xwQxvNWpAOf8qQ,2862
|
|
411
424
|
firefighter_fixtures/incidents/environments.json,sha256=5H_F08x7moMKz-H6OIUVaJGtmyKEESXLlG5cfXX0IA4,1039
|
|
412
425
|
firefighter_fixtures/incidents/groups.json,sha256=mwrpUk9tvZa0RnT1T0aec_nnMsVZhR2GXS7pmrAK0y8,2555
|
|
413
426
|
firefighter_fixtures/incidents/impact_level.json,sha256=AsrcSrkHN8E-XWlekb6Pgt8m2Sg0HASNld0TRFHwIFQ,6930
|
|
414
427
|
firefighter_fixtures/incidents/impact_type.json,sha256=WqE2rmCIzoVkhUV7zw0-TGKKeJdex_yHRtxfBTwbgAM,1174
|
|
428
|
+
firefighter_fixtures/incidents/incident_categories.json,sha256=_O42ONXXhy9_J8Y3IyFOxkO9HXgpxamDJmna6dUZ01g,21593
|
|
415
429
|
firefighter_fixtures/incidents/incident_role_type.json,sha256=74hkFOHynhAAfYIDDRBXF3AciW2F_nUpMX01DN3M3rs,1738
|
|
416
430
|
firefighter_fixtures/incidents/metric_type.json,sha256=3OuNdzSYzFXDz460C-SYulNIKKxIHrToL9e2kp09tGA,2750
|
|
417
431
|
firefighter_fixtures/incidents/milestone_type.json,sha256=oOtWOb5YM3JDc7yj0ErKPNFLN15qqyqL0m1f5fF7zuk,2317
|
|
418
432
|
firefighter_fixtures/incidents/priorities.json,sha256=RZO7F7TBuyV9tZ9Vg_Nsr0NOfoFiaDohh3xv4E8VI8U,3765
|
|
419
433
|
firefighter_fixtures/incidents/severities.json,sha256=hsaG3TT0oaRVvZVaeU6BJGddFn_gewJ4E7Lk7ufII6U,2467
|
|
420
|
-
firefighter_fixtures/raid/area.json,sha256=x6hAGNNmSD8itWsRT_FPVBEGwtjLX3y91tkMwRiHzgc,278
|
|
421
434
|
firefighter_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
422
|
-
firefighter_tests/conftest.py,sha256=
|
|
423
|
-
firefighter_tests/test_api/test_api_landbot.py,sha256=
|
|
435
|
+
firefighter_tests/conftest.py,sha256=fyVZNk4PX0ATjIjmq0BYjC9k3og26kkpC73npEgFlv8,3228
|
|
436
|
+
firefighter_tests/test_api/test_api_landbot.py,sha256=Bu7kLNtDLnefNdDx2a_qvvSDTLRWo824x97vJRQF_yg,3587
|
|
424
437
|
firefighter_tests/test_api/test_api_urls.py,sha256=Nn7Flq7dWGYJjgZK5HGdGECFMwKiDdfDYI0g09gXK-c,1936
|
|
425
438
|
firefighter_tests/test_confluence/test_confluence_utils.py,sha256=hD5M4mYwrHlil9KPARNQ5OINdRc5njfYCIdq8a6jUB8,1847
|
|
426
439
|
firefighter_tests/test_firefighter/test_firefighter_utils.py,sha256=og79bkErCBQB-xkw88J-ronT0dDEChuqlMke2ElxATo,3590
|
|
427
440
|
firefighter_tests/test_firefighter/test_logging.py,sha256=4HUH73vLDwmOCpMiXwDasMLL7F0kA1B_DxE48mqswSk,878
|
|
441
|
+
firefighter_tests/test_firefighter/test_sso.py,sha256=uX2ry0REDgXzQc9Y1BmAgI0OgbmzWoOv9H_GDyOqQmQ,5205
|
|
428
442
|
firefighter_tests/test_firefighter/test_urls.py,sha256=UMGx4oW98RoL0ceePkIIKEVjbHdFECvQuGNXYAJForQ,4839
|
|
429
|
-
firefighter_tests/test_incidents/test_incident_urls.py,sha256=
|
|
443
|
+
firefighter_tests/test_incidents/test_incident_urls.py,sha256=j663qeBkv31aMlA0sLfzBOmp0iEv9OB-xvIwzrjlSZk,3793
|
|
430
444
|
firefighter_tests/test_incidents/test_forms/test_form_select_impact.py,sha256=DTaPGrJi8mXHfh7mhvDTKYVvDCxqarILauE59UDlwqo,3210
|
|
431
|
-
firefighter_tests/test_incidents/test_forms/test_form_utils.py,sha256=
|
|
445
|
+
firefighter_tests/test_incidents/test_forms/test_form_utils.py,sha256=tisEDCacCrG5usEyPkFLCZeG9ebp9b9N27dcUtGmYA4,2467
|
|
432
446
|
firefighter_tests/test_incidents/test_forms/test_update_key_events.py,sha256=rHRGRU9iFXDdMr_kK3pMB7gyeZuMf7Dyq8bRZkddBC4,1644
|
|
433
|
-
firefighter_tests/test_incidents/test_models/
|
|
447
|
+
firefighter_tests/test_incidents/test_models/test_incident_category.py,sha256=aRoBOhb8fNjLF9CMPZ1FXM8AT51Cd80XPsY2Y3wHY_M,5701
|
|
448
|
+
firefighter_tests/test_incidents/test_models/test_incident_model.py,sha256=PciIbyA4OFjzMpAIyjnXRRFwGoVYYXzAxDNN2o4qpiw,895
|
|
434
449
|
firefighter_tests/test_incidents/test_models/test_migrations/test_incident_migrations.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
435
450
|
firefighter_tests/test_incidents/test_utils/test_date_utils.py,sha256=ogP7qOEwItL4YGI5gbQPVssOS9ilwiuZC8OrT2qngBY,6568
|
|
436
451
|
firefighter_tests/test_incidents/test_views/test_incident_detail_view.py,sha256=gKKFWIZVrD_P4p6DJjeHCW5uGXBUBVlCd95gJJYDpWQ,680
|
|
437
452
|
firefighter_tests/test_incidents/test_views/test_index_view.py,sha256=InpxbaWOFwRn4YWeIKZhj17vMymrQQf2p2LFhe2Bcdw,816
|
|
453
|
+
firefighter_tests/test_raid/test_priority_mapping.py,sha256=h8YproDbCVbsP4DTmN0xFWfdHdhIy2Jdn7X4e4kqgYs,11969
|
|
454
|
+
firefighter_tests/test_raid/test_raid_client.py,sha256=8iRBR4bKewPPbtz33hCLOHiZDTELPQBOrQb7EdNDS4c,21227
|
|
438
455
|
firefighter_tests/test_raid/test_raid_client_users.py,sha256=9uma1wBhaiCoG75XAZHqpT8oGTnqFJRMCi7a3XctNtM,3631
|
|
456
|
+
firefighter_tests/test_raid/test_raid_forms.py,sha256=iMI8oQwMVOZmcQxnoxG0UIHfUTYC7z0vBYVOwGrj-Y4,28999
|
|
457
|
+
firefighter_tests/test_raid/test_raid_models.py,sha256=nq-fVClB_P24W8WrZruOPt8wlHUVGYI7wxJR7tH6AnM,5042
|
|
458
|
+
firefighter_tests/test_raid/test_raid_serializers.py,sha256=nejl4ceBPegOcks6z6B8_7Ekg8ef18j3i7C8Y8dS8v0,20665
|
|
459
|
+
firefighter_tests/test_raid/test_raid_service.py,sha256=AqVyrRjW2tr0sfbXS4lGlJ7mcxB2ACEXAR8Bv0pXnj0,16755
|
|
439
460
|
firefighter_tests/test_raid/test_raid_transitions.py,sha256=mtmMKwukxmZSM-R619BQ3Z_2AB-qY6imvDgUF0A3_tw,4784
|
|
440
461
|
firefighter_tests/test_raid/test_raid_utils.py,sha256=i6JBwim1G-qynwxprNZekxl9K7Vis4FFvNkw3wT2jTM,1016
|
|
462
|
+
firefighter_tests/test_raid/test_raid_views.py,sha256=paAhh4k2EDlmG1ehwNhMuYIhr1okqrvM7xlkaTAo2V0,6825
|
|
441
463
|
firefighter_tests/test_slack/conftest.py,sha256=MCg04JFQ0iBeYUN_moEvvH4PVA3wE48Q6LkrIw7Bic0,2015
|
|
442
464
|
firefighter_tests/test_slack/test_slack_utils.py,sha256=9PLobMNXh3xDyFuwzcQFpKJhe4j__sIgf_WRHIpANJw,3957
|
|
443
465
|
firefighter_tests/test_slack/test_models/test_conversations.py,sha256=t3ttmgwiu7c-N55iU3XZPmrkEhvkTzJoXszJncy4Bts,793
|
|
444
466
|
firefighter_tests/test_slack/test_models/test_incident_channel.py,sha256=qWoGe9iadmK6-R8usWvjH87AHRkvhG_dHQeC3kHeJrs,17487
|
|
445
467
|
firefighter_tests/test_slack/test_models/test_slack_user.py,sha256=uzur-Rf03I5dpUTO4ZI6O1arBUrAorg1Zvgshf8M-J4,7000
|
|
446
|
-
firefighter_tests/test_slack/views/modals/test_close.py,sha256=
|
|
468
|
+
firefighter_tests/test_slack/views/modals/test_close.py,sha256=TXNt5KWiPkWvvh9FvQhDiaiOWh6W8OdxmPEpWeO7Taw,42958
|
|
447
469
|
firefighter_tests/test_slack/views/modals/test_open.py,sha256=z3lvAPOXCUSt7i_9jWYcQWGIRwRg7Z1DT6AfMOK22_s,4900
|
|
448
470
|
firefighter_tests/test_slack/views/modals/test_send_sos.py,sha256=_rE6jD-gOzcGyhlY0R9GzlGtPx65oOOguJYdENgxtLc,1289
|
|
449
471
|
firefighter_tests/test_slack/views/modals/test_status.py,sha256=oQzPfwdg2tkbo9nfkO1GfS3WydxqSC6vy1AZjZDKT30,2226
|
|
450
|
-
firefighter_tests/test_slack/views/modals/test_update_status.py,sha256=
|
|
451
|
-
firefighter_incident-0.0.
|
|
452
|
-
firefighter_incident-0.0.
|
|
453
|
-
firefighter_incident-0.0.
|
|
454
|
-
firefighter_incident-0.0.
|
|
455
|
-
firefighter_incident-0.0.
|
|
472
|
+
firefighter_tests/test_slack/views/modals/test_update_status.py,sha256=T8sjYoPmllje5aNRHXlpsjiGe_hg7y2B50nivuG_vwk,39412
|
|
473
|
+
firefighter_incident-0.0.14.dist-info/METADATA,sha256=8kEtQu-FUuMd7bXJhcVMCmSVdfXbrYKjpkCsgq6zxZc,5541
|
|
474
|
+
firefighter_incident-0.0.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
475
|
+
firefighter_incident-0.0.14.dist-info/entry_points.txt,sha256=c13meJbv7YNmYz7MipMOQwzQ5IeFOPXUBYAJ44XMQsM,61
|
|
476
|
+
firefighter_incident-0.0.14.dist-info/licenses/LICENSE,sha256=krRiGp-a9-1nH1bWpBEdxyTKLhjLmn6DMVVoIb0zF90,1087
|
|
477
|
+
firefighter_incident-0.0.14.dist-info/RECORD,,
|
firefighter_tests/conftest.py
CHANGED
|
@@ -53,13 +53,14 @@ def django_db_setup(django_db_setup: Any, django_db_blocker: DjangoDbBlocker) ->
|
|
|
53
53
|
fixtures_path_mp = impresources.files("firefighter_fixtures")
|
|
54
54
|
fixtures_path = fixtures_path_mp._paths[0] # type: ignore
|
|
55
55
|
except (ModuleNotFoundError, IndexError, AttributeError):
|
|
56
|
-
|
|
56
|
+
# Use the fixtures directory in the project root
|
|
57
|
+
fixtures_path = Path(__file__).parent.parent / "fixtures"
|
|
57
58
|
logger.info(f"Loading fixtures from {fixtures_path}")
|
|
58
59
|
|
|
59
60
|
# XXX(dugab): Make sure we load all fixtures
|
|
60
61
|
with django_db_blocker.unblock():
|
|
61
62
|
call_command("loaddata", fixtures_path / "incidents" / "groups.json")
|
|
62
|
-
call_command("loaddata", fixtures_path / "incidents" / "
|
|
63
|
+
call_command("loaddata", fixtures_path / "incidents" / "incident_categories.json")
|
|
63
64
|
call_command("loaddata", fixtures_path / "incidents" / "severities.json")
|
|
64
65
|
call_command("loaddata", fixtures_path / "incidents" / "priorities.json")
|
|
65
66
|
call_command("loaddata", fixtures_path / "incidents" / "environments.json")
|
|
@@ -70,7 +71,6 @@ def django_db_setup(django_db_setup: Any, django_db_blocker: DjangoDbBlocker) ->
|
|
|
70
71
|
call_command(
|
|
71
72
|
"loaddata", fixtures_path / "incidents" / "incident_role_type.json"
|
|
72
73
|
)
|
|
73
|
-
call_command("loaddata", fixtures_path / "raid" / "area.json")
|
|
74
74
|
django_db_blocker.restore()
|
|
75
75
|
|
|
76
76
|
|
|
@@ -80,10 +80,9 @@ def incident() -> Incident:
|
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
@pytest.fixture
|
|
83
|
-
@pytest.mark.django_db
|
|
84
83
|
def incident_saved() -> Incident:
|
|
85
84
|
incident: Incident = IncidentFactory.build()
|
|
86
|
-
incident.
|
|
85
|
+
incident.incident_category.group.save()
|
|
87
86
|
incident.created_by.save()
|
|
88
87
|
incident.save()
|
|
89
88
|
return incident
|
|
@@ -15,7 +15,7 @@ base_valid_data = {
|
|
|
15
15
|
"zoho": "https://test_url.com",
|
|
16
16
|
"platform": "FR",
|
|
17
17
|
"reporter_email": "test_email@example.com",
|
|
18
|
-
"
|
|
18
|
+
"incident_category": "Test Area",
|
|
19
19
|
"suggested_team_routing": "TSTPRJ",
|
|
20
20
|
"labels": ["testLabel1", "testLabel2"],
|
|
21
21
|
"environments": ["PRD"],
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from unittest.mock import patch
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
from django.contrib.auth.models import Group
|
|
7
|
+
|
|
8
|
+
from firefighter.firefighter.sso import link_auth_user
|
|
9
|
+
from firefighter.incidents.factories import UserFactory
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@pytest.mark.django_db
|
|
13
|
+
class TestLinkAuthUser:
|
|
14
|
+
"""Test cases for the link_auth_user function."""
|
|
15
|
+
|
|
16
|
+
def test_link_auth_user_no_roles_claim(self) -> None:
|
|
17
|
+
"""Test that function returns early when no roles in claim."""
|
|
18
|
+
user = UserFactory.create()
|
|
19
|
+
claim = {"some_other_field": "value"}
|
|
20
|
+
|
|
21
|
+
link_auth_user(user, claim)
|
|
22
|
+
|
|
23
|
+
# No changes should be made
|
|
24
|
+
assert list(user.groups.all()) == []
|
|
25
|
+
|
|
26
|
+
def test_link_auth_user_roles_not_list(self) -> None:
|
|
27
|
+
"""Test that function returns early when roles is not a list."""
|
|
28
|
+
user = UserFactory.create()
|
|
29
|
+
claim = {"roles": "not_a_list"}
|
|
30
|
+
|
|
31
|
+
link_auth_user(user, claim)
|
|
32
|
+
|
|
33
|
+
# No changes should be made
|
|
34
|
+
assert list(user.groups.all()) == []
|
|
35
|
+
|
|
36
|
+
def test_link_auth_user_with_back_office_role(self) -> None:
|
|
37
|
+
"""Test that back_office role grants staff status."""
|
|
38
|
+
user = UserFactory.create(is_staff=False)
|
|
39
|
+
claim = {"roles": ["back_office", "other_role"]}
|
|
40
|
+
|
|
41
|
+
# Create a group for testing
|
|
42
|
+
Group.objects.create(name="other_role")
|
|
43
|
+
|
|
44
|
+
link_auth_user(user, claim)
|
|
45
|
+
|
|
46
|
+
user.refresh_from_db()
|
|
47
|
+
assert user.is_staff is True
|
|
48
|
+
# back_office should be removed from group assignment
|
|
49
|
+
assert list(user.groups.values_list("name", flat=True)) == ["other_role"]
|
|
50
|
+
|
|
51
|
+
def test_link_auth_user_back_office_already_staff(self) -> None:
|
|
52
|
+
"""Test that back_office role doesn't change already staff user."""
|
|
53
|
+
user = UserFactory.create(is_staff=True)
|
|
54
|
+
claim = {"roles": ["back_office"]}
|
|
55
|
+
|
|
56
|
+
with patch.object(user, "save") as mock_save:
|
|
57
|
+
link_auth_user(user, claim)
|
|
58
|
+
# save() should not be called since user is already staff
|
|
59
|
+
mock_save.assert_not_called()
|
|
60
|
+
|
|
61
|
+
def test_link_auth_user_clears_existing_groups(self) -> None:
|
|
62
|
+
"""Test that existing groups are cleared before adding new ones."""
|
|
63
|
+
user = UserFactory.create()
|
|
64
|
+
old_group = Group.objects.create(name="old_group")
|
|
65
|
+
new_group = Group.objects.create(name="new_group")
|
|
66
|
+
|
|
67
|
+
# Add user to old group
|
|
68
|
+
user.groups.add(old_group)
|
|
69
|
+
assert old_group in user.groups.all()
|
|
70
|
+
|
|
71
|
+
claim = {"roles": ["new_group"]}
|
|
72
|
+
|
|
73
|
+
link_auth_user(user, claim)
|
|
74
|
+
|
|
75
|
+
# Old group should be removed, new group added
|
|
76
|
+
assert list(user.groups.all()) == [new_group]
|
|
77
|
+
|
|
78
|
+
def test_link_auth_user_with_existing_groups(self) -> None:
|
|
79
|
+
"""Test that multiple existing groups are added correctly."""
|
|
80
|
+
user = UserFactory.create()
|
|
81
|
+
group1 = Group.objects.create(name="group1")
|
|
82
|
+
group2 = Group.objects.create(name="group2")
|
|
83
|
+
|
|
84
|
+
claim = {"roles": ["group1", "group2"]}
|
|
85
|
+
|
|
86
|
+
link_auth_user(user, claim)
|
|
87
|
+
|
|
88
|
+
user_groups = list(user.groups.all())
|
|
89
|
+
assert group1 in user_groups
|
|
90
|
+
assert group2 in user_groups
|
|
91
|
+
assert len(user_groups) == 2
|
|
92
|
+
|
|
93
|
+
def test_link_auth_user_nonexistent_group_logs_warning(self, caplog) -> None:
|
|
94
|
+
"""Test that nonexistent groups log a warning."""
|
|
95
|
+
user = UserFactory.create()
|
|
96
|
+
claim = {"roles": ["nonexistent_group"]}
|
|
97
|
+
|
|
98
|
+
with caplog.at_level("WARNING"):
|
|
99
|
+
link_auth_user(user, claim)
|
|
100
|
+
|
|
101
|
+
assert "Group nonexistent_group from SSO does not exist" in caplog.text
|
|
102
|
+
assert list(user.groups.all()) == []
|
|
103
|
+
|
|
104
|
+
def test_link_auth_user_mixed_existing_and_nonexistent_groups(self, caplog) -> None:
|
|
105
|
+
"""Test with mix of existing and nonexistent groups."""
|
|
106
|
+
user = UserFactory.create()
|
|
107
|
+
existing_group = Group.objects.create(name="existing_group")
|
|
108
|
+
|
|
109
|
+
claim = {"roles": ["existing_group", "nonexistent_group"]}
|
|
110
|
+
|
|
111
|
+
with caplog.at_level("WARNING"):
|
|
112
|
+
link_auth_user(user, claim)
|
|
113
|
+
|
|
114
|
+
# Should add existing group and log warning for nonexistent
|
|
115
|
+
assert list(user.groups.all()) == [existing_group]
|
|
116
|
+
assert "Group nonexistent_group from SSO does not exist" in caplog.text
|
|
117
|
+
|
|
118
|
+
def test_link_auth_user_empty_roles_list(self) -> None:
|
|
119
|
+
"""Test with empty roles list."""
|
|
120
|
+
user = UserFactory.create()
|
|
121
|
+
old_group = Group.objects.create(name="old_group")
|
|
122
|
+
user.groups.add(old_group)
|
|
123
|
+
|
|
124
|
+
claim = {"roles": []}
|
|
125
|
+
|
|
126
|
+
link_auth_user(user, claim)
|
|
127
|
+
|
|
128
|
+
# Groups should be cleared
|
|
129
|
+
assert list(user.groups.all()) == []
|
|
130
|
+
|
|
131
|
+
def test_link_auth_user_back_office_with_other_roles(self) -> None:
|
|
132
|
+
"""Test back_office role with other roles in comprehensive scenario."""
|
|
133
|
+
user = UserFactory.create(is_staff=False)
|
|
134
|
+
admin_group = Group.objects.create(name="admin")
|
|
135
|
+
editor_group = Group.objects.create(name="editor")
|
|
136
|
+
|
|
137
|
+
claim = {"roles": ["back_office", "admin", "editor"]}
|
|
138
|
+
|
|
139
|
+
link_auth_user(user, claim)
|
|
140
|
+
|
|
141
|
+
user.refresh_from_db()
|
|
142
|
+
assert user.is_staff is True
|
|
143
|
+
|
|
144
|
+
user_groups = set(user.groups.all())
|
|
145
|
+
expected_groups = {admin_group, editor_group}
|
|
146
|
+
assert user_groups == expected_groups
|