Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mélange de la bêta et de la version brouillon quand elles sont identiques #5906

Closed
Situphen opened this issue Aug 5, 2020 · 2 comments · Fixed by #6457
Closed

Mélange de la bêta et de la version brouillon quand elles sont identiques #5906

Situphen opened this issue Aug 5, 2020 · 2 comments · Fixed by #6457
Labels
S-BUG Corrige un problème

Comments

@Situphen
Copy link
Member

Situphen commented Aug 5, 2020

Description du bug

Quand on prend un contenu dont la version en bêta et la version en brouillon sont identiques (ce qui est vérifiable sur la page « Historique des versions » /contenus/historique/ID/SLUG/) alors les pages /contenus/ID/SLUG et /contenus/beta/ID/SLUG sont identiques et mélange ce qui touche à la bêta (bandeau d'information comme quoi cette page est une version en bêta, etc) et ce qui touche à la version brouillon (lien pour éditer le contenu, rajouter des sections, chapitres, etc).

Ligne sur la page « Historique des versions » qui indique que la version bêta et celle en brouillon sont identiques.

image

Capture d'écran du bug : mélange de ce qui touche à la bêta et à la version brouillon quand les versions sont identiques

image

Comportement attendu

La page /contenus/beta/ID/SLUG ne devrait pas avoir ce qui touche à la version brouillon (lien pour éditer le contenu, rajouter des sections, chapitres, etc) et la page /contenus/ID/SLUG ne devrait pas avoir ce qui touche à la bêta (bandeau d'information comme quoi cette page est une version en bêta, etc).

Capture d'écran de la page /contenus/ID/SLUG

image

Capture d'écran de la page /contenus/beta/ID/SLUG

image

Informations techniques

  • OS: Tous
  • Navigateur: Tous
  • Version/environnement de zds: dev
@Arnaud-D
Copy link
Contributor

Arnaud-D commented Oct 2, 2020

J'ai jeté un œil rapidement, et c'est moins facile que ce que j'aurai espéré, du moins pour moi.

L'état actuel

Le template est utilisé pour afficher n'importe quelle version d'un contenu qui n'est pas la version publiée. C'est un assez gros morceau (~800 lignes), avec beaucoup de logique, et qui a grandi de manière assez organique.

Le template fait appel à plusieurs types de logiques d'affichage qui dépendent :

  • des droits du visiteur (is_staff ou can_edit par exemple) ;
  • des états du contenu (content.in_beta ou content.in_validation par exemple) ;
  • du type de contenu (content.is_opinion ou content.requires_validation par exemple) ;
  • du commit (par exemple content.sha_draft == version ou validation.version == content.current_version) ;
  • et probablement d'autres petites choses.

Toute cette logique est bien compliquée et d'une complexité difficilement gérable pour un humain standard.

Une idée de solution

Beaucoup de logique devrait être remontée dans le code pour garder le template bête. Ce n'est pas trivial du tout vu la complexité du template, avec beaucoup de risques de casser l'affichage existant. Pour compenser, il y a de belles opportunités d'amélioration de l'interace à saisir.

Ce que je pense être une bonne idée n'est pas trivial à metttre en place. Les étapes seraient les suivantes :

  • identifier les éléments d'interface (par exemple le bloc licence, les blocs d'édition des auteurs, les tags, tous les différents menus, etc.) ;
  • pour chaque composant, identifier ses modes d'affichage intrinsèques (par exemple la licence a à la louche quatre modes : pas de licence définie et pas de boutons de modif, pas de licence définie et un bouton de modif, licence définie et pas de bouton de modif, licence définie et bouton de modif) ;
  • avoir des sous-template par composant si la gestion de l'affichage est assez complexe ;
  • mettre à jour le code du backend pour sélectionner les bons modes pour chaque élément en fonction de la page qui est demandée.

En plus de facilité la résolution du présent bug, ça pourrait aussi ouvrir la voie pour des améliorations comme #5499 et #5498, voire des choses plus ambitieuse (j'ai parlé d'une telle idée sur le forum).

@Karnaj
Copy link
Contributor

Karnaj commented Feb 7, 2021

Ce n'est pas vraiment grave que la page d'historique affiche que les versions sont identiques si elles le sont. Par contre, c'est au niveau de l'affichage du contenu qu'on veut pouvoir distinguer les choses.

En plus de ce que propose @Arnaud-D, je pense qu'il faudrait avoir un template par mode, donc un pour le brouillon, un pour la bêta, un pour la version publiée et un pour une version quelconque (potentiellement le même que celui du brouillon ?). L'idée c'est que si les différents composants sont suffisamment séparés dans différents sous-templates, il n'y aura plus qu'à les rassembler pour chaque template. Ça simplifie certaines choses.
Par exemple, je pense qu'on ne devrait pas avoir accès à des liens de modification lorsqu'on est sur la version brouillon. Il n'y a donc que sur ce template que ces liens apparaîtraient. Les autres versions auraient juste un lien « voir la version brouillon » disponible si on a les droits.

Et on ne va pas parler de la sidebar trop remplie, je crois qu'il y a d'autres issues qui traitent de son découpage. :)

@Arnaud-D Arnaud-D moved this to À trier in Suivi des tickets Dec 17, 2022
@Arnaud-D Arnaud-D moved this from À trier to Lié à une PR active in Suivi des tickets Feb 10, 2023
@github-project-automation github-project-automation bot moved this from Lié à une PR active to Clos in Suivi des tickets Oct 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-BUG Corrige un problème
Projects
Status: Clos
Development

Successfully merging a pull request may close this issue.

3 participants