Skip to content

Commit fd64e69

Browse files
committed
Use a pre_save signal
1 parent 899194d commit fd64e69

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

response/slack/signals.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from urllib.parse import urljoin
22

3-
from django.db.models.signals import post_save
3+
from django.db.models.signals import pre_save, post_save
44
from django.dispatch import receiver
55
from django.conf import settings
66
from django.urls import reverse
@@ -29,13 +29,19 @@ def update_headline_after_incident_save(sender, instance, **kwargs):
2929
)
3030

3131

32-
@receiver(post_save, sender=Incident)
32+
@receiver(pre_save, sender=Incident)
3333
def prompt_incident_report(sender, instance: Incident, **kwargs):
3434
"""
3535
Prompt incident lead to complete a report when an incident is closed.
3636
"""
3737

38-
if instance.is_closed():
38+
try:
39+
prev_state = Incident.objects.get(pk=instance.pk)
40+
except Incident.DoesNotExist:
41+
# Incident hasn't been saved yet, nothing to do here.
42+
return
43+
44+
if instance.is_closed() and not prev_state.is_closed():
3945
user_to_notify = instance.lead or instance.reporter
4046
doc_url = urljoin(
4147
settings.SITE_URL,

0 commit comments

Comments
 (0)