OpenEdition / checklist-lodel

GNU General Public License v3.0
3 stars 0 forks source link

Tester plusieurs publications #35

Closed brrd closed 3 years ago

brrd commented 5 years ago

Possible d’avoir un template qui affiche toutes les publications d’un site mais il faut voir comment l’envisager : risque d’être particulièrement long. Normalement ne devrait pas poser problème pour autant puisque Checklist a un système de queue déjà en place.

Autrement, la façon dont est construite Checklist (avec un noyau divisé en deux parties : test d’un document / interface), il peut être possible de l’utiliser sans charger l’interface, pour faire des vérifications en ligne de commande. Cette approche est déjà intégrée dans le noyau, il suffit de la développer si on souhaite poursuivre cette idée. Ensuite possible de recevoir des récapitulatifs, soit dans un .csv, soit par mail.

amandine-texier commented 4 years ago

La piste envisagée actuellement est plutôt celle-ci :

Il faudrait permettre aux seuls administrateurs Lodel, de lancer les vérifications Checklist sur plusieurs publications à la fois. Pour cela, la meilleure option semble d’ajouter un template dans Checklist qui y serait consacré, où il serait possible de renseigner les ID des publications qu’on souhaiterait tester : soit plusieurs ID, soit l’ID d’un parent dont il faudrait tester tous les enfants (exemple : “collections” sur OpenEdition Books). Si cette option n’est pas possible, il peut être intéressant d’explorer l’idée d’une application séparée à lancer directement de son ordinateur. Voir l’option la plus simple et la plus facilement réalisable.

Ce jour, des tests ont été effectués pour s'assurer du comportement actuel de Checklist lors de la vérification de plusieurs numéros (particulièrement longs et lourds) :

brrd commented 4 years ago

Il faudrait permettre aux seuls administrateurs Lodel, de lancer les vérifications Checklist sur plusieurs publications à la fois. Pour cela, la meilleure option semble d’ajouter un template dans Checklist qui y serait consacré, où il serait possible de renseigner les ID des publications qu’on souhaiterait tester : soit plusieurs ID, soit l’ID d’un parent dont il faudrait tester tous les enfants (exemple : “collections” sur OpenEdition Books). Si cette option n’est pas possible, il peut être intéressant d’explorer l’idée d’une application séparée à lancer directement de son ordinateur. Voir l’option la plus simple et la plus facilement réalisable.

En fait tout dépend de ce que vous voulez comme sortie: un affichage dans une interface ou un export CSV à exploiter dans Excel ? Dans le premier cas il faut passer par le navigateur et coder un template. Dans le second cas il faut voir, la ligne de commande me semble le plus simple mais peut-être que c'est aussi faisable dans le navigateur. Si vous voulez une interface, il faudrait expliciter la façon dont vous voulez que les résultats s'affichent : que faut-il mettre en valeur (un score qui concerne tous les numéros, des stats d'erreurs...) ? comment ? pour quel type d'exploitation ? (copier-coller dans un mail ou un tableau Excel, etc.). Vu la quantité de données à traiter, si on ne clarifie pas ça dès le début je pense qu'on prend le risque de passer à côté du besoin.

mais de nombreuses erreurs de vérifications sur des documents (plus ou moins 200 par numéros, qui contiennent environ 250 documents). La vérification a été relancée ensuite seulement sur un numéro et il n'y a eu aucune erreur de vérification, donc ce doit être dû soit à au fait d'avoir lancé la vérification sur plusieurs numéros à la fois, soit de ne pas avoir gardé le focus sur la page.

C'est étrange cette histoire de focus et d'erreurs de vérification. Est-ce qu'il serait possible d'avoir des détails sur les erreurs en question ? Mauvaises notifications ? Oubli de notifications ? Exceptions lancées par Checklist (auquel cas il faudrait le message d'erreur) ? Si ça concerne des tests en particulier, lesquels ? Serait-il possible d'avoir un accès pour essayer de reproduire le problème.

amandine-texier commented 4 years ago

En fait tout dépend de ce que vous voulez comme sortie: un affichage dans une interface ou un export CSV à exploiter dans Excel ? Dans le premier cas il faut passer par le navigateur et coder un template. Dans le second cas il faut voir, la ligne de commande me semble le plus simple mais peut-être que c'est aussi faisable dans le navigateur. Si vous voulez une interface, il faudrait expliciter la façon dont vous voulez que les résultats s'affichent : que faut-il mettre en valeur (un score qui concerne tous les numéros, des stats d'erreurs...) ? comment ? pour quel type d'exploitation ? (copier-coller dans un mail ou un tableau Excel, etc.). Vu la quantité de données à traiter, si on ne clarifie pas ça dès le début je pense qu'on prend le risque de passer à côté du besoin.

J'ai transmis les interrogations avec une proposition de réponse, je te tiens au courant dès que c'est validé et que j'ai confirmation

C'est étrange cette histoire de focus et d'erreurs de vérification. Est-ce qu'il serait possible d'avoir des détails sur les erreurs en question ? Mauvaises notifications ? Oubli de notifications ? Exceptions lancées par Checklist (auquel cas il faudrait le message d'erreur) ? Si ça concerne des tests en particulier, lesquels ? Serait-il possible d'avoir un accès pour essayer de reproduire le problème.

Je viens de retester en lançant cinq numéros d'un coup et l'erreur est la suivante : "Erreur lors du chargement de la source : 2773." (2773 étant l'ID du document). En tous cas c'est hyper bien géré dans le template par contre, chaque document est rayé / grisé :

2020-04-27 09_39_07-Varia – Archéologie médiévale (OpenEdition Checklist)

Si je clic sur "Reéssayer", j'obtiens à nouveau l'erreur mais une couleur de vérification apparaît en fond :

2020-04-27 09_40_32-Varia – Archéologie médiévale (OpenEdition Checklist)

Du coup je me demande si la vérif a bien été faite et si le signe "Attention" ne reste pas par erreur. Si je rafraichis, les 6 erreurs se transforment en 6 documents non vérifiés, et si je relance la vérification (que ce soit pas "contrôler tout" ou sur chaque document), j'obtiens à nouveau la même erreur.

Si je vide le cache et que je relance la vérification sur le même numéro, sans quitter la page, je n'ai plus aucune erreur. Je t'ai créé un accès pour que tu puisses tester également.

brrd commented 4 years ago

Merci pour ces infos utiles. C'est très bizarre, je vais regarder ça pour essayer de comprendre ce qui se passe.

Juste une autre précision : quand tu dis "lancer sur plusieurs numéros", ça veut dire dans lancer la relecture simultanément des onglets différents du navigateur en même temps ? Le cas échéant, est-ce que les erreurs apparaissent dans tous les numéros testés, ou juste ceux qui tournent en arrière-plan ?

amandine-texier commented 4 years ago

J'ai lancé la vérification sur un onglet, puis sans attendre je passe sur l'autre onglet pour lancer la vérification et ainsi de suite jusqu'à revenir au premier onglet. Sur le test que j'ai refait aujourd'hui sur cinq volumes, je n'ai pas eu d'erreur sur le premier (j'avais oublié de préciser pardon), du coup j'ai bien l'impression que ça arrive parce que les autres onglets sont en arrière plan...

brrd commented 4 years ago

OK, je pense que le problème ne vient pas du focus, mais d'un timeout. Checklist utilise normalement une queue pour charger les documents les uns après les autres afin d'éviter les timeout. Le truc, c'est que si on le lance 5 fois en simultané, ça fait 5 queues qui s'exécutent en même temps et qui font embouteillage. Le temps que la première instance ait fini de s'exécuter, les autres se sont déjà mises en timeout. Ce qui expliquerait que ça fonctionne dans le premier onglet mais pas dans les suivants.

Ça confirme la nécessité d'avoir une vraie solution conçue pour vous permettre de tester plusieurs numéros en lot.

Par contre ce qui est moins normal c'est que le bouton "Réessayer" ne fonctionne pas. Il faut que je regarde ce qu'il se passe là.

amandine-texier commented 4 years ago

En fait tout dépend de ce que vous voulez comme sortie: un affichage dans une interface ou un export CSV à exploiter dans Excel ? Dans le premier cas il faut passer par le navigateur et coder un template.

Un export CSV nous paraît être la meilleure option.

Dans le second cas il faut voir, la ligne de commande me semble le plus simple mais peut-être que c'est aussi faisable dans le navigateur.

Malheureusement en ligne de commande ça risque d'être compliqué de notre côté, si je n'ai pas compris de travers Florentin et Jeff m'ont expliqué que, comme tout Checklist est en JS, il faudrait installer un serveur node juste pour ça, ce qui serait assez lourd.

Si vous voulez une interface, il faudrait expliciter la façon dont vous voulez que les résultats s'affichent : que faut-il mettre en valeur (un score qui concerne tous les numéros, des stats d'erreurs...) ? comment ? pour quel type d'exploitation ? (copier-coller dans un mail ou un tableau Excel, etc.). Vu la quantité de données à traiter, si on ne clarifie pas ça dès le début je pense qu'on prend le risque de passer à côté du besoin.

Pour préciser l'usage qu'on envisage, nous avons besoin de ces vérifications sur plusieurs publications pour la vérification de sites entiers, de collections ou bien de certains identifiants (notamment pour les livres issus du programme de soutien à la numérisation). L'avantage du CSV est qu'on peut soit voir les erreurs et faire les corrections nous-mêmes, soit le mettre en forme et le transférer aux prestataires ou éditeurs.

Dans le CSV il me semble que ce qu'il faudrait mettre en valeur ne sont pas les types d'erreurs (ce qui tient plus des statistiques qualité) mais quelles publications comportent des erreurs (ou pas) et si oui une liste de ses erreurs par ID.

brrd commented 4 years ago

Malheureusement en ligne de commande ça risque d'être compliqué de notre côté, si je n'ai pas compris de travers Florentin et Jeff m'ont expliqué que, comme tout Checklist est en JS, il faudrait installer un serveur node juste pour ça, ce qui serait assez lourd.

Non non, pas besoin de serveur node, on peut tout faire sur le client. L'idée c'est de coder un script en node qui exécute checklist sur le site cible dans un headless chrome (ou équivalent), et qui output un CSV quelque part sur le disque. Mais le script s'installe et s'exécute sur la machine cliente. Rien à mettre en place pour vos devs.

Après il faut que je regarde si le navigateur est capable de fabriquer facilement du CSV (sans doute que oui en fait), auquel cas on pourra faire ça dans une interface. Mais dans les deux cas le fonctionnement est le même sous le capot.

Pour préciser l'usage qu'on envisage, nous avons besoin de ces vérifications sur plusieurs publications pour la vérification de sites entiers, de collections ou bien de certains identifiants (notamment pour les livres issus du programme de soutien à la numérisation). L'avantage du CSV est qu'on peut soit voir les erreurs et faire les corrections nous-mêmes, soit le mettre en forme et le transférer aux prestataires ou éditeurs.

Oui, le CSV vous permet vraiment de faire ce que vous voulez avec les filtres excel etc.

Dans le CSV il me semble que ce qu'il faudrait mettre en valeur ne sont pas les types d'erreurs (ce qui tient plus des statistiques qualité) mais quelles publications comportent des erreurs (ou pas) et si oui une liste de ses erreurs par ID.

Que dis-tu d'un grand tableau avec une ligne pour chaque notification, avec les colonnes du genre : "Type de document", "ID publication", "ID document", "Message de notification", "Nombre" et "Type" (et éventuellement d'autres colonnes utiles) ? Comme ça vous avez tous les détails et vous pouvez filtrer les colonnes par publi ou faire des stats un peu poussées dans une deuxième feuille de calcul excel.

Le seul truc c'est que dans ce cas de figure, si une publication (ou un doc) n'a pas d'erreur alors il n'apparaitra pas dans le tableau. Ou alors il faudrait ajouter façon de dire "Rien à signaler pour ce document" dans le tableau (ce qui est faisable, faut juste voir sous quelle forme).

brrd commented 4 years ago

Après il faut que je regarde si le navigateur est capable de fabriquer facilement du CSV

Je viens de regarder et : oui, c'est facile. Donc à priori on peut partir sur une solution dans le navigateur.

brrd commented 4 years ago

Voir ici un problème qu'il faudra régler si on veut pouvoir tester une plus grosse quantité de documents : #77.

brrd commented 3 years ago

J'ai terminé le développement de l'export CSV. Il ne reste plus qu'à valider le fichier obtenu de votre côté, et ajouter une option dans les options du plugin pour permettre aux rédacteur d'avoir accès à cette fonctionnalité. Je laisse ce ticket ouvert en attendant.

brrd commented 3 years ago

J'ai ajouté une option dans la configuration de Checklist qui lorsqu'elle est cochée permet d'autoriser les rédacteurs à utiliser l'export CSV : http://checklist.labocleo.org/test/lodel/admin/index.php?lo=plugins&do=view&name=checklist