Table of Contents
Time Tracking
Introduction
This is currently a work in progress. It will be updated as and when I get time or the checked in code's functionally changes.
- on the bugtracker: issue 4428.
Configuration Options
- $g_time_tracking_enabled - Turns Time Tracking features ON or OFF - Default 'OFF'
- $g_time_tracking_without_note - Allow time tracking to be recorded without writing some text in the associated bugnote - Default 'ON'
- $g_time_tracking_with_billing - Adds calculation links to workout how much time has been spent between a particular time frame. Currently it will allow you to enter a cost/hour and will work out some billing information. This will become more extensive in the future. Currently it is more of a proof of concept.
- $g_time_tracking_stopwatch - Instead of a text field turning this option on places a stopwatch on the page with “Start/Stop” and “Reset” buttons next to it. You must have $g_use_javascript switched on for this to take effect. A bit gimickie, but who cares.
- $g_time_tracking_view_threshold - Access level required to view time tracking information - Default
DEVELOPER
. - $g_time_tracking_edit_threshold - Access level required to add/edit time tracking information - Default
DEVELOPER
. - $g_time_tracking_reporting_threshold - Access level required to run reports (not completed yet) - Default
MANAGER
.
If you give a user g_time_tracking_edit_threshold
you must give them g_time_tracking_view_threshold
aswell.
Database Changes
The time tracking information is attached to issue notes. Currently it is using an INT column type to hold the number of minutes. admin/schema.php
has an update to add this column to the database.
ALTER TABLE mantis_bugnote_table ADD COLUMN time_tracking TIME DEFAULT 0;
In previous versions the time_tracking column was held as a MySQL TIME column type. If you are using a CVS version and would like to upgrade to using the INT column, then the following SQL will help you convert the information to the new column type.
ALTER TABLE mantis_bugnote_table ADD COLUMN time_tracking_t INT DEFAULT 0; UPDATE bugnote_table SET time_tracking_t = (HOUR(time_tracking)*60) + (MINUTE(time_tracking)) + IF(SECOND(time_tracking)>30,1,0); ALTER TABLE mantis_bugnote_table DROP COLUMN time_tracking; ALTER TABLE mantis_bugnote_table CHANGE time_tracking_t time_tracking INT DEFAULT 0;
Feedback
Thanks for implementing these functions in mantis. Moreover a field for the estimated time would be very helpful - and of course a field for the remaining time would than make sense. This picture http://www.mantisbt.org/bugs/file_download.php?file_id=740&type=bug shows a nice implementation for that.
Please write your feedback here.