A time tracker based on the concepts of gtimelog
This package provides a user interface to track time based on the concepts of gtimelog. When starting your working day you start a timer. Each time that you change to a different tasks you log an entry of what you were working on.
In eXtreme Management we book our hours on tasks. This tracker allows you to select a number of tasks from the list of tasks that are assigned to you. The selected tasks are shown in the time tracker.
History of xm.tracker
- Never cache the tracker view. It always needs to be fresh. [maurits]
- Moved to github: https://github.com/zestsoftware/xm.tracker [maurits]
- Removed base2 library from head section. [jladage]
- Fixed translation of invalid time message. [maurits]
- Explicitly load the permissions.zcml file from Products.eXtremeManagement, otherwise you can get a ComponentLookupError on zope startup. [maurits]
- Added z3c.autoinclude.plugin target plone. [maurits]
- For entries, always round up to the nearest minute. [maurits]
- Fixed rounding error: hours in entries were counted twice (2:15 tracked in the timer would mean 2 hours plus (2*60 + 15 = 135) minutes = 4 hours, 15 minutes tracked. [maurits]
- Round booked time up to multiple of 15 minutes. Round tracked time up to complete minutes. Fixes http://plone.org/products/extreme-management-tool/issues/175 [maurits]
- Specify egenix-mx-base as dependency in setup.py. It is easy_installable now. When this is not pulled in automatically you can run into seemingly unrelated problems, certainly when you do not start the instance on the foreground; not all zcml will be loaded. Having it as an official dependency should work fine now, and if it fails it is at least explicit about what fails. [maurits]
- added german translation. [jensens]
- Nothing changed yet.
- Added div #task_selection_form_content to unassigned_task_select.pt to provide styling for the unassigned tasks form. [laurens]
- select tasks button is now placed inside track time toolbar [laurens]
- Tooltip now displays total booked and total tracked. [jladage]
- I made changes and didn’t publish them in the history file. :) [laurens]
- Fix buttons on the ‘select task for unassigned entry’ form. [mark]
- Reinstate class on ‘book to task’ button which triggers the KSS. [reinout, mark]
- Moved “eXtremeManagement: View Tracker” permission to Products.eXtremeManagement as we do not actually use that permission in the xm.tracker package. [maurits]
- Display a warning in a task when it is orphaned (removed, in the wrong state). [maurits]
- CSS changes to the tracker interface to visually distinguish tasks with and without bookings. [simon]
- Added project-grouping of tasks in the tracker view. [simon]
- Moved timer display to a separate viewlet. And added kss-refreshing of that viewlet in two places so that the timer (and especially the tooltip showing the booked hours) gets updated on stopping the timer, on editing the time of an entry and on adding entries. [reinout]
- Fixed http://plone.org/products/extreme-management-tool/issues/79 by not using unicode in one small place. [reinout]
- Added KSS and template changes to allow the ‘seconds’ part of the tracker timer to be individually styled. (This relates to kss.plugin.timer r72297.) [simon]
- Show the total hours booked plus tracked today as a tooltip on the timer. [maurits+simon]
- Do not store the portal_url in the task_url; copying a Data.fs from production to a development machine would give you a url to the tasks on the production site, which is not handy and can be dangerous. After this change you need to remove existing tracker tasks and add them again unfortunately. [maurits+simon]
- Bug fix: when the tracker pointed to a task with a Discussion Item (comment) in it you would get: ‘TypeError: a float is required’. [maurits]
- Bug fix: a booking for 75 minutes would get stored as 1 hour and 75 minutes instead of 1 hour and 15 minutes. [maurits]
- Removed egenix-mx-base from the install_requires of setup.py as it is not easy_installable. Improved docs/INSTALL.txt to explain about how to install mx.DateTime. [maurits]
- First version. [maurits, reinout, jladage, simon]
To install xm.tracker into the global Python environment (or a workingenv), using a traditional Zope 2 instance, you can do this:
When you’re reading this you have probably already run easy_install xm.tracker. Find out how to install setuptools (and EasyInstall) here: http://peak.telecommunity.com/DevCenter/EasyInstall
You may need to manually install mxBase from Egenix; this is needed as we use mx.DateTime. It was previously not easy_installable, but now this works fine so we have install it automatically as we have specified it in the install_requires. Alternatively, get it here: http://www.egenix.com/products/python/mxBase/
Your operating system may have a package already that you can install. On Ubuntu it is python2.4-egenix-mxdatetime.
If you are using Zope 2.9 (not 2.10), get pythonproducts and install it via:python setup.py install --home /path/to/instance
into your Zope instance.
Create a file called xm.tracker-configure.zcml in the /path/to/instance/etc/package-includes directory. The file should only contain this:<include package="xm.tracker" />
Alternatively, if you are using zc.buildout and the plone.recipe.zope2instance recipe to manage your project, you can do this:
Add xm.tracker to the list of eggs to install, e.g.:[buildout] ... eggs = ... xm.tracker
Tell the plone.recipe.zope2instance recipe to install a ZCML slug:[instance] recipe = plone.recipe.zope2instance ... zcml = xm.tracker
You may need to install mxBase from Egenix manually if the dependency fails to install automatically. On Linux/Max you can use a buildout recipe:[buildout] # mx-base has to be the first part parts = mx-base ... ... [mx-base] recipe = collective.recipe.mxbase
On Windows we have seen this fail. In that case, you can get an installer here: http://www.egenix.com/products/python/mxBase/
Your operating system may have a package already that you can install instead. On Ubuntu it is python2.4-egenix-mxdatetime.
Re-run buildout, e.g. with:$ ./bin/buildout
You can skip the ZCML slug if you are going to explicitly include the package from another package’s configure.zcml file. Products.eXtremeManagement does this.