41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
"""
|
|
Observations signals - Signal handlers for observation events.
|
|
"""
|
|
import logging
|
|
|
|
from django.db.models.signals import post_save
|
|
from django.dispatch import receiver
|
|
|
|
from .models import Observation, ObservationStatusLog
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@receiver(post_save, sender=Observation)
|
|
def observation_post_save(sender, instance, created, **kwargs):
|
|
"""
|
|
Handle post-save events for observations.
|
|
|
|
- Log creation events
|
|
- Could trigger additional notifications or integrations
|
|
"""
|
|
if created:
|
|
logger.info(
|
|
f"New observation created: {instance.tracking_code} "
|
|
f"(severity: {instance.severity}, anonymous: {instance.is_anonymous})"
|
|
)
|
|
|
|
|
|
@receiver(post_save, sender=ObservationStatusLog)
|
|
def status_log_post_save(sender, instance, created, **kwargs):
|
|
"""
|
|
Handle post-save events for status logs.
|
|
|
|
- Log status changes
|
|
"""
|
|
if created:
|
|
logger.info(
|
|
f"Observation {instance.observation.tracking_code} status changed: "
|
|
f"{instance.from_status} -> {instance.to_status}"
|
|
)
|