25 lines
1008 B
Python
25 lines
1008 B
Python
from django.db.models.signals import post_save, post_delete
|
|
from django.dispatch import receiver
|
|
from .models import Period
|
|
|
|
@receiver(post_save, sender=Period)
|
|
def student_period_created_updated(sender, instance, created, **kwargs):
|
|
if created and not instance.clocked_out:
|
|
instance.student.is_clocked_in = True
|
|
instance.student.current_period_id = instance.pk
|
|
instance.student.save()
|
|
elif not created and not instance.clocked_out:
|
|
instance.student.is_clocked_in = True
|
|
instance.student.current_period_id = instance.pk
|
|
instance.student.save()
|
|
elif instance.clocked_out and not created:
|
|
instance.student.is_clocked_in = False
|
|
instance.student.save()
|
|
|
|
@receiver(post_delete, sender=Period)
|
|
def student_period_deleted(sender, instance, **kwargs):
|
|
if instance.student.current_period_id == instance.pk:
|
|
instance.student.is_clocked_in = False
|
|
instance.student.current_period_id = None
|
|
instance.student.save()
|