=========
* **Update:** For a container task, ``Task.total_logged_seconds`` and
``Task.schedule_seconds`` attributes are now using the info of the child
tasks. Also these attributes are cached to database, so instead of querying
the child tasks all the time, the calculated data is cached and whenever a
TimeLog is created or updated for a child task (which changes the
``total_logged_seconds`` for the child task) or the ``schedule_timing`` or
``schedule_unit`` attributes are updated, the cached values are updated on
the parents. Allowing Stalker to display percent_complete info of a container
task without loading any of its children.
* **New:** Added ``Task.percent_complete`` attribute, which calculates the
percent of completeness of the task based on the
``Task.total_logged_seconds`` and ``Task.schedule_seconds`` attributes.
* **Fix:** Added ``TimeLog.__eq__()`` operator to more robustly check if the
time logs are overlapping.
* **New:** Added ``Project.percent_complete``,
``Percent.total_logged_seconds`` and ``Project.schedule_seconds`` attributes.
* **Update:** ``ScheduleMixin._validate_dates()`` does not set the date values
anymore, it just return the calculated and validated ``start``, ``end`` and
``duration`` values.
* **Update:** ``Vacation`` now can be created without a ``User`` instance,
effectively making the ``Vacation`` a ``Studio`` wide vacation, which applies
to all users.
* **Update:** ``Vacation.__strictly_typed__`` is updated to ``False``, so there
is no need to create a ``Type`` instance to be able to create a ``Vacation``.
* **New:** ``Studio.vacations`` property now returns the ``Vacation`` instances
which has no *user*.
* **Update:** ``Task.start`` and ``Task.end`` values are no more read from
children Tasks for a container task over and over again but calculated
whenever the start and end values of a child task are changed or a new child
is appended or removed.
* **Update:** ``SimpleEntity.description`` validation routine doesn't convert
the input to string anymore, but checks the given description value against
being a string or unicode instance.
* **New:** Added ``Ticket.summary`` field.
* **Fix:** Fixed ``Link.extension``, it is now accepting unicode.