Tickets, dossiers, statuts et étiquettes dans Todomator
Le centre de Todomator est le ticket (table tbl_ticket, schéma Tickets dans schemas/tickets.js). Tout le reste organise des tickets ou en dépend.
Ce que contient un ticket
| Champ | Signification |
|---|---|
name | le titre (obligatoire) |
statusid | le statut ; un nouveau ticket est pending sauf indication contraire |
folderid | le dossier (client ou projet) auquel il appartient |
ownerid, userid, watcherid | l’auteur, les personnes assignées et les personnes qui ne font que le suivre |
ispublic | visible de tous ; un ticket public n’a pas de personnes assignées |
ispriority, isbillable | une marque de priorité et un indicateur facturable |
markdown, html | le contenu (l’interface utilise Markdown) |
tags | une liste d’étiquettes |
date, deadline | le jour du ticket (aujourd’hui par défaut) et une échéance facultative |
estimate, worked | l’estimation et les minutes déjà travaillées (suivi du temps) |
reference, source | texte libre pour relier le ticket à quelque chose d’extérieur |
parentid | le ticket parent, pour les sous-tâches |
attachments | les fichiers du ticket |
attrs | données JSON libres |
callback | une adresse qui reçoit le ticket quand il change (API) |
Les six statuts
La table cl_status est créée avec : pending (Pending), open (In progress), review (Review), postponed (Postponed), note (Note) et closed (Closed). Les noms sont traduits dans la langue de l’utilisateur.
Qui peut voir un ticket
Un ticket est visible de son propriétaire, des personnes de userid, des personnes de watcherid et de tout le monde quand ispublic est activé. La liste des dossiers qu’un utilisateur voit est limitée de la même façon : un dossier n’apparaît que si l’utilisateur peut y voir un ticket (les utilisateurs avec sa voient tout). La liste des tickets accepte type (par exemple pending, postponed, review, assigned, note, unread ou all), q (recherche), folderid, date, skip et limit (10 par défaut).
Dossiers et étiquettes
Un dossier a un nom, une icône, une couleur, un client, un e-mail et un téléphone, et des indicateurs : isbillable (les nouveaux tickets en héritent), isprivate, ispinned, isarchived et isdisabled. Seules les personnes ayant la permission admin (ou les administrateurs) gèrent les dossiers. Une étiquette a un nom, une couleur et une icône, et peut appartenir à un dossier.
Autour du ticket
- Commentaires (
Comments|create,Comments|update,Comments|remove) : texte Markdown attaché à un ticket. - Marques de non-lu et signets : chaque utilisateur a son propre état de non-lu et ses signets pour un ticket.
- Liens entre tickets et clonage d’un ticket.
- Historique et journaux des modifications d’un ticket.
- Pièces jointes :
POST /upload/accepte jusqu’à 5 Mo par requête. L’adresse d’un fichier est signée (/download/<id>-<signature>.<ext>) : les images, la vidéo et les PDF s’ouvrent dans le navigateur et les autres types sont téléchargés. - Mises à jour en direct : le WebSocket envoie un événement
refreshuniquement aux personnes qui peuvent voir le ticket, et indique aux autres qui regarde un ticket en ce moment.