feat: admin panel enrichment
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user