zds-site icon indicating copy to clipboard operation
zds-site copied to clipboard

L'estimation du temps de lecture est ambigü

Open artragis opened this issue 4 years ago • 11 comments

Description du bug

Lorsqu'on a un tutoriel (un big tuto, la plupart du temps), qui est assez long, on affiche l'estimation du temps de lecture comme "1jour 6heures" par exemple. Le problème c'est que pour le lecteur lambda "1jour" c'est un peu ambigü : est-ce une journée de travail normal (7h)? une journée astronomique (24h?) une journée "à la louche" (du réveil au couché)?

Techniquement nous avons simplement besoin de limiter notre conversion aux heures : dans le cas précédent 30h de lecture, pour un big tuto qui fait 600pages en PDF c'est une estimation normale (une page toutes les trois minutes sachant qu'on demande aux gens de tester etc. c'est plutôt acceptable) alors que 1jour 6h est ambigüe.

Comment reproduire ?

La liste des étapes qui permet de reproduire le bug :

  1. Prendre l'archive du tutoriel arduino
  2. Le publier
  3. Regarder l'estimation du temps de lecture
  4. Constatez que c'est 1 jour 6h

Comportement attendu

L'estimation est de 30h.

Informations techniques

  • Version/environnement de zds: versions 29.1 ou inférieures

artragis avatar May 02 '20 15:05 artragis

Petit guide pour intervenir sur ce bug:

L'affichage de la durée est calculée à la ligne 118 du fichier templates/tutorialv2/includes/tags_authors.part.html

 {% if online and reading_time and not is_part_or_chapter %}
            {% trans "Temps de lecture estimé : " %}{{ reading_time|minute_to_duration }}
        {% elif online and not is_part_or_chapter %}
            {% trans "Temps de lecture estimé à moins d’une minute." %}
        {% endif %}

La fonction qui est utilisée est minute_to_duration qui est définie dans zds.utils.templatetags.minute_to_duration.

On remarque que cette fonction appelle un filtre django appelé timesince. C'est ce dernier qui fait le calcul et impose que nous ayons forcément la journée.

L'idée serait de se passer de cette méthode pour n'afficher que le nombre de minutes et d'heures sauf si value > 24 * 60 où on ne garde que les heures.

artragis avatar May 02 '20 15:05 artragis

Salut ! J'aimerai m'occuper de cette issue, je peux ou est ce que c'est plus pour des membres qui commencent vraiment ?

Benallegue-Mehdi avatar May 14 '20 05:05 Benallegue-Mehdi

Tu peux, fais toi plaiz

artragis avatar May 14 '20 05:05 artragis

Salut ! J'aimerai m'occuper de cette issue, je peux ou est ce que c'est plus pour des membres qui commencent vraiment ?

@ToxicScorpius Souhaites-tu toujours travailler dessus ? Je demande pour savoir si je peux t'attribuer la tâche. Ne t'en fais pas, si tu ne peux plus ou si tu ne veux plus, on peut supprimer l'attribution !

helmasaur avatar Jul 10 '20 01:07 helmasaur

On remarque que cette fonction appelle un filtre django appelé timesince. C'est ce dernier qui fait le calcul et impose que nous ayons forcément la journée.

L'idée serait de se passer de cette méthode pour n'afficher que le nombre de minutes et d'heures sauf si value > 24 * 60 où on ne garde que les heures.

Faut-il créer un nouveau filtre personnalisé ?

helmasaur avatar Jul 13 '20 02:07 helmasaur

ça peut être une solution, en effet;

artragis avatar Jul 13 '20 11:07 artragis

L'idée du filtre a été écartée car trop complexe pour rien.

Par ailleurs, il faudra réécrire son test.

helmasaur avatar Jul 19 '20 15:07 helmasaur

Je finalise le truc ou on laisse tomber ?

Benallegue-Mehdi avatar Oct 20 '20 02:10 Benallegue-Mehdi

C'est toujours ouvert donc il est encore temps de finaliser. :-)

Arnaud-D avatar Oct 20 '20 13:10 Arnaud-D

Je suis confus, elle est toujours ouverte ?

lokasku avatar Jun 27 '22 17:06 lokasku

oui car la PR de toxic n'a pas été mergée

artragis avatar Jun 27 '22 18:06 artragis

Pour info, le travail de Toxic est en attente de reprise, donc n'importe qui peut reprendre ce sujet, quitte à s'inspirer de son travail.

Arnaud-D avatar Oct 01 '22 11:10 Arnaud-D