TaskJuggler: des rapports personnalisés
TaskJuggler permet de faire différents rapports. Par exemple, il permet de générer un rapport sous forme de calendrier mensuel listant toutes les tâches mois par mois. De même, il existe un calendrier hebdomadaire. Il existe aussi un rapport au format ICalendar (ICS). Problème: comment générer un calendrier pour une personne (ou une équipe)? Ce calendrier est ensuite mis à disposition de la ressource considérée pour qu'elle sache exactement jour après jour la tâche qui lui est affectée. Réponse ici.
Tout d'abord, il faut partir d'un projet existant. Ensuite, il faut s'attacher à deux points: les ressources et les rapports.
Dans l'exemple précédent, pour rappel, il y a trois ressources:
resource DEVs "Développeurs"{
resource CTE "Cédric Temple"
resource DEV "Autre Développeur"
}
Ces trois ressources sont: CTE, DEV et... DEVs (qui représente le groupe de ressources). Nous souhaitons obtenir un rapport hebdomadaire par ressource.
Pour cela, il faut modifier le rapport htmlweeklycalendar de la façon suivante:
htmlweeklycalendar "Calendar-weekly-CTE.html" {
scenarios realise
hidetask ~isDutyOf(CTE, realise)
}
htmlweeklycalendar "Calendar-weekly-DEV.html" {
scenarios realise
hidetask ~isDutyOf(DEV, realise)
}
htmlweeklycalendar "Calendar-weekly-DEVs.html" {
scenarios realise
hidetask ~isDutyOf(DEVs, realise)
}
Ici, nous avons trois rapports générant chacun un fichier HTML différent (le nom du fichier est en argument: "Calendar-weekly-CTE.html"). Dans chaque rapport, le scénario est précisé (les scénarios seront expliqués dans un autre article) mais il peut être commenté. Ensuite, on ajoute une ligne indiquant que l'on souhaite cacher les tâches (hidetask) qui ne sont pas (~) attachées (isDutyOf) à la ressource considérée (CTE).
Facile non?
Il est possible d'ajouter cette ligne pour chacun des autres rapports. Cependant, en général, seuls les rapports liés au calendrier ou à la répartition des tâches possèdent cette ligne dans leur définition.


