Export from Trac to TaskJuggler


This plugin allows you to export data from Trac to TaskJuggler to get a more comprehensive management tool and planning ability. You can group your task by milestone and MacroTask. TaskJuggler is a free and Open Source project management tool, that runs under the Ruby programming language and it is licensed under GPL.

The edit text page:

how looks my edit text page

TaskJuggler user interface, pink for working, green for free-time, yellow work on another task:

Taskjuggler UI, pink for working, green for free-time, yellow work on another task

For more screenshots on TaskJuggler, see here.

Bugs/Feature Requests

Existing bugs and feature requests for TaskjugglerPlugin are here.

If you have any issues, create a new ticket.


0 / 1


Download the zipped source from here.


You can check out TaskjugglerPlugin from here using Subversion, or browse the source with Trac.


  • See the README File in the zip file.
  • To learn more about TaskJuggler a complete manual is available here.
  • You will need to have the following:
    • Some special custom fields.
    • Unfortunately I'm not a Python dev so I wrote in PHP requirement for it: available for php 5.1.2


  1. Create new custom fields
    macro_task = select
    macro_task.label = Macro Task
    macro_task.options = MacroTask 1| MacroTask2 #change <- by your macro Task
    macro_task.order = 0
    estimatedhours = text
    estimatedhours.label = Plan 
    estimatedhours.value = 0
    estimatedhours.order = 2
    hours = text
    hours.label = Add Days
    hours.value = 0
    hours.order = 3
    estimatedfinal = text
    estimatedfinal.label = Actual
    estimatedfinal.value = 0
    estimatedfinal.order = 4
    totalhours = text
    totalhours.label = Nb days worked
    totalhours.value = 0
    totalhours.order = 5
    daysworked = textarea
    daysworked.label = days worked
    daysworked.cols = 23
    daysworked.rows = 6
    daysworked.order = 6
  2. Change the 2 settings on top of trac2TaskJuggler.php:
    PDO('sqlite:/home/intranet/intra/t3_trac/db/trac.db'); <- set your config
  3. Upload trac2TaskJuggler.php to your server.
  4. Edit trac.tjp for setting first_milestone macro AND as you want vacation, working hours.
  5. You can use your to retrieve your data automatically.
  6. The days worked area field will be set by the project manager or by the developer as explained here, one interval per line.
  7. You can add this javascript into site_header.cs template to deliver information, see screenshots:
    <script language="javascript" type="text/javascript">
    function AddEventListener(elem, evt, func, capture) {
        capture = capture || false;
        if(elem.addEventListener) elem.addEventListener(evt, func, capture);
        else elem.attachEvent('on'+evt, func);
        return func;
    add_legend = function() {
        var x = document.getElementById('daysworked');
        if(x) {
          var p = x.parentNode;
          var n = document.createElement('div')
 = "left";
          n.innerHTML = "Valeurs possibles: <ul><li>yyyy-mm-dd</li><li>yyyy-mm-dd - yyyy-mm-dd &nbsp;&nbsp;<u>/!\\</u> la 2ème valeur n'est pas inclus dans le calcul</li><li>yyyy-mm-dd +?d &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>/!\\</u> ? doit être remplacés par le nb de jour</li></ul>" ;
    AddEventListener(window, 'load', add_legend);

For english speaking users, the innerHTML line can be replaced with:

      n.innerHTML = "Possible values: <ul><li>yyyy-mm-dd</li><li>yyyy-mm-dd - yyyy-mm-dd &nbsp;&nbsp;<u>/!\\</u> the 2nd value is not included in the calculation </li><li>yyyy-mm-dd +?d &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>/!\\</u> ? must be replaced by the number of days</li></ul>" ;



Recent Changes

16580 by rjollos on 2017-05-10 20:56:23
Add source that was attached to project wiki page
2077 by mdelorme on 2007-03-05 16:39:16
New hack TaskjugglerPlugin, created by mdelorme


Author: mdelorme
Maintainer: Maxime Delorme

Last modified 3 years ago Last modified on Oct 25, 2017, 2:15:38 PM

Attachments (2)

Download all attachments as: .zip