20 lines
661 B
Python
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'}
|
|
)
|