| 1234567891011121314151617181920212223242526272829 |
- from django.db.models.signals import post_delete, post_save
- from django.dispatch import receiver
- from django.utils import timezone
- from dcim.signals import rebuild_paths
- from .models import Circuit, CircuitTermination
- @receiver(post_save, sender=CircuitTermination)
- def update_circuit(instance, **kwargs):
- """
- When a CircuitTermination has been modified, update its parent Circuit.
- """
- fields = {
- 'last_updated': timezone.now(),
- f'termination_{instance.term_side.lower()}': instance.pk,
- }
- Circuit.objects.filter(pk=instance.circuit_id).update(**fields)
- @receiver((post_save, post_delete), sender=CircuitTermination)
- def rebuild_cablepaths(instance, raw=False, **kwargs):
- """
- Rebuild any CablePaths which traverse the peer CircuitTermination.
- """
- if not raw:
- peer_termination = instance.get_peer_termination()
- if peer_termination:
- rebuild_paths(peer_termination)
|