Projet

Général

Profil

Development #50010

navigation entre snapshots

Ajouté par Frédéric Péters il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
10 janvier 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Dans la barre latérale de visualisation d'un snapshot ça pourrait être très utile d'avoir des liens précédent/suivant, pour passer depuis une page "profonde" (par exemple l'affichage des actions d'un statut) d'une version à une autre, quand on cherche l'origine d'un changement.


Fichiers

Révisions associées

Révision e833ab2b (diff)
Ajouté par Lauréline Guérin il y a plus de 3 ans

snapshots: add navigation links (#50010)

Historique

#1

Mis à jour par Lauréline Guérin il y a plus de 3 ans

  • Assigné à mis à Lauréline Guérin
#2

Mis à jour par Lauréline Guérin il y a plus de 3 ans

branche basée sur #50009

#4

Mis à jour par Frédéric Péters il y a plus de 3 ans

(la branche en erreur)

#6

Mis à jour par Frédéric Péters il y a plus de 3 ans

Pour les liens de pagination on fait aussi < et > donc je dirais que ça passe ici aussi (côté combo on a pour la navigation entre pages des icônes via FontAwesome mais il n'y existe pas de << ou |< pour le retour au premier).

Je garderais cependant tout le temps les 4 boutons présents, en marquant comme désactivé ceux ne menant pas sur une version différente, ce genre :

         if snapshot.id != snapshot.first:
-            r += htmltext(' <a href="../../%s/view/">&Lt;</a>') % (snapshot.first)
+            r += htmltext(' <a class="button" href="../../%s/view/">&Lt;</a>') % (snapshot.first)
+        else:
+            r += htmltext(' <a class="button disabled" href="../../%s/view/">&Lt;</a>') % (snapshot.first)

(mais c'est peut-être lisible de faire tenir sur une ligne, note que tu peux mettre le % à l'intérieur de l'htmltext vu qu'on sait que la variable est safe)

(et je me rends compte que le style n'existe pas → j'ai créé et mis un patch dans #50302)

Je serais aussi pour centrer les boutons,

     if snapshot.previous or snapshot.next:
-        r += htmltext('<p>')
+        r += htmltext('<p class="snapshots-navigation">')

et

+++ b/wcs/qommon/static/css/dc2/admin.scss

+p.snapshots-navigation {
+       text-align: center;
+}
#8

Mis à jour par Frédéric Péters il y a plus de 3 ans

        if snapshot.id != snapshot.first:
            r += htmltext(' <a class="button" href="../../%s/view/">&Lt;</a>' % (snapshot.first))
            r += htmltext(' <a class="button" href="../../%s/view/">&LT;</a>' % (snapshot.previous))
        else:
            r += htmltext(' <a class="button disabled" href="../../%s/view/">&Lt;</a>' % (snapshot.first))
            r += htmltext(' <a class="button disabled" href="../../%s/view/">&LT;</a>' % (snapshot.first))

Ça m'a l'air bizarre.

Ce que j'imaginais :

@@ -66,11 +66,19 @@ def snapshot_info_block(snapshot):
         r += htmltext('<p>')
         if snapshot.id != snapshot.first:
             r += htmltext(' <a href="../../%s/view/">&Lt;</a>') % (snapshot.first)
+        else:
+            r += htmltext(' <a href="../../%s/view/" class="disabled">&Lt;</a>') % (snapshot.first)
         if snapshot.previous:
             r += htmltext(' <a href="../../%s/view/">&LT;</a>') % (snapshot.previous)
+        else:
+            r += htmltext(' <a href="../../%s/view/" class="disabled">&LT;</a>') % (snapshot.previous)
         if snapshot.next:
             r += htmltext(' <a href="../../%s/view/">&GT;</a>') % (snapshot.next)
+        else:
+            r += htmltext(' <a href="../../%s/view/" class="disabled">&GT;</a>') % (snapshot.next)
         if snapshot.id != snapshot.last:
             r += htmltext(' <a href="../../%s/view/">&Gt;</a>') % (snapshot.last)
+        else:
+            r += htmltext(' <a href="../../%s/view/" class="disabled">&Gt;</a>') % (snapshot.last)
         r += htmltext('</p>')
     return r.getvalue()

(et j'ai tenté de faire tenir sur une ligne mais j'ai trouvé ça moins lisible,

+        r += htmltext(' <a href="../../%s/view/" %s>&Lt;</a>' % (
+            snapshot.first, 'class="disabled"' if not snapshot.first else ''))
</pe>
#9

Mis à jour par Lauréline Guérin il y a plus de 3 ans

En fait c'est pareil: si snapshot.id == snapshot.first, alors snapshot.previous vaut None
de même pour last et next

De plus:

if snapshot.previous:
    r += htmltext(' <a href="../../%s/view/">&LT;</a>') % (snapshot.previous)
else:
    r += htmltext(' <a href="../../%s/view/" class="disabled">&LT;</a>') % (snapshot.previous)

si on va dans le else, on aura un None dans l'url

#10

Mis à jour par Frédéric Péters il y a plus de 3 ans

Ok je trouve ça étonnamment compliqué :/

S'il y a un snapshot précédent, il y a nécessairement un snapshot.first, et donc il ne correspondra pas au snapshot actuel, et donc il y aura toujours first et previous actifs.

S'il n'y a pas de snapshot précédent, c'est qu'on est nécessairement sur le premier snapshot, et donc il y aura toujours first et previous inactifs.

Peut-être dans les else remplir les href avec "#" pour éviter cette impression d'erreur dans la répétition, et ajouter un commentaire type "# currently browsing the first snapshot, display links as disabled" ?

#12

Mis à jour par Frédéric Péters il y a plus de 3 ans

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

Oui, merci pour mon vieux cerveau :)

#13

Mis à jour par Lauréline Guérin il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit e833ab2ba0182a1facd5f4a256599d646668357f
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Tue Jan 12 15:39:09 2021 +0100

    snapshots: add navigation links (#50010)
#14

Mis à jour par Frédéric Péters il y a plus de 3 ans

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

Formats disponibles : Atom PDF