==========================
Joyous 1.2.0 release notes
==========================

.. contents::
    :local:
    :depth: 3


What's new
==========

ExtCancellationPage
~~~~~~~~~~~~~~~~~~~
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.

ClosedForHolidaysPage
~~~~~~~~~~~~~~~~~~~~~
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.

Holidays
~~~~~~~~
 * 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.

iCal
~~~~
 * 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.

RSS
~~~
 * Named ExtCancellation pages and named ClosedForHolidays pages are listed
   just like named Cancellations.

Other features
~~~~~~~~~~~~~~
 * 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.

Bug fixes
~~~~~~~~~
 * 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

Source code restructure
~~~~~~~~~~~~~~~~~~~~~~~
models/events.py was getting too large so has been broken up.
Users of Joyous should not notice any difference.
