Files
2026-07-19 14:31:28 +03:30

29 lines
999 B
Python

from django.db.models.signals import post_save, pre_save
from django.dispatch import receiver
from .models import ProjectBrief
from .notifications import send_brief_status_email, send_new_brief_admin_email
@receiver(pre_save, sender=ProjectBrief)
def capture_previous_status(sender, instance, **kwargs):
if instance.pk:
try:
instance._previous_status = ProjectBrief.objects.values_list(
"status", flat=True
).get(pk=instance.pk)
except ProjectBrief.DoesNotExist:
instance._previous_status = None
else:
instance._previous_status = None
@receiver(post_save, sender=ProjectBrief)
def handle_brief_notifications(sender, instance, created, **kwargs):
if created:
send_new_brief_admin_email(instance)
return
previous_status = getattr(instance, "_previous_status", None)
if previous_status and previous_status != instance.status:
send_brief_status_email(instance, previous_status)