Project

General

Profile

Development #31778

intégration matomo

Added by Frédéric Péters about 1 year ago. Updated 11 months ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
27 Mar 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Nouveau plan noté dans #19743 :

  • dans hobo un écran de configuration "statistiques de visite", qui contiendrait
    • deux boutons, un bouton pour la configuration automatique et un bouton pour ouvrir la configuration manuelle
    • la configiruation manuelle c'est une case à cocher "suivi des recommandations CNIL" et un textarea pour copier/coller du js
      • pour accompagner ça un ou deux paragraphes pour rappeler un peu les règles CNIL, peut-être expliciter qu'ainsi il n'y a rien à consentir et donc pas de bandeau, et un lien vers le site de la cnil.
      • évidemment quand dans le js il y a une référence google, ça désactive la case "suivi des recommandations CNIL"
  • tout ça pose simplement cnil_compliant_visits_tracking_js ou visits_tracking_js.
  • le clic sur le bouton "configuration automatique", il fait des appels à l'API de piwik/matomo
    • SitesManager.addSite(siteName, urls = '', etc.) (https://developer.matomo.org/api-reference/reporting-api#SitesManager)
    • UsersManager.addUser(userLogin, password, email, initialIdSite='')
      • en userlogin le nom du tenant, en password un truc généré à la volée, en email il faut vérifier si ça doit être unique ou pas, mais genre ça peut être (), en initiialIdSite ce qu'on aura reçu à l'appel précédent
    • on stocke le site id et le mot de passe (dans des variables hobo)
    • on tape dans cnil_compliant_visits_tracking_js le js de suivi, qu'on peut obtenir via SitesManager.getJavascriptTag(...)
  • quand on a site id et mot de passe, on peut utiliser l'action logme pour taper sur la page un lien emmenant directement l'utilisateur sur le piwik (cf https://matomo.org/faq/how-to/faq_30/)
    • ainsi on n'a pas besoin de communiquer d'identifiant ou de mot de passe
    • évidemment il y a des gens qui n'ont pas accès à hobo qui voudront également aller sur le piwik, là comme réponse c'est que ce lien, il peut être posé dans une cellule sur le portail agent.

0001-matomo-correct-README-file-31778.patch View (932 Bytes) Nicolas Roche, 29 Mar 2019 07:40 PM

0002-matomo-manage-matomo-s-webservices-31778.patch View (33.5 KB) Nicolas Roche, 29 Mar 2019 07:40 PM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (21 KB) Nicolas Roche, 29 Mar 2019 07:40 PM

0004-matomo-french-translation-31778.patch View (7.73 KB) Nicolas Roche, 29 Mar 2019 07:40 PM

0002-matomo-manage-matomo-s-webservices-31778.patch View (35.2 KB) Nicolas Roche, 03 Apr 2019 08:16 PM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (21.9 KB) Nicolas Roche, 03 Apr 2019 08:16 PM

0002-matomo-manage-matomo-s-webservices-31778.patch View (35.2 KB) Nicolas Roche, 04 Apr 2019 10:34 AM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (21.9 KB) Nicolas Roche, 04 Apr 2019 10:34 AM

0004-matomo-french-translation-31778.patch View (8.37 KB) Nicolas Roche, 04 Apr 2019 11:32 AM

0004-matomo-french-translation-31778.patch View (8.44 KB) Nicolas Roche, 05 Apr 2019 09:58 AM

0002-matomo-manage-matomo-s-webservices-31778.patch View (37.1 KB) Nicolas Roche, 08 Apr 2019 08:57 PM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (22.5 KB) Nicolas Roche, 08 Apr 2019 08:57 PM

0002-matomo-manage-matomo-s-webservices-31778.patch View (37.8 KB) Nicolas Roche, 15 Apr 2019 02:22 PM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (22.5 KB) Nicolas Roche, 15 Apr 2019 02:22 PM

0002-matomo-manage-matomo-s-webservices-31778.patch View (37.8 KB) Nicolas Roche, 16 Apr 2019 10:27 AM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (23.9 KB) Nicolas Roche, 16 Apr 2019 10:27 AM

0002-matomo-manage-matomo-s-webservices-31778.patch View (37.8 KB) Nicolas Roche, 16 Apr 2019 10:59 AM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (22.6 KB) Nicolas Roche, 16 Apr 2019 10:59 AM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (23.4 KB) Nicolas Roche, 17 Apr 2019 08:31 PM

0002-matomo-manage-matomo-s-webservices-31778.patch View (37.8 KB) Nicolas Roche, 19 Apr 2019 12:06 PM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (23.5 KB) Nicolas Roche, 19 Apr 2019 12:06 PM

0004-matomo-french-translation-31778.patch View (7.24 KB) Nicolas Roche, 19 Apr 2019 12:06 PM

0003-matomo-views-form-manual-and-automatic-configuration.patch View (23.4 KB) Nicolas Roche, 19 Apr 2019 01:44 PM


Related issues

Related to Hobo - Development #32796: matomo: générer une première visite depuis hobo au moment de la création de l'instance matomo Solution déployée 05 May 2019
Related to Hobo - Development #37576: Configuration automatique de matomo des instances multi-collectivités Solution déployée 12 Nov 2019

Associated revisions

Revision 95e60632 (diff)
Added by Nicolas Roche 11 months ago

matomo: correct README file (#31778)

Revision 71fdf9f7 (diff)
Added by Nicolas Roche 11 months ago

matomo: manage matomo's webservices (#31778)

Revision 2ffbf9ec (diff)
Added by Nicolas Roche 11 months ago

matomo: views form manual and automatic configuration (#31778)

Revision 3f29b2d3 (diff)
Added by Nicolas Roche 11 months ago

matomo: french translation (#31778)

History

#1 Updated by Nicolas Roche about 1 year ago

  • Patch proposed changed from No to Yes
  • File 0001-matomo-correct-README-file-19743.patch added
  • File 0002-matomo-manage-matomo-s-webservices-19743.patch added
  • File 0003-matomo-views-form-manual-and-automatic-configuration.patch added
  • File 0004-matomo-french-translation-19743.patch added
  • Status changed from Nouveau to Solution proposée

Attention aujourd'hui on peut avoir
- soit une variable 'cnil_compliant_visits_tracking_js'
- soit une variable 'visits_tracking_js' (dans le cas Google, et ça provoquera l'affichage d'un bandeau de consentement).

donc ranger le JS dans une variable ou l'autre suivant son contenu (merci Sergheï)

J'ai fait simple :
- si on utilise la configuration matomo automatique, alors on perd la précédente configuration matomo manuelle, et inversement.
- si on utilise la configuration matomo automatique, alors on perd le précédent contenu des variables 'visits_tracking_js'
et 'cnil_compliant_visits_tracking_js' (ces variables auraient pu être positionnées précédemment via l'IHM : Système > Variables)

Remarque: (dans ce second cas) si on perd le contenu de 'visits_tracking_js' alors elle disparaît de l'IHM (Système > Variables).
Par contre ce n'est pas le cas pour 'cnil_compliant_visits_tracking_js' qui reste accessible avec son nouveau contenu.
(je n'ai pas encore compris ce qui fait que les variables sont visibles dans l'IHM)

Remarque: si on supprime le site à la main dans matomo, mais pas l'utilisateur,
alors 'disable' puis 'enable-auto' via hobo ne re-positionne pas les droits d'accès de l'utilisateur.
Si besoin je peux appeler le webservice 'setUserAccess' pour corriger automatiquement les droits de l'utilisateur.

Vos remarques sont plus que les bienvenues.

#2 Updated by Nicolas Roche about 1 year ago

  • File deleted (0001-matomo-correct-README-file-19743.patch)

#3 Updated by Nicolas Roche about 1 year ago

  • File deleted (0002-matomo-manage-matomo-s-webservices-19743.patch)

#4 Updated by Nicolas Roche about 1 year ago

  • File deleted (0003-matomo-views-form-manual-and-automatic-configuration.patch)

#5 Updated by Nicolas Roche about 1 year ago

  • File deleted (0004-matomo-french-translation-19743.patch)

#7 Updated by Frédéric Péters about 1 year ago

Rapidement en testant.

S'il n'y a pas de config définie pour Matomo, ne pas exposer le bouton "automatique" (qui ne va pas fonctionner).

Dans le menu sur l'accueil le libellé est toujours "Matomo", il faudrait là aussi que ça soit "User tracking".

Dans le settings.py, il faut garder la partie execfile(local_settings_file) en dernier, pour permettre à la configuration de passer au-dessus des valeurs par défaut.

Comme on a une bonne valeur par défaut, on peut lui faire confiance, et faire settings.MATOMO_SERVER plutôt que passer par getattr().

Le code js inséré contient <!-- Matomo --> et <!-- End Matomo Code --> qui ne sont pas ok pour du js.

L'affichage de "Automatic mode" sans autre forme de procès est curieuse; une fois configuré je ferais disparaitre l'encart de description Matomo; j'afficherais juste (en infonotice également) le "Automatic mode" (en premier, avec le "excellent respect" dessous). Et pareil pour le mode manuel.

#9 Updated by Frédéric Péters about 1 year ago

J'ai poussé deux commits d'ajustements dans la branche,

  • pour réagencer/reformuler un peu les textes d'explication et libellés; (ce qui va demander ajustement à la traduction)
  • pour traduire un bout de js.

Le truc supplémentaire que je verrais bien, mais disons qu'on se le garde pour un ticket plus tard, c'est améliorer le compute_cnil_acknowledgment_level, pour 1) retourner "unknown" quand on n'a pas trop d'idée, 2) détecter d'autres hostiles (mais à part GL où à un moment il a été question de xiti, je n'ai pas de liste).

Voilà, si ça te va tu peux prendre mes deux commits et les intégrer dans les tiens (git rebase -i, fixup) et il me semble que ça sera bon.

#10 Updated by Nicolas Roche about 1 year ago

Merci Fred, j'ai intégré tes corrections.

Par contre, je n'ai pas réussi à re-faire les traductions.
Pourtant il me semble bien que c'est cette commande que j'avais exécuté dernièrement ?
(elle ne marche pas non plus sur master)

$ django-admin makemessages -l fr
CommandError: Unable to find a locale path to store translations for file build/scripts-2.7/manage.py

#11 Updated by Frédéric Péters about 1 year ago

Alors perso, je vais dans le hobo/ avec les sources et je fais ../manage.py makemessages -l fr.

#12 Updated by Nicolas Roche about 1 year ago

merci. Voici les traductions.

#13 Updated by Frédéric Péters about 1 year ago

  • Status changed from Solution proposée to Solution validée

J'ai ajouté un commit d'ajustement de la traduction, pour moi tu peux l'intégrer dans le tien puis mettre le tout sur master et pousser.

#14 Updated by Nicolas Roche about 1 year ago

Content que ça convienne !
Je ne vais pas pousser tout de suite : je vais demander l'avis de Thomas
et tester sur piwik (la version actuellement en prod).

#15 Updated by Frédéric Péters about 1 year ago

Je l'ai compté dans l'annonce des mises à jour de la prochaine version, si on reporte, je retire, pas de soucis.

et tester sur piwik (la version actuellement en prod).

Pas particulièrement utile, ce qu'il faut maintenant c'est avoir matomo en prod (je viens de faire #32017).

#16 Updated by Frédéric Péters about 1 year ago

Je l'ai compté dans l'annonce des mises à jour de la prochaine version, si on reporte, je retire, pas de soucis.

Et à réfléchir je vais attendre qu'on ait un matomo de prod pour annoncer ça.

#17 Updated by Nicolas Roche about 1 year ago

  • Status changed from Solution proposée to En cours

Remarques de Thomas (merci) :
- déduire 'matomo_enable' via la présence d'une des 2 variables [cnil_compliant_]visits_tracking_js
(permet d'assurer la compatibilité avec les configurations existantes)
- stocker toute l'url de connexion 'matomo_logme_url' (à la place du passwd) afin de la diffuser à combo
- déduire 'matomo_mode' de la présence de l'url de connexion
- retirer la variable hobo 'matomo_error' et passer l'erreur via les messages Django

#18 Updated by Nicolas Roche 12 months ago

J'ai utilisé le contenu '/* Put your JavaScript code here */'
dans la variable '..._tracking_js' pour que ma vue bascule en mode automatique.
J'aurais peut-être dû utiliser une variable de session par exemple, pour ne pas alourdir l'IHM.
Dites-moi...

#19 Updated by Nicolas Roche 12 months ago

J'ai finalement ajouté un model pour gérer proprement l'entrée dans la configuration manuelle évoquée ci-dessus.

#20 Updated by Nicolas Roche 12 months ago

Désolé, les 2 patchs ci-dessus ne passaient pas les tests (et étaient mauvais).
Voici donc la solution envisagée avec un modèle.

Cela dit, je réalise que je peux également fournir une solution qui n'oblige pas à créer de table en base
en utilisant les vues : je n'avais pas pensé à utiliser le même template pour 2 vues différentes.

#22 Updated by Frédéric Péters 12 months ago

Je ne pige pas trop; il y a une nouvelle vue "enabling", mais de l'accueil de hobo, on va toujours sur le matomo/.

De ce patch je ne vois pas quel pouvait être le problème et comment cette vue change quoique ce soit. ?

#23 Updated by Frédéric Péters 12 months ago

Dans un commentaire ici, il faudrait que tu décrives les différentes situations que la page matomo/ peut rencontrer, et pour chacune ce qu'elle doit afficher, façon :

  • aucune variable définie : boutons pour activer (automatiquement ou pas)
  • un tracking_js défini : ...
  • un cnil_compliant_tracking_js
    • dont on reconnait le contenu (genre le js contient ~ MATOMO_SERVER['url']) : ...
    • dont on ne reconnait pas le contenu : ...
  • etc.

#25 Updated by Nicolas Roche 12 months ago

Le 'niveau de respect des droits de l'usager' est calculé de façon simpliste :
  • Excellent: on detecte la fonction de gestion des cookie préconisée par la CNIL
  • Bon: on ne détecte pas 'google'
  • Mauvais: on détecte 'google'

Si le niveau est Bon ou Excellent : on stocke le code Javascript dans 'cnil_compliant_tracking_js' et donc on l'expose en l'état sur les front-ends.

Si le niveau est Mauvais : on le stocke le JS dans 'tracking_js', ce qui a pour effet d'afficher un bandeau à l'utilisateur afin qu'il accepte le code JS. S'il ne l'accepte pas, alors le code n'est pas ajouté aux pages front-ends.

Etant données ces 3 pseudo variables,
  • WS: settings.json est configuré pour permettre d'administrer un serveur matomo
  • ENABLED: concatenation de 'tracking_js' + 'cnil_compliant_tracking_js' non vide
  • MODE_AUTO: présence d'une url de login Matomo pour le client

voici le comportement de la vue principale :

ENABLED WS AUTO
non     ?    ?  -> topo sur les outils de mesure d'audiance
                   affiche 'Support is currently disabled.'
                   présence du bouton: 'Manual Configuration'
non     non  ?  -> informe que Matomo est recommandé par la CNIL
non     oui  ?  -> informe que l'on peut configurer Matomo
                   deuxième bouton: 'Automatic Configuration'

oui     ?    ?  -> présence du bouton 'Disable'
                   affiche un niveau de respect des droits de l'usager
oui     ?   non -> affiche 'Manual Configuration.'
                   affiche le formulaire pour remplir le code Javascript
oui     ?   oui -> deuxième bouton 'Open visit tracking dashboard'
                   affiche 'Automatic Configuration.'

Le 3 derniers patchs proposent différentes solutions au problème suivant :
Proposer le formulaire pour remplir le code Javascript lorsque l'on valide, après avoir appuyé sur le bouton 'Manual Configuration'. (ie: ENABLED reste à 'non' tant qu'aucun code Javascript n'est ajouté)

#26 Updated by Frédéric Péters 12 months ago

Parfait je vois; solution : dans la page d'activation du mode "manuel", déjà demander le js.

#28 Updated by Frédéric Péters 12 months ago

Je virerais le "Are you sure you want to enable manual user tracking support?" ainsi que le help_text=_('See...; aussi, l'attribut "size" n'existe pas pour les textarea, il existe "rows" et "cols" mais ici je n'en ferais rien (parce que ça doit être affiché aussi bien en popup qu'en pleine page), et j'ajouterais simplement aux CSS :

textarea#id_tracking_js {
       width: 100%;
}

#29 Updated by Nicolas Roche 12 months ago

fait :
- prise en compte des remarques ci-dessus
- déplacement de la dépendance de lxml de tox dans setup.py
- maj des traductions

#30 Updated by Nicolas Roche 12 months ago

oups, un test ne passait plus suite au changement du libellé sur le bouton.

#31 Updated by Frédéric Péters 11 months ago

  • Status changed from Solution proposée to Solution validée

J'avais compté ça pour la mise à jour jeudi dernier; c'est ok pour moi.

#32 Updated by Nicolas Roche 11 months ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 3f29b2d33dd1eb890cdf400c2850adf1a52f61b5
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Thu Apr 4 11:28:55 2019 +0200

    matomo: french translation (#31778)

commit 2ffbf9ec4351ec931806fb7d9d42457888c48247
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Mon Mar 18 20:02:26 2019 +0100

    matomo: views form manual and automatic configuration (#31778)

commit 71fdf9f7c51a1f63db84802296cc8fa6d67bed95
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Tue Mar 26 19:06:49 2019 +0100

    matomo: manage matomo's webservices (#31778)

commit 95e60632ab09545ac2e5d0afcca4a0107018938c
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Wed Mar 27 18:24:31 2019 +0100

    matomo: correct README file (#31778)

#33 Updated by Frédéric Péters 11 months ago

  • Status changed from Résolu (à déployer) to Solution déployée

#34 Updated by Nicolas Roche 11 months ago

  • Related to Development #32796: matomo: générer une première visite depuis hobo au moment de la création de l'instance matomo added

#35 Updated by Nicolas Roche 5 months ago

  • Related to Development #37576: Configuration automatique de matomo des instances multi-collectivités added

Also available in: Atom PDF