fix(calendar): wiederkehrende Termine nicht per Range filtern
Master-Event eines Serientermins liegt oft vor dem sichtbaren Bereich - das FullCalendar-RRULE-Plugin braucht ihn trotzdem zur Expansion. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b398d6d800
commit
10a1dec448
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue