agendas: fix event_overlaps method with recurrences (#80851)
gitea/chrono/pipeline/head This commit looks good Details

This commit is contained in:
Lauréline Guérin 2023-09-05 09:24:14 +02:00
parent d16b35067e
commit 0b6ca9d5d2
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 5 additions and 1 deletions

View File

@ -1121,7 +1121,10 @@ class Agenda(models.Model):
return True
def event_overlaps(self, start_datetime, recurrence_days, recurrence_end_date, instance=None):
qs = self.event_set
qs = self.event_set.filter(
# exclude recurrences, check only recurring and normal events
primary_event__isnull=True
)
if hasattr(instance, 'pk'):
qs = qs.exclude(pk=instance.pk)

View File

@ -3855,6 +3855,7 @@ def test_agenda_event_overlaps_recurring():
assert agenda.event_overlaps(**event_kwargs) is False
event = Event.objects.create(agenda=agenda, places=1, **event_kwargs)
event.create_all_recurrences()
assert agenda.event_overlaps(**event_kwargs) is True
assert agenda.event_overlaps(instance=event, **event_kwargs) is False