Files in the top-level directory in any check-in
- config
- projects
- README
- timelog.py
This is a second release of timelog, a (very) simple time tracking tool. Or widget. Or whatever. I couldn't find a simple tool that would handle generating logs for multiple clients, some of which had multiple projects. There were complex tools that would do this, like Quickbooks, but those seemed to be overkill, especially when it came to price. Not that they charged to much for what they did, but that they cost to much for what I wanted them to do. So I put this together over the weekend. It meets my needs, but I'm a long-time shell user, so if you want everything GUI, you'll be disappointed. On the other hand, it's simple enough that creating another few GUIs shouldn't be hard if I'm encouraged to do so (or better yet, given code that does it!). Prerequisites: This works with Python 2.3 and tools that are normally bundled with it. So it should run as is on any modern Unix - OSX having been tested - or Linux system. If you've got a system that doesn't bundle Python, you'll have to get a distribution. The following instructions are for Unix and Linux systems, while it should work on Windows, I don't know off the top of my head how to do so, and it's not worth figuring out for what's essentially an alpha release. Installation: Create a directory in your home directory called '.timelog'. Copy the contents of this tarball into it, so you have config, projects, README and timelog.py in it. Copy timelog.py to something on your PATH as "timelog". If this really confuses you, always run it out of the .timelog directory by doing "cd ~/.timelog; ./timelog.py" to run it. Set up your projects. Those are in the file ~/.timelog/projects. Each line is one project. These are "bottom-level" projects. Projects can have subprojects, represented by the words on the line. So the line "MyClient BigProject Documentation" will generate three lines of output if you log time on it: one for MyClient, one for MyClient BigProject, and one for MyClient BigProject Documentation. The example config file provided includes two top-level projects, Client1 and Client2, with Client2 having two subprojects you want to track separately, Project1 and Project2. It also includes the project "Mine" so you can track time on your own. Now tweak your config. In the Logger section, logfile, activefile and projectfile name files in .timelog, and should be left alone. "off clock color" is just that - the color the GUI timer will have when you're off the clock. weekstart in the Report section is the first day of the week for reporting purposes. The example sets it to Saturday, which is what you'd use if you billed on Fridays for work done the past week. Finally, we have tasks. Tasks activities that will be timed that describe what you're doing rather that what you're working on. In the GUI, they'll each generate what looks like an activity to time *on every project*. A lot of tasks will make your projects selection list large. If you make this empty or leave it off, you'll only get the projects in your projects file. Use: Start it in the background with no arguments: "timelog &". This will open a GUI with a QUIT button, an hours/minutes/seconds clock, an "Off clock button", and a pulldown list. The list is also set to "Off clock". Making a selection in the pulldown list will restart the timer on that activity. Selecting "Off clock" or clicking the "Off clock" button will end stop timing whatever activity you are doing. You can get a variety of reports by running timelog with the right arguments. Run "timelog help" for details on that. Each report includes only projects for which you've logged time. A project with subprojects will include a total line for that project as well as each subproject. If you have tasks, you'll get a separate report of time spent on each task across all projects as well. Finally, you get a total logged for the period being reported. If you're reporting on today/this week/this month/total, time logged on the current activity will be included in the report. If timelog exited without being allowed to clean up and you haven't restarted it, the report will consider you as having been on the last activity ever since. Once you restart the GUI, it'll clock you out of the last activity as of the time of the crash, so running a report, restarting the GUI, and then running it can surprise you. Comments, suggestions, etc. to mwm@mired.org.