Des checklists opérationnelles intégrées directement dans vos éléments GLPI.
Ce plugin ajoute un onglet Checklists à n'importe quel élément GLPI (Tickets, Ordinateurs, Téléphones, etc.). Il permet de créer des checklists à partir de modèles réutilisables, de suivre l'avancement des tâches dans une vue Kanban (drag & drop), et d'automatiser leur association via le moteur de règles GLPI. Les tâches en retard déclenchent des notifications.
💡 Cas d'usage typique : onboarding d'un collaborateur, déploiement d'un poste, procédure de mise en service d'un équipement…
- 🗂️ Modèles de checklists réutilisables — définissez une fois, instanciez partout. Réordonnancement des tâches par glisser-déposer, gestion des entités.
- 📌 Onglet Checklist universel — disponible sur tous les itemtypes GLPI (Ticket, Computer, Phone, Monitor, NetworkEquipment, Printer, Software…).
- 🔁 Plusieurs checklists par élément — chacune avec sa propre barre de progression.
- 🟦 Vue Kanban « À faire » / « Fait » — bascule par clic, réordonnancement par drag & drop (SortableJS).
⚠️ Tâches exceptionnelles — ajoutez des actions ad hoc, distinguées visuellement des tâches verrouillées issues du modèle.- 📜 Historique immuable — qui a fait quoi et quand, par checklist.
- ⚙️ Moteur de règles GLPI — associez automatiquement un modèle à un élément selon son titre, son type, sa catégorie ITIL… (collection de règles native dans Administration › Règles).
- ⏰ Notifications des tâches en retard — tâche CRON avec délai configurable par modèle, au choix en heures / jours / semaines.
- 🎫 Intégration timeline des tickets — bouton « Valider une tâche checklist » + suivi automatique créé quand une tâche est cochée.
- 🔍 Sélecteur de modèle avec recherche à la création d'une checklist.
- 🌍 Bilingue FR / EN dès l'installation.
- 🔐 Contrôle d'accès — chaque action vérifie les droits de l'utilisateur sur l'élément parent (pas d'IDOR).
| Composant | Version |
|---|---|
| GLPI | 11.0.x |
| PHP | 8.1+ (testé sur 8.2) |
| Base de données | MariaDB 10.11 / MySQL 8 |
- Téléchargez la dernière release ou clonez ce dépôt.
- Copiez le dossier
plugin/checklist/dans le répertoireplugins/de votre GLPI :cp -r plugin/checklist /chemin/vers/glpi/plugins/checklist
⚠️ Le dossier doit impérativement s'appelerchecklist. - Dans GLPI : Configuration › Plugins → trouvez Checklist → Installer puis Activer.
- (Optionnel) Vérifiez la tâche planifiée dans Configuration › Actions automatiques (
checklistOverdue).
Configuration › Modèles de checklist → créez un modèle, ajoutez des tâches, choisissez l'entité et le délai de notification (heures / jours / semaines).
Ouvrez un Ticket (ou un Ordinateur…) → onglet Checklists → + Nouvelle checklist → choisissez un modèle (recherche intégrée) ou partez d'une checklist vide.
Administration › Règles › Checklist - Règles d'association de checklists → créez une règle (ex. « titre du ticket contient SIRH → modèle SIRH »). La checklist est créée automatiquement à l'ouverture de l'élément.
Définissez un délai sur le modèle. La tâche CRON checklistOverdue (horaire) notifie les tâches dépassant date_todo + délai et journalise l'événement.
| Phase | Contenu | État |
|---|---|---|
| 1 | Environnement Docker | ✅ |
| 2 | Schéma de base de données | ✅ |
| 3 | Modèles (CRUD) | ✅ |
| 4 | Onglet Checklist + Kanban | ✅ |
| 5 | Drag & drop / ordonnancement | ✅ |
| 6 | Historique | ✅ |
| 7 | Moteur de règles GLPI | ✅ |
| 8 | Notifications CRON (tâches en retard) | ✅ |
| 9 | API REST + tests | ⏳ |
| 10 | Droits fins par profil | ⏳ |
Détail complet dans PLAN.md.
Tous les endpoints AJAX vérifient les droits de l'utilisateur courant sur l'élément parent ($item->can($id, $right)), ce qui couvre droit + entité + accès spécifique. Les valeurs dynamiques sont échappées (HTML côté serveur via htmlspecialchars, JS via une fonction d'échappement dédiée). Le CSRF s'appuie sur le header X-Glpi-Csrf-Token de GLPI 11.
Une faille ? Voir SECURITY.md.
Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour l'environnement de dev, les conventions et le workflow i18n.
Distribué sous licence GPL v3+. Voir LICENSE.
Développé par Aprolex.