Module Tâches
Le module Tâches d'HtkDoli vous permet de gérer les tâches associées à vos projets : consultation, création, suivi d'avancement et saisie de temps passé. Chaque tâche est obligatoirement rattachée à un projet.
Interface et Fonctionnalités (Liste)
La vue principale affiche la liste de toutes vos tâches, regroupées par mois ou par initiale selon le tri choisi.
Consultation et Recherche
- Barre de recherche : Recherche par référence ou libellé de la tâche.
- Tri :
- Date (Plus récent → Plus ancien)
- Date (Plus ancien → Plus récent)
- Référence (A-Z, Z-A)
- Filtres par statut d'avancement :
- Toutes
- À faire (progression = 0 %)
- En cours (progression entre 1 % et 99 %)
- Terminées (progression ≥ 100 %)
- Lettre / Mois flottant : Lors du défilement, une bulle affiche l'initiale (tri par référence) ou le mois en cours (tri par date).
Informations affichées (Cartes Tâche)
Chaque ligne représentant une tâche présente :
- Un indicateur visuel circulaire de progression :
- Cercle vide gris si la tâche n'a pas commencé.
- Pourcentage en bleu si la tâche est en cours.
- Coche verte si la tâche est terminée.
- Le libellé (ou la référence si pas de libellé).
- La date d'échéance si renseignée (en rouge si dépassée et tâche non terminée).
- La référence Dolibarr.
- L'identifiant du projet parent.
Actions rapides sur la liste
- Glisser vers la gauche (bord gauche → droite) : Modifier la tâche, et Terminer (si progression < 100 %).
- Glisser vers la droite (bord droit → gauche) : Supprimer la tâche.
- Menu contextuel (appui long) : Modifier, Terminer (si < 100 %), Supprimer.
- Bouton « + » dans la barre du haut : création d'une nouvelle tâche.
Pagination et États
- Synchronisation paginée par paquets de 50 tâches, bouton « Charger plus ».
- Pull-to-refresh pour resynchroniser.
- Message clair en cas de liste vide (différencié selon recherche/filtre/données).
Vue Détail / Création / Édition
L'écran de détail d'une tâche sert également à sa création et à son édition. Il est organisé en cartes :
En-tête
Titre dynamique : « Nouvelle tâche » ou « Modifier tâche » avec un descriptif d'aide contextuel.
Informations
- Titre de la tâche (champ requis).
- Description (zone de texte multilignes).
Notes
- Note publique (visible dans certains exports).
- Note privée (usage interne).
Planification
- Date de début (activable via un interrupteur, avec sélecteur de date).
- Date de fin (activable de même).
Avancement
- Slider de progression de 0 % à 100 %, par pas de 5 %.
- Priorité :
- Basse
- Normale
- Haute
- Charge prévue : Saisie de la durée prévisionnelle en heures et minutes.
Projet associé
- Sélecteur de projet parmi vos projets existants. Un projet doit être choisi pour pouvoir enregistrer la tâche.
- Message d'avertissement si aucun projet n'est disponible : « Un projet est requis pour créer une tâche. »
Validation et enregistrement
- Bouton Enregistrer désactivé tant que le titre est vide ou qu'aucun projet n'est sélectionné.
- En cas d'erreur (réseau, conflit, droits), une carte d'erreur s'affiche.
Saisie de Temps Passé
⚠️ Note technique : un écran de saisie de temps (
TaskTimeTrackingView) existe dans l'application mais n'est pas encore accessible depuis l'interface (aucun point d'entrée). La description ci-dessous documente son comportement prévu lorsqu'il sera branché.
Cet écran permettra d'enregistrer du temps de travail sur une tâche existante.
Champs disponibles
- Date de la saisie (par défaut : aujourd'hui ; sélecteur date + heure).
- Durée en heures (0 à 23) et minutes (0 à 59) via des sélecteurs dédiés.
- Note descriptive du travail effectué (optionnelle).
Enregistrement
- Le bouton Enregistrer n'est actif que si la durée saisie est supérieure à 0.
- La saisie n'est pas envoyée directement : elle est placée dans la file de synchronisation d'HtkDoli (
TaskTimeSpent) et poussée vers Dolibarr (endpointPOST /tasks/{id}/time) lors du prochain cycle de synchronisation. L'identifiant utilisateur est optionnel ; par défaut c'est l'utilisateur connecté. - Un toast « Saisie des temps enregistrée (Sync) » confirme la mise en file.
Affectation d'utilisateurs
Une feuille dédiée (TaskUserSelectionSheet) permet d'affecter des utilisateurs Dolibarr à une tâche. Cette affectation est utilisée pour le suivi des temps et le reporting côté serveur.
Utilisateurs assignés (vue détail)
Lors de la consultation d'une tâche existante, une carte « Utilisateurs assignés » (icône person.2.circle.fill) s'affiche dans le détail :
- Liste des utilisateurs actuellement assignés : avatar avec initiales, nom complet et fonction (ou login si la fonction n'est pas renseignée).
- Glisser-vers-la-gauche sur une ligne pour faire apparaître l'action « Délier » : l'utilisateur est immédiatement désassigné via l'API Dolibarr, puis la liste se rafraîchit.
- Bouton « Ajouter un utilisateur » en bas de la carte : ouvre la feuille de sélection (
TaskUserSelectionSheet). À la fermeture, la liste se recharge automatiquement. - Un message « Aucun utilisateur assigné à cette tâche. » est affiché si la liste est vide.
- Les actions d'ajout/de retrait sont conditionnées par la permission Dolibarr
task.creer(ouprojet.creer). Sans cette permission, la carte reste consultable mais les actions sont masquées. - Toute action (assignation, désassignation, erreur) déclenche un toast informatif.
Comportement Métier et Dolibarr
Cycle d'avancement
La progression d'une tâche est un entier de 0 à 100. HtkDoli interprète :
0→ À faire1à99→ En cours100+→ Terminée
Le badge visuel sur la liste suit cette logique automatiquement.
Droits et Permissions
- Lecture : Permission de lecture du module Tâches/Projets requise.
- Création (bouton « + » de la barre du haut) : conditionnée par la permission Dolibarr
projet.creer. - Gestion des utilisateurs assignés (ajout / retrait dans la fiche détail) : conditionnée par
task.creerouprojet.creer.
Création et Modification (mode hors ligne)
HtkDoli applique un fonctionnement « Offline-First » :
- Création : la tâche est d'abord enregistrée localement avec une référence provisoire (ex.
(PROV)-A1B2C3) et un statut initial à 0, puis ajoutée à la file de synchronisation (POST). - Modification : vos changements (progression, description, dates, etc.) sont appliqués immédiatement à l'écran (Optimistic UI) puis mis en file d'attente (
PUT). - Terminer (depuis la liste) : la progression passe à 100 % localement et un
PUTprogress: 100est envoyé ; en cas d'échec, la progression précédente est restaurée.
Synchronisation
- Liste paginée par paquets de 50.
- Création, modification et saisies de temps passent toutes par la file de synchronisation locale (
PendingModification) propagée par l'UpdateManager. Rien n'est envoyé en synchrone bloquant. - Le champ technique
fk_projectest utilisé pour la liaison au projet, etplanned_workload(en secondes) pour la charge prévue.
Captures d'écran
2 captures — cliquez pour agrandir