diff --git a/backend/app/api/calendar.py b/backend/app/api/calendar.py index 6e9d355..cb66043 100644 --- a/backend/app/api/calendar.py +++ b/backend/app/api/calendar.py @@ -209,16 +209,25 @@ def list_events(cal_id): end = request.args.get('end') query = CalendarEvent.query.filter_by(calendar_id=cal_id) + # Wiederkehrende Termine duerfen nicht per Range gefiltert werden - + # die FullCalendar-RRULE-Plugin-Expansion im Frontend braucht den + # Master-Event auch wenn dessen dtstart vor dem sichtbaren Bereich liegt. if start: try: start_dt = datetime.fromisoformat(start) - query = query.filter(CalendarEvent.dtend >= start_dt) + query = query.filter(db.or_( + CalendarEvent.recurrence_rule.isnot(None), + CalendarEvent.dtend >= start_dt, + )) except ValueError: pass if end: try: end_dt = datetime.fromisoformat(end) - query = query.filter(CalendarEvent.dtstart <= end_dt) + query = query.filter(db.or_( + CalendarEvent.recurrence_rule.isnot(None), + CalendarEvent.dtstart <= end_dt, + )) except ValueError: pass