Fix: Korrekte Endzeiten für recurring Events
- parse_times erkennt jetzt recurring Events (dauertermin=1 + turnus/turnusArt > 0) - Für recurring Events wird das Ende aus dem gleichen Tag wie Start berechnet - datumBis wird nur noch für die RRULE-Serie verwendet, nicht für jeden Termin - Fix für Termin 84389: Statt 15-Tage-Terminen jetzt korrekte 30-Minuten-Termine
This commit is contained in:
@@ -233,8 +233,17 @@ def parse_times(data, source):
|
||||
start_time = data.get('uhrzeitVon') or '09:00:00'
|
||||
start_dt = BERLIN_TZ.localize(datetime.datetime.fromisoformat(f"{start_str}T{start_time}"))
|
||||
|
||||
# Check if this is a recurring event
|
||||
is_recurring = (data.get('dauertermin', 0) == 1 and
|
||||
(data.get('turnus', 0) > 0 or data.get('turnusArt', 0) > 0))
|
||||
|
||||
if is_recurring:
|
||||
# For recurring events, end date is same as start date (each instance ends on same day)
|
||||
end_date_str = data.get('datum', '')
|
||||
else:
|
||||
# Use datumBis for end date if available, otherwise datum
|
||||
end_date_str = data.get('datumBis', data.get('datum', ''))
|
||||
|
||||
if 'T' in end_date_str:
|
||||
base_end_date = end_date_str.split('T')[0]
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user