mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 16:03:21 +00:00
avec un guardian dumême établissement, et de l'association avec un guardian d'un autre établissement
27 lines
1.1 KiB
Python
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()
|