abaker/tasks — pull request #187 by cinash (2014-11-10 16:09:22+00:00)
Title: Extended time logging feature

This pull request contains an extension of a time logging feature. Namely it allows to add multiple time logs for a single task. Each time log contains 3 parts of data:
time spent
date when this time was spent
description of a job done

Apart from that each task contains two additional times: estimated time and time left. When you create an estimate it is also set as a time left. After adding time log time left is reduced by the time logged.
To elaborate on that a typical, but a little extended scenario looks like that:
1. User creates a task.
2. He sets an estimation how long this task will take. It is automatically also set as time left.
3. User performs some part of the task and logs time spent with a description what he has done. Time left is updated by subtracting logged time.
4. User decides that he will not be able to finish the task in the time left, so he updates it.
5. After a while user finishes that tasks, logs new time spent and finishes the task.

To complete that feature I also included:
migration to the new database model
export and import to backup
migration while importing from older version of backup
changing the timer to make it create a time log instead of comments
setting time left as estimated while rescheduling recurring tasks

It was necessary to add or change some strings. I added them only in English so it will be necessary to create translations.
Also I think that “Timer” is no longer a proper word for that feature and it should be changed to something like “Time log”. But I didn't do it for now.

In the near future I plan to work more on time logging in this application to include:
reports of time spent
similar reports but for the future and estimated time.