Dashbords externes via API REST et Streamsheets (opensource)

bonjour,

petit retour sur ce que j’ai fait
.
.

(vous vous en foutez ?! ok :yum: )

.

mon besoin

suivre la consommation (en temps) des 6 tâches qui composent mon activité, pour voir chaque mois ou chaque semaine, voire en temps réelle, la ou les tâches « gourmandes » et agir en connaissance.
.

pour ce faire

dans Dolibarr (v16, en local sous ubuntu 22.04 - apache + mariaDB + php8.1):

j’ai activé le module projet

j’ai créée l’activité en tant que projet, et ses 6 tâches

(en option) j’ai installé et activé le module externe « Feuille du temps », lien ci-bas., il est plus intuitif pour saisir, tous les jours, les temps consommés par chacune des tâche

OR ===> le module projet offre un dashboard mais pas le graphe qui m’intéresse, à savoir : un « camembert » divisé en 6 portions (temps consommé de chacune des 6 tâches)
.

tâtonnement

===> j’ai regardé le module MyList, il est très bien, mais il n’offre pas non plus ce dashboard (je l’achèterai volontiers s’il offrira un jour cette fonctionnalité)

===> exporter un csv chaque semaine et tracer via Calc ou Excel, etc. c’est une solution, mais assez manuelle

===> utiliser plutôt l’API REST (tasks) de Dolibarr avec Calc ou Excel : je n’ai pas trop creusé mais j’ai vu sur le forum ici que c’est possible avec Eecel+VBA

===> en cherchant encore j’ai trouvé Streamsheets un open source qui accepte directement l’interfaçage avec une API REST, en streaming, sans ajout de code.
.

travaux

j’ai donc installé en local Streamsheets (liens ci-bas)

je l’ai configuré pour une connectivité avec API REST (étape 0 sur la figure)

j’ai inséré le lien de l’API REST tasks (étape 1)

j’ai lancé la connexion API/Streamsheets : marché /arrêt en haut à droite du streamsheets (étape 2)

les données des tâches, format json, peuplent la fenêtre payload à gauche (étape 3)

je copie colle les champs qui m’intéressent (ref=nom_tâche, duration_effective=temps_consommé) et te de Payload vers les cellules et je fais glisser vers le bas pour extraire toutes les valeurs des champs sélectionnés (étape 4)

je convertis la colonne texte vers integer, col E vers col F, avec la fonction INT() (étape 5)


.
.

et enfin

je trace le camembert en utilisant les colonnes D et F, sur un autre streamsheets (mais ça aurait pu être sur le même streamsheets)

.
.

remarque

une fois votre dashboard tracé, n’oubliez pas de mettre à l’arrêt le streaming, et le relancer à chaque fois que vous voulez voir l’évolution (soit une fois par semaine, par mois, etc.), sauf si voulez voir l’évolution en temps réel et tout le temps, etc. (car je n’ai aucune idée sur la conso mémoire, énergie, de la sollicitation type streaming des API REST)

voilà, c’est fini ! :slight_smile:
.
.
.

bug
sinon, je suis tombé sur un bug (manque de pot pour moi :wink: ) concernant l’API REST qui m’intéresse, la fonction GET list tasks (lien ci dessous, que Pascal_z me l’a confirmé), je n’ai pas pu le débugger, j’ai juste « contourné » pour mon usage perso, en simplifiant la fonction « index » en question (j’ai utilisé une requête sur la table qui m’intéresse, llx_projet_task, et j’ai ignoré la jointure avec la table des llx_societes_commerciaux, qui cause le bug, etc.), au besoin, vous trouverez ci-bas, un zip, ma version de l’API REST tasks : api_tasks.class.php ( sous ubuntu elle est sur ce path /var/www/dolibarr/htdocs/projet/class/api_tasks.class.php), elle est la même que l’originale à la seule différence de la fonction index, en l’occurrence celle ci :
public function index($sortfield = « t.rowid », $sortorder = ‹ ASC ›, $limit = 100, $page = 0, $sqlfilters = ‹  ›)
que j’ai modifié pour contourner le bug (sans le résoudre encore une fois).

bonne lecture (et usage)

module externe feuille du temps :

Streamsheets:

bug tasks :

api_tasks.class.php.zip (4,4 Ko)

2 « J'aime »

Merci pour ce retour très intéressant sur l’utilisation de streamsheets.

1 « J'aime »

merci à toi aussi, tu as contribué à ce retex …

content en effet de faire un retex (4 heures de rédac quand même :smile:), mais franchement c’est un minimum infime, car j’en profite tellement des lectures des réponses des forums et retex des collègues, d’ici et d’ailleurs (forum ubuntu.fr, stackoverflow, git, etc.) tellment qu’on a envie d’apporter sa propre contribution, quand il y a de l’intéressant à rapporter…

bon dimanche à toi et à tous

Salut
J’ai lu en travers, est ce que le module pivot report (cf doli store) ne répond pas à ton besoin ?
A+

bonsoir,

je viens de le voir, il fait beaucoup plus de ce dont j’ai besoin, car il s’agit pour moi de juste un cammembert (X,Y) sur les tâches d’un projet.
ceci dit d’après le descriptif, je le trouve riche en fonctionnalités et flexible, j’en parlerai volontiers si l’occasion se présente.

bien à toi