Projet

Général

Profil

Development #31778

intégration matomo

Ajouté par Frédéric Péters il y a environ 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
27 mars 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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.

Fichiers

0001-matomo-correct-README-file-31778.patch (932 octets) 0001-matomo-correct-README-file-31778.patch Nicolas Roche, 29 mars 2019 19:40
0002-matomo-manage-matomo-s-webservices-31778.patch (33,5 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 29 mars 2019 19:40
0003-matomo-views-form-manual-and-automatic-configuration.patch (21 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 29 mars 2019 19:40
0004-matomo-french-translation-31778.patch (7,73 ko) 0004-matomo-french-translation-31778.patch Nicolas Roche, 29 mars 2019 19:40
0002-matomo-manage-matomo-s-webservices-31778.patch (35,2 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 03 avril 2019 20:16
0003-matomo-views-form-manual-and-automatic-configuration.patch (21,9 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 03 avril 2019 20:16
0002-matomo-manage-matomo-s-webservices-31778.patch (35,2 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 04 avril 2019 10:34
0003-matomo-views-form-manual-and-automatic-configuration.patch (21,9 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 04 avril 2019 10:34
0004-matomo-french-translation-31778.patch (8,37 ko) 0004-matomo-french-translation-31778.patch Nicolas Roche, 04 avril 2019 11:32
0004-matomo-french-translation-31778.patch (8,44 ko) 0004-matomo-french-translation-31778.patch Nicolas Roche, 05 avril 2019 09:58
0002-matomo-manage-matomo-s-webservices-31778.patch (37,1 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 08 avril 2019 20:57
0003-matomo-views-form-manual-and-automatic-configuration.patch (22,5 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 08 avril 2019 20:57
0002-matomo-manage-matomo-s-webservices-31778.patch (37,8 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 15 avril 2019 14:22
0003-matomo-views-form-manual-and-automatic-configuration.patch (22,5 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 15 avril 2019 14:22
0002-matomo-manage-matomo-s-webservices-31778.patch (37,8 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 16 avril 2019 10:27
0003-matomo-views-form-manual-and-automatic-configuration.patch (23,9 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 16 avril 2019 10:27
0002-matomo-manage-matomo-s-webservices-31778.patch (37,8 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 16 avril 2019 10:59
0003-matomo-views-form-manual-and-automatic-configuration.patch (22,6 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 16 avril 2019 10:59
0003-matomo-views-form-manual-and-automatic-configuration.patch (23,4 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 17 avril 2019 20:31
0002-matomo-manage-matomo-s-webservices-31778.patch (37,8 ko) 0002-matomo-manage-matomo-s-webservices-31778.patch Nicolas Roche, 19 avril 2019 12:06
0003-matomo-views-form-manual-and-automatic-configuration.patch (23,5 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 19 avril 2019 12:06
0004-matomo-french-translation-31778.patch (7,24 ko) 0004-matomo-french-translation-31778.patch Nicolas Roche, 19 avril 2019 12:06
0003-matomo-views-form-manual-and-automatic-configuration.patch (23,4 ko) 0003-matomo-views-form-manual-and-automatic-configuration.patch Nicolas Roche, 19 avril 2019 13:44

Demandes liées

Lié à Hobo - Development #32796: matomo: générer une première visite depuis hobo au moment de la création de l'instance matomoFermé05 mai 2019

Actions
Lié à Hobo - Development #37576: Configuration automatique de matomo des instances multi-collectivitésFermé12 novembre 2019

Actions

Révisions associées

Révision 95e60632 (diff)
Ajouté par Nicolas Roche il y a presque 5 ans

matomo: correct README file (#31778)

Révision 71fdf9f7 (diff)
Ajouté par Nicolas Roche il y a presque 5 ans

matomo: manage matomo's webservices (#31778)

Révision 2ffbf9ec (diff)
Ajouté par Nicolas Roche il y a presque 5 ans

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

Révision 3f29b2d3 (diff)
Ajouté par Nicolas Roche il y a presque 5 ans

matomo: french translation (#31778)

Historique

#1

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Fichier 0001-matomo-correct-README-file-19743.patch ajouté
  • Fichier 0002-matomo-manage-matomo-s-webservices-19743.patch ajouté
  • Fichier 0003-matomo-views-form-manual-and-automatic-configuration.patch ajouté
  • Fichier 0004-matomo-french-translation-19743.patch ajouté
  • Statut changé de Nouveau à Solution proposée
  • Patch proposed changé de Non à Oui

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

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Fichier 0001-matomo-correct-README-file-19743.patch supprimé
#3

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Fichier 0002-matomo-manage-matomo-s-webservices-19743.patch supprimé
#4

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Fichier 0003-matomo-views-form-manual-and-automatic-configuration.patch supprimé
#5

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Fichier 0004-matomo-french-translation-19743.patch supprimé
#7

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Nicolas Roche il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

#13

Mis à jour par Frédéric Péters il y a environ 5 ans

  • Statut changé de Solution proposée à 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

Mis à jour par Nicolas Roche il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Statut changé de Solution proposée à 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

Mis à jour par Nicolas Roche il y a environ 5 ans

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

Mis à jour par Nicolas Roche il y a environ 5 ans

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

#20

Mis à jour par Nicolas Roche il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Nicolas Roche il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

#28

Mis à jour par Frédéric Péters il y a environ 5 ans

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%;
}
#30

Mis à jour par Nicolas Roche il y a environ 5 ans

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

#31

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Statut changé de Solution proposée à Solution validée

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

#32

Mis à jour par Nicolas Roche il y a presque 5 ans

  • Statut changé de Solution validée à 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

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#34

Mis à jour par Nicolas Roche il y a presque 5 ans

  • Lié à Development #32796: matomo: générer une première visite depuis hobo au moment de la création de l'instance matomo ajouté
#35

Mis à jour par Nicolas Roche il y a plus de 4 ans

  • Lié à Development #37576: Configuration automatique de matomo des instances multi-collectivités ajouté

Formats disponibles : Atom PDF