HTKapp Logo

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 (endpoint POST /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 (ou projet.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 → À faire
  • 1 à 99 → En cours
  • 100+ → 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.creer ou projet.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 PUT progress: 100 est 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_project est utilisé pour la liaison au projet, et planned_workload (en secondes) pour la charge prévue.

Captures d'écran

2 captures — cliquez pour agrandir