Files
n3wt-school/Back-End/Subscriptions/signals.py
N3WT DE COMPET fb73f9e9a8 feat: Gestion de la création d'un nouveau guardian, de l'association
avec un guardian dumême établissement, et de l'association avec un
guardian d'un autre établissement
2025-03-18 21:06:44 +01:00

27 lines
1.1 KiB
Python

from django.db.models.signals import post_save, post_delete, m2m_changed
from django.dispatch import receiver
from .models import RegistrationForm, Student, Guardian
from Auth.models import Profile
from N3wtSchool import settings
from N3wtSchool.redis_client import redis_client
import logging
logger = logging.getLogger(__name__)
@receiver(m2m_changed, sender=Student.guardians.through)
def check_orphan_reponsables(sender, **kwargs):
action = kwargs.pop('action', None)
instance = kwargs.pop('instance', None)
# pre_clear : lors de la suppression d'une FI (on fait un "clear" sur chaque relation)
if action in ('post_remove', 'post_clear'):
if instance.guardians.all():
Guardian.objects.filter(eleve=None).delete()
@receiver(m2m_changed, sender=Student.profiles.through)
def check_orphan_profils(sender, **kwargs):
action = kwargs.pop('action', None)
instance = kwargs.pop('instance', None)
# pre_clear : lors de la suppression d'une FI (on fait un "clear" sur chaque relation)
if action in ('post_remove', 'post_clear'):
if instance.profiles.all():
Profile.objects.filter(eleve=None).delete()