Nouveautés de la version 2.0

La branche 2.0 de CapTODO marque un tournant majeur : le module sort du seul cadre du back-office Dolibarr pour proposer une application mobile PWA complète, installable sur smartphone, tablette ou poste de bureau. Elle introduit aussi un journal de temps (logbook), un système de sigils pour saisir tags, priorités et tâches au fil de la frappe (avec support de la dictée vocale), des tags colorés sur tâches et projets, la gestion des sous-tâches avec navigation parent/enfant, un historique complet des modifications de tâches, un mode hors-ligne, des raccourcis clavier globaux et bien d'autres améliorations. Voici le détail.

Page d'accueil mobile de CapTODO avec l'en-tête de statistiques, les filtres Jour, Dem., Sem. et Cal. et la liste des tâches

Tableau de bord refondu

La page d'accueil du module dans Dolibarr a été entièrement repensée. À la place de l'ancien tableau plat listant les projets, vous arrivez désormais sur un véritable tableau de bord :

  • Quatre cartes de synthèse en haut : tâches en retard, à faire aujourd'hui, de la semaine, et terminées sur les 7 derniers jours.
  • Pictogrammes de priorité uniformes (urgente, haute, normale, basse, aucune) pour repérer en un coup d'oeil ce qui est important.
  • Sections "À faire aujourd'hui" et "Prochaines échéances" mises côte à côte pour planifier votre journée et votre semaine sans clic supplémentaire.
  • Vue manager : un nouveau droit dédié donne aux responsables un sélecteur "Mes tâches / Vue équipe" avec filtre par utilisateur et encart des tâches non assignées. Sans ce droit, chaque utilisateur ne voit que ses propres tâches et les tâches non affectées, ce qui préserve la confidentialité du périmètre de chacun.
  • Grille des listes TODO avec barre de progression par liste, à la place du tableau précédent.

Consultez la page Tableau de bord pour le détail des cartes, des pictogrammes et de l'activation de la vue manager.

Application mobile PWA

CapTODO inclut désormais une véritable application mobile au format Progressive Web App (PWA). Elle s'installe en un geste depuis Chrome (Android) ou Safari (iOS) et s'utilise comme une application native, avec son icône sur l'écran d'accueil.

  • Vue mobile : en-tête avec statistiques, filtres rapides Aujourd'hui / Semaine / Toutes, liste de tâches avec gestes swipe, bouton flottant d'ajout rapide.
  • Vue tablette : sidebar de navigation repliable à gauche, zone principale large pour la liste, mini-calendrier intégré dans la sidebar.
  • Sélecteur de projet : un menu permet de filtrer les tâches par liste TODO. Le choix est mémorisé entre les visites.
  • Mini-calendrier : un bouton "Cal." ouvre un calendrier qui permet de filtrer les tâches par date précise.
  • Gestes swipe sur les tâches : swipe à droite pour marquer comme terminée, swipe à gauche pour supprimer. Un toast avec bouton "Annuler" s'affiche pendant 5 secondes pour permettre d'inverser l'action.

Vue tablette de CapTODO avec la sidebar de navigation à gauche et la liste des tâches à droite

Pour le détail, consultez la page Application mobile.

Journal de temps (logbook)

Un journal de temps personnel permet de saisir au fil de l'eau ce sur quoi vous travaillez, sans avoir à choisir une tâche à l'avance. Vous pouvez ensuite assigner ces entrées aux bonnes tâches plus tard.

  • Saisie rapide : textarea multiligne avec sélecteur de durée. Ctrl+Entrée pour valider.
  • Onglets : Jour, Semaine, À assigner, Tout.
  • Swipe droite : assigner l'entrée à une tâche (popup d'autocomplétion).
  • Swipe gauche : supprimer l'entrée.
  • Mode sélection : appui long pour sélectionner plusieurs entrées et les fusionner en une seule.
  • Configuration des déclencheurs vocaux : vous pouvez personnaliser les mots-clés reconnus en dictée vocale.

Consultez la page Logbook pour plus de détails.

Sigils et dictée vocale

Un système de sigils (caractères déclencheurs) permet de saisir tags, priorités et tâches sans quitter le clavier.

Sigil Fonction Exemple
# Ajoute un tag Appeler fournisseur #urgent
! Définit la priorité Vérifier stock !haute
@ Référence une tâche existante Suite de @migration

Pendant la frappe, une popup d'autocomplétion s'affiche avec les suggestions correspondantes. Navigation au clavier (flèches, Tab, Entrée, Échap).

En dictée vocale, les mots "hashtag", "dièse", "priorité" et "arobase" sont automatiquement convertis en sigils. Vous pouvez ainsi dicter "Appeler fournisseur hashtag urgent priorité haute" et obtenir une tâche correctement taguée et priorisée.

Tags colorés sur tâches et projets

Les tâches et les projets peuvent désormais recevoir des tags colorés, créés à la volée depuis l'application mobile ou depuis Dolibarr.

  • Tags tâches : utilisent les catégories Dolibarr de type TYPE_PROJECT_TASK, stockés dans llx_categorie_task.
  • Tags projets : utilisent les catégories Dolibarr de type TYPE_PROJECT. La catégorie racine TODO est préservée lors des modifications.
  • Couleurs au format hexadécimal, affichées sous forme de pastilles dans la liste et la fiche tâche.

Consultez la page Tags pour la gestion détaillée.

Sous-tâches et tâche parente

Une tâche peut désormais avoir une tâche parente. La fiche tâche affiche :

  • Un fil d'Ariane vers la tâche parente (et au-delà, jusqu'à la racine du projet).
  • Une section sous-tâches listant les enfants de la tâche courante, avec leur statut.
  • Un sélecteur de tâche parente lors de l'édition, avec autocomplétion sur le projet courant.

Cela permet de découper des tâches complexes en étapes plus fines tout en conservant une vue d'ensemble.

Historique des tâches

Chaque tâche dispose d'un onglet Historique qui retrace les événements la concernant :

  • Modifications de titre, description, date d'échéance, priorité, assignation.
  • Changements de statut (ouvert, en cours, terminé, rouvert).
  • Saisies de temps avec note et progression.
  • Messages internes attachés à la tâche.

L'historique est trié chronologiquement et permet de comprendre ce qui s'est passé sur une tâche sur la durée.

Mode hors-ligne

L'application mobile fonctionne en mode dégradé sans connexion réseau. Une bannière orange "Hors ligne" s'affiche en haut de l'écran lorsque la connexion est perdue.

  • Lecture des tâches sans réseau : les tâches, projets et tags consultés en ligne sont mis en cache localement (IndexedDB). Vous pouvez continuer à les consulter et à naviguer entre eux.
  • Création/modification du logbook hors-ligne : vous pouvez créer, modifier et supprimer des entrées de journal de temps sans connexion. Elles apparaissent immédiatement dans la liste avec un marqueur d'attente de synchronisation, puis sont envoyées au serveur dès le retour du réseau.
  • Sécurité multi-utilisateurs : à la déconnexion, les entrées en attente sont effacées de l'appareil pour ne pas être récupérées par un autre utilisateur.

La création et la modification de tâches, projets et tags nécessitent en revanche une connexion (un message "Indisponible hors-ligne" s'affiche sinon).

Raccourcis clavier

L'application mobile supporte des raccourcis clavier globaux, particulièrement utiles sur tablette ou poste de bureau :

Touche Action
n Ouvre la saisie rapide d'une nouvelle tâche
t Affiche la vue "Aujourd'hui"
w Affiche la vue "Semaine"
a Affiche la vue "Toutes"
l Ouvre le journal de temps (logbook)
? Affiche l'aide des raccourcis clavier
Échap Ferme la modale ouverte ou quitte le mode sélection

Les raccourcis sont automatiquement désactivés lorsque vous êtes en train de taper dans un champ de saisie.

Récurrence automatique

Une tâche peut être marquée comme récurrente avec un intervalle configurable (quotidien, hebdomadaire, mensuel, annuel). Une tâche cron Dolibarr régénère automatiquement les occurrences à venir, en s'arrêtant à la date de fin de récurrence si elle est définie.

Messages internes avec fils de discussion

Le système de messages internes liés aux tâches et projets a été enrichi avec une vue complète des fils de discussion : les réponses sont regroupées sous le message d'origine, avec un indicateur visuel de l'historique complet. Consultez la page Messages.

Synchronisation calendrier

Les tâches peuvent être synchronisées automatiquement vers l'agenda Dolibarr sous forme d'événements (ActionComm). Les triggers TASK_CREATE, TASK_MODIFY et TASK_DELETE maintiennent la cohérence entre la tâche et son événement agenda.

  • Couleur de l'événement selon la priorité de la tâche.
  • Lien bidirectionnel : depuis l'agenda, on peut remonter à la tâche d'origine.
  • Vérification des permissions agenda du propriétaire de la tâche.

Pour la configuration, consultez la page Calendrier.

Améliorations techniques

  • API REST complète : nouveaux contrôleurs TaskController, ProjectController, MessageController, TagController, LogbookController, ConfigController, HomeController accessibles via pwa/api.php et utilisés par l'application mobile.
  • Compatibilité Dolibarr 18 à 23 : tous les points de compatibilité (filtres USF, TRIGGER_PREFIX, CommonHookActions, setStatut()) ont été adressés. Vérifié sur les stubs Dolibarr 18 et 23.
  • PHPStan niveau 4 : 0 erreur sur l'ensemble du module.
  • 293 tests PHPUnit (674 assertions) répartis sur trois suites : unitaire, intégration Dolibarr (SQLite in-memory), et HTTP fonctionnel (serveur PHP intégré).
  • 34 tests E2E Playwright contre la PWA : login, CRUD tâches, logbook, propagation backoffice -> PWA, projets, recherche/filtres, tags, cas limites de dates, récurrence, ACL multi-utilisateurs, refresh de token.
  • Index SQL ajoutés sur les tables llx_captodo_logentry, llx_captodo_todomessage et llx_captodo_todomessagereply pour accélérer les requêtes fréquentes.
  • Mise à jour des dépendances mobile : alignement sur @cap-rel/smartcommon et correction d'un conflit de build Vite/Rollup sur les barrel exports.
  • Logs unifiés : tous les dol_syslog du module sont préfixés CAPTODO pour faciliter le filtrage des journaux Dolibarr.
  • Documentation utilisateur : un ensemble complet de pages de documentation en français est désormais disponible dans docs/users/.

Mise à jour

Pour mettre à jour vers la version 2.0.5 :

  1. Remplacez les fichiers du module par ceux de la nouvelle version (via le gestionnaire de modules Dolibarr ou manuellement dans le répertoire htdocs/custom/captodo/).
  2. Désactivez puis réactivez le module dans la page Accueil > Configuration > Modules de Dolibarr afin d'appliquer les éventuelles modifications de base de données (nouveaux index SQL, extrafields sous-tâches et récurrence).
  3. Si vous utilisez l'application mobile, videz le cache du navigateur pour récupérer la dernière version de la PWA, ou attendez la prochaine ouverture pour que le service worker se mette à jour automatiquement.