Development #66565
Snapshot: faire un diff de l'inspect
0%
Description
Dans #58798 on notait: "Dans un second temps (autre ticket), ajouter le diff de la page inspect"
Après la sélection des deux versions à comparer, pouvoir basculer du mode xml actuel (diff des xml), au mode "inspect" (lorsque le type d'objet a une page inspect), qui compare les pages inspect des deux versions.
Fichiers
Révisions associées
Historique
Mis à jour par Lauréline Guérin il y a presque 2 ans
- Fichier FireShot Capture 031 - Backoffice de Démarches - Comparer - wcs.dev.publik.love.png FireShot Capture 031 - Backoffice de Démarches - Comparer - wcs.dev.publik.love.png ajouté
ça pourrait ressembler à ça.
Mis à jour par Lauréline Guérin il y a presque 2 ans
- Fichier 0001-snapshot-compare-inspect-of-2-versions-66565.patch 0001-snapshot-compare-inspect-of-2-versions-66565.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Lauréline Guérin il y a presque 2 ans
Mis à jour par Lauréline Guérin il y a presque 2 ans
Mis à jour par Lauréline Guérin il y a presque 2 ans
- Fichier 0001-snapshot-compare-inspect-of-2-versions-66565.patch 0001-snapshot-compare-inspect-of-2-versions-66565.patch ajouté
Render de l'inspect de 2 versions, et comparaison des résultats avec lxml.html.diff.htmldiff
.
(dep lxml ajoutée dans le setup et dans debian/control, comme vu sur d'autres modules)
Utilisation de pyquery pour parcourir le résultat des inspect et en sortir les onglets, et les panels.
(je l'ai ajouté dans le setup, ça suffit ?)
Les onglets: pour un workflow, on n'a pas toujours la même liste d'onglets présentée, ça dépend de la config du workflow. Du coup, comparaison des deux listes (v1, v2), et merge des deux (en prenant comme ordering de référence l'ordering des panels associés).
Les panels: le diff est fait sur le contenu des panels. Petite fonction locale pour corriger le résultat:- htmldiff ajoute un "Link: <href>" au texte d'une balise a; nettoyage
- suppression des balises ins/del vides (parce que parfois htmldiff en rajoute entre 2 li, et c'est moche)
- la méthode
html
de pyquery a tendance à fermer les balises vides: <span/>, <ul/>, <div/>; ce qui peut péter le rendu de la page. Feinte: injecter un espace.
Mis à jour par Frédéric Péters il y a presque 2 ans
- Fichier Screenshot 2022-07-19 at 14-28-14 Backoffice de Auquo - Comparer.png Screenshot 2022-07-19 at 14-28-14 Backoffice de Auquo - Comparer.png ajouté
La section des liens directs vers les statuts est délicate en local sur certaine situations ça fait (capture attachée), je serais simplement pour ne pas l'inclure en mode diff.
Je serais presque aussi à ne pas inclure le <div> info nombre de champs, pour éviter le moment où il sera noté que le rendu <ins>2 pages, 6</ins><del>2 pages, 4</del> champs n'est pas optimal, que juste <ins>6</ins><del>4</del> serait mieux.
Pour le rendu des statuts ajoutés/supprimés, avoir juste le <ins> ou <del> marqué ça fait bizarre (et le blanc sur vert manque de contraste), c'est un peu moche parce qu'il faut "annuler" le padding latéral prévu dans un le <h3> mais dans mes tests j'ai un rendu correct avec :
.inspect-tabs h3 { del, ins { display: block; flex: 1; color: black; margin-left: -1rem; margin-right: -0.5rem; .inspect-status--colour { margin-left: 1rem; } } }
Mis à jour par Lauréline Guérin il y a presque 2 ans
- Fichier inspect-diff.png inspect-diff.png ajouté
Sur un cas où un statut a changé de nom, on a ce rendu avec ta proposition css :/
Mis à jour par Lauréline Guérin il y a presque 2 ans
- Fichier inspect-diff-status-misplaced.png inspect-diff-status-misplaced.png ajouté
- Fichier inspect-diff-result-with-status-color.png inspect-diff-result-with-status-color.png ajouté
- Fichier inspect-diff-result.png inspect-diff-result.png ajouté
- Fichier 0001-snapshot-compare-inspect-of-2-versions-66565.patch 0001-snapshot-compare-inspect-of-2-versions-66565.patch ajouté
inspect-diff-status-misplaced.png (sans la modif css proposée): dans certains cas, lxml s'emmêle les pinceaux et place un div.section.status dans un autre alors qu'ils sont sensés être au même niveau dans le dom.
J'ai passé beaucoup de temps dans lxml.html.diff à essayer de comprendre ce qui se passe (un </div>
qui saute), à essayer de changer le template workflow-inspect.html pour le feinter, sans résultat.
De désespoir (carrément), j'ai fini par corriger le problème à coup de pyquery:
for elem in panel.find('div.section.status'): d = pq(elem) parents = d.parents('div.section.status') if parents: pq(parents[0]).after(d.remove())
Et ça fait inspect-diff-result-with-status-color.png
(avec une autre proposition de modif css)
inspect-diff-result.png: la même chose, sans les carrés de couleur pour les statuts (correspond au patch attaché)
Mis à jour par Frédéric Péters il y a presque 2 ans
- Statut changé de Solution proposée à Solution validée
Ok go dernière version (sans les carrés et avec le texte coloré plutôt que le fond pour les titres).
Mis à jour par Lauréline Guérin il y a presque 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 451b9a95b58eb8d35d546988e5796a8e962b9cc5 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Fri Jun 24 08:47:23 2022 +0200 snapshot: compare inspect of 2 versions (#66565)
Mis à jour par Transition automatique il y a presque 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
snapshot: compare inspect of 2 versions (#66565)