firefighter-incident 0.0.32__py3-none-any.whl → 0.0.34__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.
Files changed (27) hide show
  1. firefighter/_version.py +2 -2
  2. firefighter/api/admin.py +1 -1
  3. firefighter/api/authentication.py +0 -1
  4. firefighter/confluence/service.py +0 -1
  5. firefighter/firefighter/sso.py +0 -1
  6. firefighter/incidents/forms/unified_incident.py +3 -11
  7. firefighter/incidents/models/incident_category.py +0 -1
  8. firefighter/incidents/tasks/updateoncall.py +2 -2
  9. firefighter/incidents/views/date_utils.py +0 -1
  10. firefighter/slack/admin.py +1 -2
  11. firefighter/slack/management/commands/generate_manifest.py +2 -4
  12. firefighter/slack/messages/slack_messages.py +0 -1
  13. firefighter/slack/models/conversation.py +0 -1
  14. firefighter/slack/signals/incident_updated.py +0 -1
  15. firefighter/slack/signals/postmortem_created.py +1 -4
  16. firefighter/slack/views/modals/edit.py +1 -4
  17. firefighter/slack/views/modals/open.py +3 -4
  18. firefighter/slack/views/modals/opening/check_current_incidents.py +0 -1
  19. firefighter/slack/views/modals/opening/set_details.py +0 -1
  20. firefighter/slack/views/modals/trigger_oncall.py +0 -1
  21. {firefighter_incident-0.0.32.dist-info → firefighter_incident-0.0.34.dist-info}/METADATA +1 -1
  22. {firefighter_incident-0.0.32.dist-info → firefighter_incident-0.0.34.dist-info}/RECORD +27 -27
  23. firefighter_tests/test_firefighter/test_logging.py +0 -1
  24. main.py +0 -1
  25. {firefighter_incident-0.0.32.dist-info → firefighter_incident-0.0.34.dist-info}/WHEEL +0 -0
  26. {firefighter_incident-0.0.32.dist-info → firefighter_incident-0.0.34.dist-info}/entry_points.txt +0 -0
  27. {firefighter_incident-0.0.32.dist-info → firefighter_incident-0.0.34.dist-info}/licenses/LICENSE +0 -0
firefighter/_version.py CHANGED
@@ -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.32'
32
- __version_tuple__ = version_tuple = (0, 0, 32)
31
+ __version__ = version = '0.0.34'
32
+ __version_tuple__ = version_tuple = (0, 0, 34)
33
33
 
34
34
  __commit_id__ = commit_id = None
firefighter/api/admin.py CHANGED
@@ -49,7 +49,7 @@ class APITokenAdmin(TokenAdmin):
49
49
  self,
50
50
  request: HttpRequest, # type: ignore[override]
51
51
  obj: APITokenProxy | None = None,
52
- change: bool = False, # noqa: FBT001, FBT002
52
+ change: bool = False, # noqa: FBT002
53
53
  **kwargs: Any,
54
54
  ) -> type[ModelForm[APITokenProxy]]:
55
55
  """Prefill the form with the current user."""
@@ -14,7 +14,6 @@ class BearerTokenAuthentication(TokenAuthentication):
14
14
  keyword = "Bearer"
15
15
 
16
16
  def get_model(self) -> type[Model]:
17
- # ruff: noqa: PLC0415
18
17
  from firefighter.api.models import APIToken
19
18
 
20
19
  return APIToken
@@ -20,7 +20,6 @@ logger = logging.getLogger(__name__)
20
20
 
21
21
  @cache
22
22
  def get_confluence_client() -> type[ConfluenceClient]:
23
- # ruff: noqa: PLC0415
24
23
  from firefighter.confluence.client import ConfluenceClient
25
24
 
26
25
  return ConfluenceClient
@@ -10,7 +10,6 @@ logger = logging.getLogger(__name__)
10
10
 
11
11
 
12
12
  def link_auth_user(user: User, claim: dict[str, str | list[str]]) -> None:
13
- # ruff: noqa: PLC0415
14
13
 
15
14
  # Check that roles are in the claim
16
15
  group_names = claim.get("roles")
@@ -11,12 +11,11 @@ from firefighter.incidents.forms.create_incident import CreateIncidentFormBase
11
11
  from firefighter.incidents.forms.select_impact import SelectImpactForm
12
12
  from firefighter.incidents.forms.utils import GroupedModelChoiceField
13
13
  from firefighter.incidents.models import Environment, IncidentCategory, Priority
14
- from firefighter.incidents.models.impact import LevelChoices
14
+ from firefighter.incidents.models.impact import ImpactLevel, LevelChoices
15
15
  from firefighter.incidents.models.incident import Incident
16
16
  from firefighter.incidents.signals import create_incident_conversation
17
17
 
18
18
  if TYPE_CHECKING:
19
- from firefighter.incidents.models.impact import ImpactLevel
20
19
  from firefighter.incidents.models.user import User
21
20
  from firefighter.jira_app.models import JiraUser
22
21
 
@@ -232,13 +231,9 @@ class UnifiedIncidentForm(CreateIncidentFormBase):
232
231
 
233
232
  # If it's a UUID string, fetch the ImpactLevel from database
234
233
  if isinstance(impact, str):
235
- from firefighter.incidents.models.impact import (
236
- ImpactLevel as ImpactLevelModel,
237
- )
238
-
239
234
  try:
240
- impact_obj = ImpactLevelModel.objects.get(id=impact)
241
- except ImpactLevelModel.DoesNotExist:
235
+ impact_obj = ImpactLevel.objects.get(id=impact)
236
+ except ImpactLevel.DoesNotExist:
242
237
  return False
243
238
  else:
244
239
  return impact_obj.value != LevelChoices.NONE.value
@@ -415,9 +410,6 @@ class UnifiedIncidentForm(CreateIncidentFormBase):
415
410
  creator: User creating the incident
416
411
  impacts_data: Dictionary of impact data
417
412
  """
418
- from firefighter.incidents.forms.select_impact import (
419
- SelectImpactForm,
420
- )
421
413
  from firefighter.raid.client import client as jira_client
422
414
  from firefighter.raid.forms import (
423
415
  alert_slack_new_jira_ticket,
@@ -159,7 +159,6 @@ class IncidentCategory(models.Model):
159
159
  updated_at = models.DateTimeField(auto_now=True)
160
160
 
161
161
  if TYPE_CHECKING:
162
- # ruff: noqa: PLC0415
163
162
  if settings.ENABLE_SLACK:
164
163
  from firefighter.slack.models.conversation import Conversation
165
164
  from firefighter.slack.models.user_group import UserGroup
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import logging
4
4
  from typing import TYPE_CHECKING, Any
5
5
 
6
- from celery import shared_task
6
+ from celery import Signature, shared_task
7
7
  from django.conf import settings
8
8
 
9
9
  from firefighter.slack.slack_templating import user_slack_handle_or_name
@@ -28,7 +28,7 @@ BASE_URL: str = settings.BASE_URL
28
28
  @shared_task(name="incidents.update_oncall")
29
29
  def update_oncall() -> None:
30
30
  """Fetch current on-calls and update the on-call Slack topic and Confluence page."""
31
- chain = (
31
+ chain: Signature[bool] = (
32
32
  fetch_oncalls.s() # pyright: ignore[reportUnboundVariable]
33
33
  | update_oncall_views.s()
34
34
  )
@@ -17,7 +17,6 @@ TZ = timezone.get_current_timezone()
17
17
 
18
18
  @functools.cache
19
19
  def get_ddp() -> DateDataParser:
20
- # ruff: noqa: PLC0415
21
20
  from dateparser.date import DateDataParser
22
21
 
23
22
  return DateDataParser(
@@ -234,7 +234,7 @@ class UserGroupAdmin(admin.ModelAdmin[UserGroup]):
234
234
  request: HttpRequest,
235
235
  obj: UserGroup,
236
236
  form: ModelForm[UserGroup],
237
- change: bool, # noqa: FBT001
237
+ change: bool,
238
238
  ) -> None:
239
239
  # If added, check that we have all properties, or fetch them from firefighter.slack.
240
240
  if not change and not (
@@ -374,7 +374,6 @@ def ask_key_timestamps(
374
374
  """Will send a message to the Incident conversation (if it exists) to ask for key events.
375
375
  TODO Error handling.
376
376
  """
377
- # ruff: noqa: PLC0415
378
377
  from firefighter.slack.views.modals.key_event_message import SlackMessageKeyEvents
379
378
 
380
379
  success: list[tuple[int, bool]] = []
@@ -1,7 +1,9 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import json
3
4
  from typing import TYPE_CHECKING, Any
4
5
 
6
+ import yaml
5
7
  from django.conf import settings
6
8
  from django.core.management.base import (
7
9
  BaseCommand,
@@ -191,11 +193,7 @@ def output_manifest(
191
193
  manifest: dict[str, Any], output_format: str, stdout: OutputWrapper
192
194
  ) -> None:
193
195
  if output_format == "json":
194
- import json
195
-
196
196
  stdout.write(json.dumps(manifest, indent=2, ensure_ascii=False))
197
197
 
198
198
  elif output_format == "yml":
199
- import yaml
200
-
201
199
  stdout.write(yaml.dump(manifest, allow_unicode=True))
@@ -61,7 +61,6 @@ SLACK_APP_EMOJI: str = settings.SLACK_APP_EMOJI
61
61
 
62
62
 
63
63
  def get_key_events_accessory(incident: Incident) -> dict[str, Any]:
64
- # ruff: noqa: PLC0415
65
64
  from firefighter.slack.views.modals.key_event_message import SlackMessageKeyEvents
66
65
 
67
66
  key_events_msg = Message.objects.get_or_none(
@@ -433,7 +433,6 @@ class Conversation(models.Model):
433
433
 
434
434
  @staticmethod
435
435
  def _get_message_manager() -> MessageManager:
436
- # ruff: noqa: PLC0415
437
436
  from firefighter.slack.models.message import Message
438
437
 
439
438
  return Message.objects
@@ -201,7 +201,6 @@ def incident_key_events_updated_handler(
201
201
  logger.info(f"Skipping key events update for incident {incident.id} (direct closure)")
202
202
  return
203
203
 
204
- # Everything in Slack views trigger the Slack handshake, so we delay the import
205
204
  from firefighter.slack.views.modals.key_event_message import (
206
205
  SlackMessageKeyEvents,
207
206
  )
@@ -8,6 +8,7 @@ from slack_sdk.errors import SlackApiError
8
8
 
9
9
  from firefighter.incidents.signals import postmortem_created
10
10
  from firefighter.slack.messages.slack_messages import (
11
+ SlackMessageIncidentDeclaredAnnouncement,
11
12
  SlackMessageIncidentPostMortemCreated,
12
13
  )
13
14
 
@@ -48,10 +49,6 @@ def postmortem_created_send(sender: Any, incident: Incident, **kwargs: Any) -> N
48
49
  )
49
50
 
50
51
  # Update the initial incident message with post-mortem links
51
- from firefighter.slack.messages.slack_messages import (
52
- SlackMessageIncidentDeclaredAnnouncement,
53
- )
54
-
55
52
  incident.conversation.send_message_and_save(
56
53
  SlackMessageIncidentDeclaredAnnouncement(incident)
57
54
  )
@@ -6,6 +6,7 @@ from typing import TYPE_CHECKING, Any
6
6
  from slack_sdk.models.views import View
7
7
 
8
8
  from firefighter.incidents.forms.edit import EditMetaForm
9
+ from firefighter.incidents.models import Environment
9
10
  from firefighter.slack.views.modals.base_modal.base import ModalForm
10
11
 
11
12
  if TYPE_CHECKING:
@@ -57,8 +58,6 @@ class EditMetaModal(ModalForm[EditMetaFormSlack]):
57
58
  form_class = EditMetaFormSlack
58
59
 
59
60
  def build_modal_fn(self, incident: Incident, **kwargs: Any) -> View:
60
- from firefighter.incidents.models import Environment
61
-
62
61
  # Get all environments from custom_fields, fallback to single environment
63
62
  environments_values = incident.custom_fields.get("environments", [])
64
63
  if environments_values:
@@ -90,8 +89,6 @@ class EditMetaModal(ModalForm[EditMetaFormSlack]):
90
89
  def handle_modal_fn( # type: ignore
91
90
  self, ack: Ack, body: dict[str, Any], incident: Incident, user: User
92
91
  ):
93
- from firefighter.incidents.models import Environment
94
-
95
92
  # Get current environments for initial comparison
96
93
  environments_values = incident.custom_fields.get("environments", [])
97
94
  if environments_values:
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import inspect
3
4
  import json
4
5
  import logging
5
6
  from datetime import timedelta
@@ -293,10 +294,10 @@ class OpenModal(SlackModal):
293
294
  def get_done_review_blocks(
294
295
  open_incident_context: OpeningData,
295
296
  user: User,
296
- details_form_done: bool, # noqa: FBT001
297
+ details_form_done: bool,
297
298
  details_form_class: type[CreateIncidentFormBase] | None,
298
299
  details_form: CreateIncidentFormBase | None,
299
- can_submit: bool, # noqa: FBT001
300
+ can_submit: bool,
300
301
  ) -> list[Block]:
301
302
  if not can_submit:
302
303
  return []
@@ -416,7 +417,6 @@ class OpenModal(SlackModal):
416
417
 
417
418
  # Pass impacts_data and response_type to form if it supports them (UnifiedIncidentForm)
418
419
  # Check if __init__ accepts these parameters
419
- import inspect
420
420
  init_params = inspect.signature(details_form_class.__init__).parameters
421
421
  form_kwargs: dict[str, Any] = {}
422
422
  if "impacts_data" in init_params:
@@ -631,7 +631,6 @@ class OpenModal(SlackModal):
631
631
  )
632
632
  if details_form_class:
633
633
  # Pass impacts_data and response_type to form if it supports them (UnifiedIncidentForm)
634
- import inspect
635
634
  init_params = inspect.signature(details_form_class.__init__).parameters
636
635
  form_kwargs: dict[str, Any] = {}
637
636
  if "impacts_data" in init_params:
@@ -25,7 +25,6 @@ class CheckCurrentIncidentsModal(
25
25
 
26
26
  @staticmethod
27
27
  def build_modal_fn(body: dict[str, Any], **kwargs: Any) -> View:
28
- # ruff: noqa: PLC0415
29
28
  from firefighter.slack.views.events.home import _home_incident_element
30
29
 
31
30
  # Close or back button?
@@ -138,7 +138,6 @@ class SetIncidentDetails(ModalForm[T], Generic[T]):
138
138
 
139
139
  if skip_form:
140
140
  return
141
- # ruff: noqa: PLC0415
142
141
  from firefighter.slack.views.modals.open import modal_open
143
142
 
144
143
  if "priority" in private_metadata and isinstance(
@@ -91,7 +91,6 @@ class OnCallModal(IncidentSelectableModalMixin, SlackModal):
91
91
  "view.state.values.oncall_service.select_oncall_service.selected_option.value",
92
92
  )
93
93
  # TODO Fix the dependency on PagerDuty app
94
- # ruff: noqa: PLC0415
95
94
  from firefighter.pagerduty.tasks.trigger_oncall import trigger_oncall
96
95
 
97
96
  service: PagerDutyService | None = PagerDutyService.objects.get(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: firefighter-incident
3
- Version: 0.0.32
3
+ Version: 0.0.34
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/
@@ -3,14 +3,14 @@ package.json,sha256=DN0eVgjdU1pCSRVQhqMTNXyzg75BpbxMC_eSvjpuHss,1779
3
3
  scripts/gen_credits.py,sha256=JJiuEVIi_EdQMEAVl9LxrnDyCLCowpXzNyGhBrx_oL0,6133
4
4
  scripts/hatch_build.py,sha256=8lOx5PRvaosLxDeKDyFvyg2IaS0O0QiRSrOEQquUs0Q,555
5
5
  gunicorn.conf.py,sha256=vHsTGjaKOr8FDMp6fTKYTX4AtokmPgYvvt5Mr0Q6APc,273
6
- main.py,sha256=CsbprHoOYhjCLpTJmq9Z_aRYFoFgWxoz2pDLuwm8Eqg,1558
6
+ main.py,sha256=Brj7IANCvq7zHGT7mm_VDO1_vV7OFwt6Zpt4gUwP4pM,1532
7
7
  manage.py,sha256=5ivHGD13C6nJ8QvltKsJ9T9akA5he8da70HLWaEP3k8,689
8
8
  firefighter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- firefighter/_version.py,sha256=R_6iGx2TpbHTm0_3hIB8Kl5225iMZqRsqf47DXFHa64,706
9
+ firefighter/_version.py,sha256=lALZlyVk-nrQoV2VLZzOsgzhfEll5JRUW4TJRJXnR_o,706
10
10
  firefighter/api/__init__.py,sha256=JQW0Bv6xwGqy7ioxx3h6UGMzkkJ4DntDpbvV1Ncgi8k,136
11
- firefighter/api/admin.py,sha256=x9Ysy-GiYjb0rynmFdS9g56e6n24fkN0ouGy5QD9Yrc,4629
11
+ firefighter/api/admin.py,sha256=Q6f37xwf-i0xypFx6zU7r6bYxsSvLm66naZSHUK13JM,4621
12
12
  firefighter/api/apps.py,sha256=P5uU1_gMrDfzurdMbfqw1Bnb2uNKKcMq17WBPg2sLhc,204
13
- firefighter/api/authentication.py,sha256=1OEeTF0NU54ZLgq2Vy3GxrR-7skj6HmobVp4UGPcsn0,510
13
+ firefighter/api/authentication.py,sha256=-p3WT4PWykgSm2cnhxWs2r6vRKLUFvJDLiRQi68S1NI,480
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
@@ -57,7 +57,7 @@ firefighter/confluence/apps.py,sha256=vKswBwQL7L9e2JQwvRb7xy3myyE_GRldYX78jSY3XC
57
57
  firefighter/confluence/client.py,sha256=xjSsrsGPF75JANNvam2YgiUkztuXhOcs9pMmPbb7ymk,6361
58
58
  firefighter/confluence/models.py,sha256=66RNfD-lRdixZtOo5pNW2e-LZboTRjdoH2h-R7ne-q0,9154
59
59
  firefighter/confluence/serializers.py,sha256=CzuHVXIJNS47NCAJLXSTDOevtg5sf309XXEcWKQ1sAQ,258
60
- firefighter/confluence/service.py,sha256=dOQXj0uDInEm25nvL6lXiSH4hQ5oC2VDyBd1zbEcZ5U,12296
60
+ firefighter/confluence/service.py,sha256=Ehw-hwcdQHWfpNH-DnSkMrr6A9K8B3BbZ8owQfe6Q7A,12270
61
61
  firefighter/confluence/tables.py,sha256=ANEtFXzXyPK6E5FIrBC5XoQt5R3ZUY1DME_RbD1h_NE,732
62
62
  firefighter/confluence/urls.py,sha256=0O6ccLV0uLz4pSBZ34smgrlau46zN4HYakB7yUgS7P0,715
63
63
  firefighter/confluence/utils.py,sha256=QmjF02-roTn2HkAM9TvUKT_CwotL4C8qi5YzIFt3IOU,3135
@@ -94,7 +94,7 @@ firefighter/firefighter/fields_forms_widgets.py,sha256=sVM7sdYP8QZuTssiF2qgQBnAB
94
94
  firefighter/firefighter/filters.py,sha256=zigOaMHj7Uo72DDKjHZr9e4elH-WwqMUdPkn3ft06U0,4241
95
95
  firefighter/firefighter/http_client.py,sha256=LEAKI2VqVTYjdOHoe0yWA5C4dhr32TsQSj6Y79U_LjY,1746
96
96
  firefighter/firefighter/middleware.py,sha256=3E7jdUlGbnaptT953tyA8EBDQ9qFVo7fBSL1QnvkoNk,1110
97
- firefighter/firefighter/sso.py,sha256=fdX1Y8Ua5_xXk0H-5UlryY7cK6ym9wf4AsliSusQDiI,1259
97
+ firefighter/firefighter/sso.py,sha256=eFZWROQzGXibfrmU1EkVUXsYjBHeOntA9AJJd6qHtQA,1233
98
98
  firefighter/firefighter/tables_utils.py,sha256=eUd_s5AnMwxrOKRxthN8o4mlbesX4EiY4zFdZJwCdXo,817
99
99
  firefighter/firefighter/urls.py,sha256=3k8ozdKRLKl9iikowSbR-99oRaDcGmIjU_I2uTrijYs,3655
100
100
  firefighter/firefighter/utils.py,sha256=rEfg-yBKwkFkzLy0lx2Ks8ki6UzS3RyBYudvK2jNufA,2432
@@ -142,7 +142,7 @@ firefighter/incidents/forms/closure_reason.py,sha256=rwWC9Ks8iuuelCv2oqSpGUjL13y
142
142
  firefighter/incidents/forms/create_incident.py,sha256=cm5EWIvkJ1BZ-JfRJrh4TAE2wYYLV694gQ3MRIkcrGQ,2764
143
143
  firefighter/incidents/forms/edit.py,sha256=RxjmYpSeVo9Xbrs09hbmKO6siy3-PusKqg1VV5xAVr4,1051
144
144
  firefighter/incidents/forms/select_impact.py,sha256=pH7neqP3d4Bxol4FuizD0Zcp6OP5wtvbhh1M3DjyDVA,4635
145
- firefighter/incidents/forms/unified_incident.py,sha256=IudNIA0gjOTTPKM1bx_FqJEOZZbGal7d5ItlFUP7n14,19428
145
+ firefighter/incidents/forms/unified_incident.py,sha256=zuVUxvwSyngjNEz1EsaLbHBD82uc_4LiF8YpyKyxacY,19125
146
146
  firefighter/incidents/forms/update_key_events.py,sha256=1Xmnxe5OgZqLFS2HmMzQm3VGFPQipsdrLgKSwdh-fKc,4441
147
147
  firefighter/incidents/forms/update_roles.py,sha256=Q26UPfwAj-8N23RNZLQkvmHGnS1_j_X5KQWjJmPjMKY,3635
148
148
  firefighter/incidents/forms/update_status.py,sha256=j9kGPaDECTrsZogBlgP5MbZdpDIkq3x6aS4cllq0quU,8529
@@ -187,7 +187,7 @@ firefighter/incidents/models/environment.py,sha256=51txwua3dCrWZ1iSG3ZA8rbDn9c00
187
187
  firefighter/incidents/models/group.py,sha256=VrVL315VFUvKW69AZuRUBg1h0jZJvn8zWeMxMOWec1Y,700
188
188
  firefighter/incidents/models/impact.py,sha256=D9NngMtg4XdDWnMgdVYaWCoUZ-fMXTvfL0eTEk9sc7M,4854
189
189
  firefighter/incidents/models/incident.py,sha256=YM-mQXoNcvO5BBdUjDqfvb6zPQmFO281qDa8PIQJ6Y4,29621
190
- firefighter/incidents/models/incident_category.py,sha256=g4OHv_XQhWcH6dvkqkyCgjlruo_1eih_CdtAPgPhaW4,7744
190
+ firefighter/incidents/models/incident_category.py,sha256=FSUkI9pOYddzVscGE0bpz_axWgBXDE8-5sf1oDZ_784,7714
191
191
  firefighter/incidents/models/incident_cost.py,sha256=juwOfJKRaNQpOHkRUCHShDDba0FU98YjRPkU4I0ofAU,1346
192
192
  firefighter/incidents/models/incident_cost_type.py,sha256=wm8diry_VySJzIjC9M3Yavv2tYbvJgpN9UDb2gFRuH4,845
193
193
  firefighter/incidents/models/incident_membership.py,sha256=vvvBvYPxNlM98KdF81cMrDif8_Wl5TqqNkmf_z9lZO8,1745
@@ -219,7 +219,7 @@ firefighter/incidents/static/img/favicon/site.webmanifest,sha256=NJW-gRQeeWpPkSi
219
219
  firefighter/incidents/static/js/main.js,sha256=T7FTIT_JMAMIPJmAvAQSjmxvzpUgkiCjzRqHEKBEl1M,558
220
220
  firefighter/incidents/static/js/main.min.js,sha256=BfqPI2rnZBm7Gk82rXZRf_A-Ihv76aAtQi8eA-rW8kA,235569
221
221
  firefighter/incidents/tasks/__init__.py,sha256=VVOIAmKi-im5UnQwZokuQmm3FcqRbBwJsxGV3cH2SO0,89
222
- firefighter/incidents/tasks/updateoncall.py,sha256=OIoioEt-QveAc0UOVsfJYPdlzhAma9s4B5dJ2pvdY6E,4000
222
+ firefighter/incidents/tasks/updateoncall.py,sha256=dLfhajkEjlniAz3NGZ0YCXIe2GmYPBkXfvoK1MwVZGc,4028
223
223
  firefighter/incidents/templates/incidents/filter.html,sha256=ZZu7FIclnwhtOCYAm_DBUgZ-cdxwFQPUXW8lATBF1mM,4401
224
224
  firefighter/incidents/templates/incidents/table.html,sha256=cNy6gLIE4IW3czOPQzKwtQrc5rbjo9XP7IyA7uUQc0g,2360
225
225
  firefighter/incidents/templates/incidents/errors/base.html,sha256=BAu35yyBSO-r6GXP0AyH6hbNOpwXsbkSCRr2AnWYzKQ,942
@@ -261,7 +261,7 @@ firefighter/incidents/templates/pages/incident_update_key_events_form.html,sha25
261
261
  firefighter/incidents/templates/pages/user_detail.html,sha256=1CYzgIUteoarNESH6TSrultwLjxrl8NhVTGPkFf2s9s,6084
262
262
  firefighter/incidents/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
263
263
  firefighter/incidents/views/date_filter.py,sha256=fUhTjkBulMokI5tAHuqNDVv1dyspjmw3O2vzkkhqbUs,5648
264
- firefighter/incidents/views/date_utils.py,sha256=tiRTlh7PmRv4eAH0asiSX3Gn7ajsal9egm4S1d7s3_s,5759
264
+ firefighter/incidents/views/date_utils.py,sha256=Q2i-84hXm1vuXy7-1x1SSteWXzXUzh4b0a79nmTEfWA,5733
265
265
  firefighter/incidents/views/errors.py,sha256=yDuH0YOdGf-voVNEC51yR9Ie3OU-az7g2EqWs_uV1Kk,7855
266
266
  firefighter/incidents/views/reports.py,sha256=1Iegx04w-oHw4cj7u9w2_s7T_e9FH5I6RRPTwDZwZhg,20973
267
267
  firefighter/incidents/views/views.py,sha256=4AR3i9SiC9AnrzZCRIhx147rus4_dXS0IRWsQ8ilkjg,11031
@@ -347,7 +347,7 @@ firefighter/raid/signals/incident_updated.py,sha256=Al1S1BOWAd6s97ITG0Yg181hOOLR
347
347
  firefighter/raid/tasks/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
348
348
  firefighter/raid/views/__init__.py,sha256=C3WhAJfEoUasi2afHPuLpKiuRYixK-tc3j0-2Rw_g3E,5210
349
349
  firefighter/slack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
- firefighter/slack/admin.py,sha256=pNJbA-szxUUrghxv_Z0BNezu6lULDzFcOu_K5i4m7Cs,13963
350
+ firefighter/slack/admin.py,sha256=OpdM4imdY95EA7vagcPvTcz-gKGJvAIqau1kZH3Y4Ps,13921
351
351
  firefighter/slack/apps.py,sha256=gR0zWTtqT58tjPayBX22ZSzMkLiNpmoOvLShNvhJA6Q,664
352
352
  firefighter/slack/factories.py,sha256=tnrUTbtgehCuBr24MtTyJ3uezKC6gJbOdHuYZ5JBoyU,3886
353
353
  firefighter/slack/rules.py,sha256=Y-DYJ_1D13a4nQNESCbhalNe2nC9xVNpYtSeWTgDcYc,2374
@@ -360,11 +360,11 @@ firefighter/slack/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
360
360
  firefighter/slack/forms/sos_form.py,sha256=v544RMMzUjVgInSaZh_75PmbZf0FIKy4fcjdlV78pCE,257
361
361
  firefighter/slack/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
362
362
  firefighter/slack/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
- firefighter/slack/management/commands/generate_manifest.py,sha256=TbpAT9FfuDIOZy5kmmN6J41okleNVkSdqKqvT7bNOac,6877
363
+ firefighter/slack/management/commands/generate_manifest.py,sha256=TJeLxrIvfZY_Aim_8vM8q5xHlIHs0mKtSXAPK2JelcI,6859
364
364
  firefighter/slack/management/commands/switch_test_users.py,sha256=2KTSvCBxsEvZa61J8p0r3huPNhwuytcj2J7IawwZWpQ,11064
365
365
  firefighter/slack/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
366
366
  firefighter/slack/messages/base.py,sha256=biH-YEAaldJ-OLHEs5ZjW-gtUYUbjOqxrAEflqV2XS0,4593
367
- firefighter/slack/messages/slack_messages.py,sha256=y3z54F2RH5--YOab0tv7fp18bICe3wHulRq6JZ5NYmE,45341
367
+ firefighter/slack/messages/slack_messages.py,sha256=aNWBEr_pJbn9Ey-xn0vnUr7X22z0rRgxgQEFMeRVh6Y,45315
368
368
  firefighter/slack/migrations/0001_initial_oss.py,sha256=XmTPgq7zCME2xDwzRFoVi4OegSIG9eSKoyTNoW05Qtg,12933
369
369
  firefighter/slack/migrations/0002_usergroup_tag.py,sha256=098tmGA81mT-R2uhb6uQfZ7gKiRG9bFhEwQ8rrp4SKM,583
370
370
  firefighter/slack/migrations/0003_alter_usergroup_tag.py,sha256=ncH3KUWEPZHlbdcAtOJ0KGt5H6EX-cKspTGU3osrAhE,591
@@ -376,7 +376,7 @@ firefighter/slack/migrations/0008_alter_conversation_incident_categories_and_mor
376
376
  firefighter/slack/migrations/0009_add_postmortem_reminder_periodic_task.py,sha256=Vze5TvhQExaF7-KymByzMZZE1wa0GHlWZXP1v1hub5w,2035
377
377
  firefighter/slack/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
378
378
  firefighter/slack/models/__init__.py,sha256=MGc4yuDnVhmAiHy1-5rjaLIfVv9JOup5arRutcUs8Ak,332
379
- firefighter/slack/models/conversation.py,sha256=f7a0muD0lrpf8mIhF6E2gEhNsgwZFw9jlKIQppZhNL0,16227
379
+ firefighter/slack/models/conversation.py,sha256=RxT3d8lSTheb0Ey1yjSAeMBvIa78JPbt49mOGCZujqo,16197
380
380
  firefighter/slack/models/incident_channel.py,sha256=aN5Y_uU5HLz_D6CzFDGRrdKDcc0PDa5r-McnGO4BBAM,7576
381
381
  firefighter/slack/models/message.py,sha256=E1MQoZJz4MsgCeqgP94_jtSrz2RYuWdoys8tz4Tfboc,4727
382
382
  firefighter/slack/models/sos.py,sha256=Sji-7DxgsrLs7vFRJKPw7nmYyo2tIjNwoTcmdCmzEvA,1418
@@ -387,8 +387,8 @@ firefighter/slack/signals/create_incident_conversation.py,sha256=6oxNJzprU312-3H
387
387
  firefighter/slack/signals/get_users.py,sha256=-ZUI3ORJZJ4tLiGhVwIU-pWHoriALtOC7Kh_bFR4bGU,2287
388
388
  firefighter/slack/signals/handle_incident_channel_done.py,sha256=pYoS_ZJf2u9seHCqahfPHz4BrfvF1vIZjE1_yy0P5mY,1726
389
389
  firefighter/slack/signals/incident_closed.py,sha256=6QyUmTjEGVg0Wn5W-i2F8DlJuhvHjg3MxkcvAXFn9Bk,687
390
- firefighter/slack/signals/incident_updated.py,sha256=VbbSKfiWOixPAML9YFc1CWrLSPZI1EhgtqdMqitHVVw,10103
391
- firefighter/slack/signals/postmortem_created.py,sha256=wQsBrCWI5jiwui10O_2lZXLaWUxim-BUgVOxDaoCMPU,2974
390
+ firefighter/slack/signals/incident_updated.py,sha256=dDcviZTA1KHD76uyGf-TScO0UH5fjVByWGYautBPXXA,10019
391
+ firefighter/slack/signals/postmortem_created.py,sha256=N9qM193bT0BDe7iGpQL71DEU5aM9Dkabav8Yv-mY7vg,2903
392
392
  firefighter/slack/signals/roles_reminders.py,sha256=1Ef_J1PubY8WTVs2WDXz4KWa6X2Lvp1RFObIjSGpiOM,4041
393
393
  firefighter/slack/tasks/__init__.py,sha256=28QxZkakyi9l7Ae83fQuzOS-9EaBiwuh_peUZwIxCx4,179
394
394
  firefighter/slack/tasks/fetch_conversations_members.py,sha256=lLQ491_l8HEJrjoDpD0AETqoFUFogkyMJ002hguA-Dg,5381
@@ -420,14 +420,14 @@ firefighter/slack/views/modals/__init__.py,sha256=U9PapAIlpuYqBonOUmBGWT8_HjQa35
420
420
  firefighter/slack/views/modals/close.py,sha256=eTT1IVEMXUrdUXsu5VSmC6-cGUsOYUGG7CN-3yAnuDo,17482
421
421
  firefighter/slack/views/modals/closure_reason.py,sha256=qgjg6x5JBh5ggR6Z6aVhpnc3k8En38UxKtFb5RkTU4U,9016
422
422
  firefighter/slack/views/modals/downgrade_workflow.py,sha256=cRWsm3DmKRRI1-Jpjprb5xeY2U7HvRo6eZlUbGuzr1A,3192
423
- firefighter/slack/views/modals/edit.py,sha256=mjKOV0e4RPVv6oVWsRu5wngM_5yTtmpp0GTleCnobO8,5861
423
+ firefighter/slack/views/modals/edit.py,sha256=O3teGRnCuuGG6pO-DCRpwuFosz7AtSO1L3htVz_qnCk,5790
424
424
  firefighter/slack/views/modals/key_event_message.py,sha256=C6yhQLQ6jBuhIr-YAoAyt-qZKu0V6nJMGZ_t3DLtUbo,5943
425
- firefighter/slack/views/modals/open.py,sha256=BmluMaju51QvAE9tye1y8qYy6WR7Crp1Mfn88YzmKpw,29138
425
+ firefighter/slack/views/modals/open.py,sha256=nIAqf6EzATHfyfNP7qJE_ZMJnd_isi7ZhH5STjDIl-0,29067
426
426
  firefighter/slack/views/modals/postmortem.py,sha256=Re4F0ZQEEOfdXljVCkswU1ESZksmpAqRy3es3_Wmeiw,5070
427
427
  firefighter/slack/views/modals/select.py,sha256=Y-Ji_ALnzhYkXDBAyi497UL1Xn2vCGqXCtj8eog75Jk,3312
428
428
  firefighter/slack/views/modals/send_sos.py,sha256=LN8w265PfrK6k6JJlwJ7bzQMso-d6aAKQoJrhOQ8cvM,4821
429
429
  firefighter/slack/views/modals/status.py,sha256=C8-eJRtquSeaHe568SC7yCFef1k14m2_6lUqBezdSH8,3970
430
- firefighter/slack/views/modals/trigger_oncall.py,sha256=h_LAD5X5rjMFWiDYTEp5VB9OaF7sTvKZhNaW3KQkw5M,5065
430
+ firefighter/slack/views/modals/trigger_oncall.py,sha256=syvyjs8FCx4hcQdnO14OSqEIvs2btwCKvExGLxgAtdM,5035
431
431
  firefighter/slack/views/modals/update.py,sha256=OF9sf-Z6IiviNmjN28MQNYiUbJ5tha0MdHUQyPpVFiY,2150
432
432
  firefighter/slack/views/modals/update_roles.py,sha256=De3Gv67MZQHyNdonX3S99F5MtKF_Rj3y71gdWibxBaM,2419
433
433
  firefighter/slack/views/modals/update_status.py,sha256=SYjQLXnWSZLk461b-L9WFRSxy7clIA4O0C4ZMrNWiuc,5964
@@ -439,9 +439,9 @@ firefighter/slack/views/modals/base_modal/form_utils.py,sha256=Ha-qTFUdr5UzGcI-x
439
439
  firefighter/slack/views/modals/base_modal/mixins.py,sha256=c7WYs0aXKXVktEMNSZ8IUQbAmustrLbRzbOoo4nyYGA,1917
440
440
  firefighter/slack/views/modals/base_modal/modal_utils.py,sha256=1uHTlLxxeXUQttH3bHaehJwCuI6a-h04s-GzdnVA4sI,2459
441
441
  firefighter/slack/views/modals/opening/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
442
- firefighter/slack/views/modals/opening/check_current_incidents.py,sha256=4hFp6nEKH55j0BBYE2Ks9KNwCPImCKQdxyweIWmW5E4,2551
442
+ firefighter/slack/views/modals/opening/check_current_incidents.py,sha256=LnLR9Sr2Y3P2eZf9eFSIQLWjByI2yWG6da_up0JOrFE,2521
443
443
  firefighter/slack/views/modals/opening/select_impact.py,sha256=JFpStRhvGDcqR5DptJQajuA2VJOypM8r6_XnJcQMGB4,11699
444
- firefighter/slack/views/modals/opening/set_details.py,sha256=YxA2jJfxkuScSIwNOzZOBdDUzx22FMWXfsnD6cK3k50,6963
444
+ firefighter/slack/views/modals/opening/set_details.py,sha256=bkfbib5zXFxifZoRSOsx4Hhw-h24zCLmbm6WhK2WFao,6933
445
445
  firefighter/slack/views/modals/opening/types.py,sha256=ETpp0DAz5OMI5h7iv62Of7yJCbI-Q4-3kKSS6msPQeY,563
446
446
  firefighter/slack/views/modals/opening/details/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
447
447
  firefighter/slack/views/modals/opening/details/unified.py,sha256=Ubgu1It_SpxScmSChzVm8nScCqZ5TtFYJBEcUOA6XN8,7422
@@ -462,7 +462,7 @@ firefighter_tests/test_api/test_api_urls.py,sha256=Nn7Flq7dWGYJjgZK5HGdGECFMwKiD
462
462
  firefighter_tests/test_api/test_renderer.py,sha256=ycDknfY31heSmJ1naTd4qxeSHmds9fzt5nxMHLnR6uU,1142
463
463
  firefighter_tests/test_confluence/test_confluence_utils.py,sha256=hD5M4mYwrHlil9KPARNQ5OINdRc5njfYCIdq8a6jUB8,1847
464
464
  firefighter_tests/test_firefighter/test_firefighter_utils.py,sha256=og79bkErCBQB-xkw88J-ronT0dDEChuqlMke2ElxATo,3590
465
- firefighter_tests/test_firefighter/test_logging.py,sha256=4HUH73vLDwmOCpMiXwDasMLL7F0kA1B_DxE48mqswSk,878
465
+ firefighter_tests/test_firefighter/test_logging.py,sha256=0qllqHbo6X8eweuAIm5AehU2HaVRgbc-ITJ6l1fa47c,852
466
466
  firefighter_tests/test_firefighter/test_sso.py,sha256=uX2ry0REDgXzQc9Y1BmAgI0OgbmzWoOv9H_GDyOqQmQ,5205
467
467
  firefighter_tests/test_firefighter/test_urls.py,sha256=UMGx4oW98RoL0ceePkIIKEVjbHdFECvQuGNXYAJForQ,4839
468
468
  firefighter_tests/test_incidents/test_enums.py,sha256=wMxxL1uakrmzJIi-2xkAvG-Y3NDDmIt0PHyOAJBz0yQ,4341
@@ -528,8 +528,8 @@ firefighter_tests/test_slack/views/modals/test_send_sos.py,sha256=_rE6jD-gOzcGyh
528
528
  firefighter_tests/test_slack/views/modals/test_status.py,sha256=oQzPfwdg2tkbo9nfkO1GfS3WydxqSC6vy1AZjZDKT30,2226
529
529
  firefighter_tests/test_slack/views/modals/test_update_status.py,sha256=vbHGx6dkM_0swE1vJ0HrkhI1oJzD_WHZuIQ-_arAxXo,55686
530
530
  firefighter_tests/test_slack/views/modals/test_utils.py,sha256=DJd2n9q6fFu8UuCRdiq9U_Cn19MdnC5c-ydLLrk6rkc,5218
531
- firefighter_incident-0.0.32.dist-info/METADATA,sha256=6mthmulS2yUBanwe85XSp9Ic4bnsbSPaD3UKEDRNAhw,5570
532
- firefighter_incident-0.0.32.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
533
- firefighter_incident-0.0.32.dist-info/entry_points.txt,sha256=c13meJbv7YNmYz7MipMOQwzQ5IeFOPXUBYAJ44XMQsM,61
534
- firefighter_incident-0.0.32.dist-info/licenses/LICENSE,sha256=krRiGp-a9-1nH1bWpBEdxyTKLhjLmn6DMVVoIb0zF90,1087
535
- firefighter_incident-0.0.32.dist-info/RECORD,,
531
+ firefighter_incident-0.0.34.dist-info/METADATA,sha256=Ap1ovJI4n2CB3VlE_e-GPUyxmDm5PWrACG8e2a5kOFg,5570
532
+ firefighter_incident-0.0.34.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
533
+ firefighter_incident-0.0.34.dist-info/entry_points.txt,sha256=c13meJbv7YNmYz7MipMOQwzQ5IeFOPXUBYAJ44XMQsM,61
534
+ firefighter_incident-0.0.34.dist-info/licenses/LICENSE,sha256=krRiGp-a9-1nH1bWpBEdxyTKLhjLmn6DMVVoIb0zF90,1087
535
+ firefighter_incident-0.0.34.dist-info/RECORD,,
@@ -5,7 +5,6 @@ import pytest
5
5
 
6
6
  def test_json_logging(caplog: pytest.LogCaptureFixture, capsys, settings) -> None:
7
7
  """This test ensures that JSON logging is working."""
8
- # ruff: noqa: PLC0415
9
8
  import logging
10
9
 
11
10
  from firefighter.firefighter.settings.components.logging import (
main.py CHANGED
@@ -30,7 +30,6 @@ class StandaloneApplication(gunicorn.app.wsgiapp.WSGIApplication):
30
30
 
31
31
  def main() -> None:
32
32
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "firefighter.firefighter.settings")
33
- # ruff: noqa: PLC0415
34
33
  from django import setup
35
34
 
36
35
  setup()