firefighter-incident 0.0.20__py3-none-any.whl → 0.0.22__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 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.20'
32
- __version_tuple__ = version_tuple = (0, 0, 20)
31
+ __version__ = version = '0.0.22'
32
+ __version_tuple__ = version_tuple = (0, 0, 22)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
- {% if user.avatar %}
1
+ {% if avatar_user.avatar %}
2
2
  <span class="rounded-full block overflow-hidden z-[1]">
3
- <img src="{{ user.avatar }}" alt="{{ user.full_name }}'s avatar" height="{{ size_px }}" width="{{ size_px }}" onerror="this.style='display: none;'">
3
+ <img src="{{ avatar_user.avatar }}" alt="{{ avatar_user.full_name }}'s avatar" height="{{ size_px }}" width="{{ size_px }}" onerror="this.style='display: none;'">
4
4
  </span>
5
5
  {% endif %}
6
6
  {% comment %} Always display the fallback, as we don't control external CDN expiration {% endcomment %}
@@ -11,7 +11,7 @@ logger = logging.getLogger(__name__)
11
11
 
12
12
 
13
13
  class Data(TypedDict):
14
- user: User
14
+ avatar_user: User
15
15
  size_tailwind: int
16
16
  size_px: int
17
17
 
@@ -31,7 +31,7 @@ class Avatar(component.Component):
31
31
  def get_context_data(self, user: User, **kwargs: Any) -> Data:
32
32
  size_px, size_tailwind = (40, 10) if kwargs.get("size") == "md" else (80, 20)
33
33
  return {
34
- "user": user,
34
+ "avatar_user": user,
35
35
  "size_tailwind": size_tailwind,
36
36
  "size_px": size_px,
37
37
  }
@@ -130,14 +130,12 @@ class LandbotIssueRequestSerializer(serializers.ModelSerializer[JiraTicket]):
130
130
  allow_blank=True,
131
131
  )
132
132
  suggested_team_routing = serializers.CharField(max_length=10, write_only=True)
133
- project = serializers.ChoiceField(
133
+ project = serializers.CharField(
134
+ max_length=128,
134
135
  required=False,
135
136
  allow_blank=True,
136
137
  allow_null=True,
137
138
  default="SBI",
138
- choices=[
139
- "SBI",
140
- ],
141
139
  )
142
140
  priority = serializers.IntegerField(
143
141
  min_value=1, max_value=5, write_only=True, allow_null=True,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: firefighter-incident
3
- Version: 0.0.20
3
+ Version: 0.0.22
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/
@@ -77,6 +77,7 @@ Requires-Dist: slack-bolt>=1.18.1
77
77
  Requires-Dist: slack-sdk>=3.26.1
78
78
  Requires-Dist: uritemplate>=4.1.1
79
79
  Requires-Dist: whitenoise>=6.6.0
80
+ Requires-Dist: wrapt>=1.17.0
80
81
  Description-Content-Type: text/markdown
81
82
 
82
83
  # FireFighter
@@ -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=8FWqMenH0vIxIRfUQxFCzTnv2dsyjwSoAhVLD84lkZ4,706
9
+ firefighter/_version.py,sha256=ppqXAvMQkDCf5uPK5J4O6hozIheDimMJFhFAaY9euV0,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
@@ -31,8 +31,8 @@ firefighter/api/views/incidents.py,sha256=yx_ORI-8GUSWMC8aKC0BEc-dRSmudQIxcaD-Mj
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
34
- firefighter/components/avatar/avatar.html,sha256=oleFPTy1qs9X6hZx3iWppBteHummFvSxoNzPOOl5aeA,773
35
- firefighter/components/avatar/avatar.py,sha256=AIqffX8I_sJ7oEpuyIswJkB6KuW51FuEa4tBn9eSths,823
34
+ firefighter/components/avatar/avatar.html,sha256=_0SXz5JavwYeUwCKX9Lt3ZNm67caGjdUMKyFWyZqSJI,794
35
+ firefighter/components/avatar/avatar.py,sha256=MqWm0VJTVOoB4DhW1mcTes48rlmrGD6IZO0BC7hUp3o,837
36
36
  firefighter/components/card/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  firefighter/components/card/card.html,sha256=ziahql8X7WiQdprMktzy7sx0gVXNIxqtAsh_Rc5Iy0g,725
38
38
  firefighter/components/card/card.py,sha256=yB4veoRQ3zfdJPCsAGIYtmLCDz3G2kmcYFg12jzkNks,487
@@ -316,7 +316,7 @@ firefighter/raid/forms.py,sha256=XivNADFHOl2ewNRXev17HthDIUvwt4pdH9t4So-BE-A,119
316
316
  firefighter/raid/messages.py,sha256=e75kwi0hCe5ChwU4t-_6Q3Rcy22MLLdVSsYyjvG2SCM,5542
317
317
  firefighter/raid/models.py,sha256=29Smci739K1ZdcMu7uXYvoVEhgDpwLQoCzBbc5wvwhs,2211
318
318
  firefighter/raid/resources.py,sha256=39GhITs3OAWA1eSPZme-rLd818kuz7gwYzdN38zNz8Y,436
319
- firefighter/raid/serializers.py,sha256=hJspJBTPvIs3Y_zpXSwui0aGt4cyIxrwFHwhpT-G58k,11967
319
+ firefighter/raid/serializers.py,sha256=4U6UFUNVR68lBYDzjYp8j1JzmfSftASOp1nQifCRXYQ,11941
320
320
  firefighter/raid/service.py,sha256=rxRjEpA5wg4JRe4UrGW-y8C8quHvGlJzQ0U8rdy-DyM,8490
321
321
  firefighter/raid/types.py,sha256=0lFy_Wl3Ekyy_sxTHPRxMn3kjEJVWCTPjmefDlrPqMQ,438
322
322
  firefighter/raid/urls.py,sha256=oESkDY2tfZcnPGUgULqixvbV3Z7YsZfeI10RX3A5tZY,924
@@ -497,10 +497,10 @@ firefighter_tests/test_slack/views/modals/test_open.py,sha256=IzgG9le5NN_CvltehA
497
497
  firefighter_tests/test_slack/views/modals/test_opening_unified.py,sha256=OejtLyc_mehav2TDaLzUnhilMNvhCzc6T4FodCqfQPk,17406
498
498
  firefighter_tests/test_slack/views/modals/test_send_sos.py,sha256=_rE6jD-gOzcGyhlY0R9GzlGtPx65oOOguJYdENgxtLc,1289
499
499
  firefighter_tests/test_slack/views/modals/test_status.py,sha256=oQzPfwdg2tkbo9nfkO1GfS3WydxqSC6vy1AZjZDKT30,2226
500
- firefighter_tests/test_slack/views/modals/test_update_status.py,sha256=OVGqVSeim7aancl0RnGzqwM21Qs3ZVFlaryZiOWi_wM,55748
500
+ firefighter_tests/test_slack/views/modals/test_update_status.py,sha256=5_YW6uZRksVLMwjrrCkXd196jsa7CwJaoWTYf2YYZ_k,55683
501
501
  firefighter_tests/test_slack/views/modals/test_utils.py,sha256=DJd2n9q6fFu8UuCRdiq9U_Cn19MdnC5c-ydLLrk6rkc,5218
502
- firefighter_incident-0.0.20.dist-info/METADATA,sha256=yI3gWfRG__v2fGUUA1H0zC2W4LpRJzv4xkjSq1RNufY,5541
503
- firefighter_incident-0.0.20.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
504
- firefighter_incident-0.0.20.dist-info/entry_points.txt,sha256=c13meJbv7YNmYz7MipMOQwzQ5IeFOPXUBYAJ44XMQsM,61
505
- firefighter_incident-0.0.20.dist-info/licenses/LICENSE,sha256=krRiGp-a9-1nH1bWpBEdxyTKLhjLmn6DMVVoIb0zF90,1087
506
- firefighter_incident-0.0.20.dist-info/RECORD,,
502
+ firefighter_incident-0.0.22.dist-info/METADATA,sha256=cpiif-R-KyeR8ieP1NoKGAtaHzAspcmt4lmpWnGCK9M,5570
503
+ firefighter_incident-0.0.22.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
504
+ firefighter_incident-0.0.22.dist-info/entry_points.txt,sha256=c13meJbv7YNmYz7MipMOQwzQ5IeFOPXUBYAJ44XMQsM,61
505
+ firefighter_incident-0.0.22.dist-info/licenses/LICENSE,sha256=krRiGp-a9-1nH1bWpBEdxyTKLhjLmn6DMVVoIb0zF90,1087
506
+ firefighter_incident-0.0.22.dist-info/RECORD,,
@@ -9,7 +9,7 @@ from pytest_mock import MockerFixture
9
9
 
10
10
  from firefighter.incidents.enums import IncidentStatus
11
11
  from firefighter.incidents.factories import IncidentFactory, UserFactory
12
- from firefighter.incidents.models import Incident
12
+ from firefighter.incidents.models import Incident, Priority
13
13
  from firefighter.slack.views import UpdateStatusModal
14
14
 
15
15
  logger = logging.getLogger(__name__)
@@ -89,18 +89,14 @@ class TestUpdateStatusModal:
89
89
  user.save()
90
90
 
91
91
  # Create a P3+ incident in MITIGATED status (can go directly to CLOSED)
92
+ # Get P3 priority explicitly to ensure no postmortem is needed
93
+ p3_priority = Priority.objects.get(value=3)
92
94
  incident = IncidentFactory.build(
93
95
  _status=IncidentStatus.MITIGATED,
94
96
  created_by=user,
97
+ priority=p3_priority,
95
98
  )
96
99
  incident.save()
97
- # Mock needs_postmortem to return False (P3+ incident)
98
- mocker.patch.object(
99
- type(incident),
100
- "needs_postmortem",
101
- new_callable=PropertyMock,
102
- return_value=False
103
- )
104
100
  # Mock can_be_closed to return False with MISSING_REQUIRED_KEY_EVENTS reason
105
101
  mocker.patch.object(
106
102
  type(incident),