GTG

Comment 8 for bug 339524

Revision history for this message
Kevin Mehall (kevin-mehall) wrote :

Hi Lionel

Thanks for your encouragement, and thanks for GTG! This was a feature I wanted, so I decided to make it happen; that's why I love open source.

Quick overview of Hamster-applet if you're not familiar:
It's a panel applet with a timer, essentially. Users set a current activity, and it times it and stores that data. Its records consist of an "activity", and a "description", along with the start time / end time. The activity is typically very short, such as a project name, while the description is a longer freeform text (and probably is left empty most of the time when people are starting tasks the normal way). Activities can be further grouped into categories, and totals are calculated per-activity and per-category.

My plugin adds a button to GTG to start a task in Hamster. The GTG task title is used as the description, and the plugin attempts to guess the activity based on the tags of the task.

The activity selection currently works as follows: If there is only one tag on the task, it's used as the activity. When there are multiple tags, but only one has been previously used as an activity name in Hamster, that tag is chosen. If there are multiple possibilities (>1 tags, but none previously used in Hamster, or >1 tags that have been used in Hamster), the first one is chosen. That case not necessarily ideal, but I don't know a better way to do it, and it's probably relatively unlikely.

Example: If I have a task titled "Write Hamster Plugin" tagged @GTG, and I click "Start", the Hamster timer starts, with the activity set to "GTG" and description "Write Hamster Plugin".

As for other features, it currently does everything I personally need it to, but I'm open to suggestions if anyone has any ideas.

One thing I was thinking about, that might be useful to some people, but probably not critical:
Add a view to the bottom of the GTG task editor that lists the related Hamster activity records and total time for the task (independently of all other records for that "activity"/project/tag, as the Hamster stats window would show). Is there a way for the Task class and backends to store arbitrary data from plugins? (the list of Hamster task IDs, in this case) Or I suppose the plugin could store its own TID=>Hamster ID mapping in a separate file, or something...

Anyway, for now it's just the button to send the task to hamster, and that's ready to be merged. I don't know whether we should wait for the plugin engine to go into trunk, or whether I should propose a merge to Paulo's branch, so let me know what you think.

Kevin