Extended cancellations apply to all occurrences of a recurring event from the cancelled_from_date
until the optional cancelled_to_date
. If the to date is not given, then the event is cancelled "until further notice". Named ExtCancellation pages are listed just like named Cancellations.
A recurring event page can now have a closed for holidays page added to it. This indicates that event does not occur on holidays. All holidays or a specific list of holidays can apply. Named ClosedForHolidays pages are listed just like named Cancellations.
- Joyous holidays can now be added together.
- The setting that is parsed for Holidays can be changed from JOYOUS_HOLIDAYS.
- Holidays can be passed to API functions and RecurringEvent to ensure everyone is using the same definition of holidays.
- When an event is closed for extended cancellations or on holidays these are exported as EXDATES.
- NOTE: Google Calendar will refuse to import an event with more than about 90 EXDATES. Investigation of this issue is still in progress.
- Named ExtCancellation pages and named ClosedForHolidays pages are listed just like named Cancellations.
- There is a new DateExceptionBase class that CancellationPage, PostponementPage and ExtraInfoPage inherit from.
- There is a new CancellationBase class that CancellationPage, PostponementPage, ExtCancellationPage, and ClosedForHolidaysPage inherit from.
- New getLocalTimeAtDate function.
- RecurringEventPage._getMyFirstDatetimeTo() now takes an optional myFirstDt argument to save from calculating this again.
- When _getFromTime takes an atDate it is in the local time zone.
- Fix _getToDt to add on num_days
- Record no authority to update an exception as an iCal load failure
- Fix ExceptionDateInput to take account of JOYOUS_FIRST_DAY_OF_WEEK
models/events.py was getting too large so has been broken up. Users of Joyous should not notice any difference.