Changeset 18497


Ignore:
Timestamp:
Aug 10, 2022, 5:55:10 PM (3 years ago)
Author:
lucid
Message:

WeekPlanPlugin: ical recurring events support
(fix #14122)

Fix AttributeError: 'datetime.date' object has no attribute 'date' (fix #14149)

Fix extras_require (see #14110)

Location:
weekplanplugin/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • weekplanplugin/trunk/setup.py

    r18470 r18497  
    2020        ]
    2121    },
    22     extras_requires={'ical': 'icalendar'},
     22    extras_require={'ical': ['icalendar', 'recurring-ical-events']},
    2323)
  • weekplanplugin/trunk/weekplan/ical_provider.py

    r18469 r18497  
    33
    44from icalendar import Calendar
     5import recurring_ical_events
    56
    67from trac.config import ConfigSection
     
    3637            content = f.read()
    3738            calendar = Calendar.from_ical(content)
    38             return calendar.walk()
     39            entries = calendar.walk()
     40            if range is not None:
     41                r0, r1 = range
     42                recurring_events = recurring_ical_events.of(calendar).between(r0, r1)
     43                entries.extend(recurring_events)
     44            return entries
    3945
    4046        def is_relevant(entry):
     
    7076            if isinstance(start.dt, datetime.datetime):
    7177                title = user_time(req, format_time, start.dt) + ' ' + title
    72             return WeekPlanEvent(str(entry_id), plan, title, start.dt, end.dt)
     78            start = start.dt
     79            end = end.dt
     80            if isinstance(start, datetime.date):
     81                start = datetime.datetime.combine(start, datetime.time(12, 0))
     82            if isinstance(end, datetime.date):
     83                end = datetime.datetime.combine(end, datetime.time(12, 0))
     84            return WeekPlanEvent(str(entry_id), plan, title, start, end)
    7385
    7486        events = []
Note: See TracChangeset for help on using the changeset viewer.