blog.bressure.net

Carnet professionnel d'un informaticien

Application

Personnalisation de Trac: gestion des optgroup

admin

Trac est outils de gestion de projet de développement logiciel qui permet de suivre non seulement les bug et evolutions mais aussi d’avoir un wiki et un blog. Écrit en python il dispose de nombreux plugins.

La version officielle courante 0.12 ne gère malheureusement pas les groupements des éléments dans les listes déroulantes. Or il est bien pratique de grouper par thème les éléments de la liste « component » par exemple.

En regardant attentivement le code de ticket.html on s’aperçoit que le code script Genshi semble prévoir la génération de optgroup mais le bean de vue qui est dans la page n’est jamais généré pour ce cas. Pour y remédier il faut modifier les fichiers model.py et api.py qui se trouvent dans le répertoire

/trac/ticket

La fichier model.py devra être modifié pour pouvoir générer les « value object » correspondant aux éléments de la liste component, en y ajoutant l’information de groupement. Dans la classe Component il suffit de faire une jointure avec la table enum sur une nouvelle colonne de la table component. Dans mon cas particulier il s’agit de la colonne type_dem (voir le fichier diff joint)

Modification trac pour gérer les optgroup

Ensuite dans le fichier api.py il faut modifier la méthode fields de la classe TicketSystem afin de gérer la création du bean de vue adéquat i.e. incluant les informations d’optgroup. En fait il faut distinguer dans le cas d’un champ de type select, le cas particulier de la combo des Components. Si le module model.py est entièrement revisité pour renvoyer pour tous les champs une information de groupement alors la distinction n’est pas nécessaire.

Enfin la version 0.12 de Trac utilise le champ options pour contenir les valeurs posssible d’une liste déroulante. Or si on remplit également ce champ, ticket.html va produire à la fois des options classiques et des optgroup… Pour faire simple j’ai choisi de supprimer le test des valeurs possible dans web_ui.py

Avec un minimum de connaissance python, il est possible d’apporter de petites modifications à Trac qui se révèle être un outils qui gagne à être connu.

Tags:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Back to top