20 lines
661 B
Python

from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import AbsencePeriod
from calendars.models import Event, EventParticipation
@receiver(post_save, sender=AbsencePeriod)
def handle_absence_period(sender, instance, **kwargs):
user = instance.user
events_in_period = Event.objects.filter(
team=user.team,
start_time__date__gte=instance.start_date,
start_time__date__lte=instance.end_date
)
for event in events_in_period:
EventParticipation.objects.update_or_create(
user=user,
event=event,
defaults={'status': 'rejected'}
)