Projet

Général

Profil

Development #40521

message d'avertissement avant suppression de compte inutilisé : unité de temps

Ajouté par Frédéric Péters il y a environ 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
07 mars 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

"You have not logged since 730 days."; ce serait plus humain d'écrire "2 ans".


Fichiers

Révisions associées

Révision edab053f (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

commands: human duration in unused account email (#40521)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 4 ans

  • Sujet changé de message d'avertissement avant suppression de compte : unité de temps à message d'avertissement avant suppression de compte inutilisé : unité de temps
#2

Mis à jour par Frédéric Péters il y a environ 4 ans

Aussi, s/since $duration/for $duration/.

#3

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Assigné à mis à Valentin Deniaud
#4

Mis à jour par Valentin Deniaud il y a environ 4 ans

#5

Mis à jour par Frédéric Péters il y a environ 4 ans

J'allais pointer différents trucs (pluralize est à proscrire pour une internationalisation correcte) mais à regarder le module je me dis qu'on a juste à exploiter https://docs.djangoproject.com/en/1.11/ref/contrib/humanize/ , simplement avoir la date dans le contexte et lui faire confiance pour produire quelque chose d'humain. Je n'étais pas trop sûr du résultat mais il est satisfaisant (il dit "dans 1 année" plutôt que "dans 1 an" mais ça me va).

#6

Mis à jour par Valentin Deniaud il y a environ 4 ans

Effectivement, en reformulant la phrase on arrive à nos fins. Il faudra faire gaffe à garder une tournure qui fonctionne au moment des traductions (« one year ago » devient « il y a une année »).

Je cale le filtre dans le code et pas dans le template, un peu parce que comme ça on aura pas à s'en soucier dans publik-base-theme, mais en vrai c'est surtout qu'utiliser humanize dans le template ne fonctionne pas, sans que je trouve d'explication (oui j'ai pensé à l'ajouter à INSTALLED_APPS).

#10

Mis à jour par Paul Marillonnet il y a environ 4 ans

  • Statut changé de Solution proposée à Information nécessaire

Pourquoi avoir laissé « In {{ days_to_deletion }} days […]» dans le template ? Est-ce qu'on ne pourrait pas faire quelque chose du genre naturaltime(now()+timedelta(days=user.ou.clean_unused_accounts_deletion - alert_delay)) pour avoir un affichage du même genre pour cette date future ?

#11

Mis à jour par Paul Marillonnet il y a environ 4 ans

Frédéric Péters a écrit :

Je n'étais pas trop sûr du résultat mais il est satisfaisant (il dit "dans 1 année" plutôt que "dans 1 an" mais ça me va).

(D'ailleurs c'est je crois ce que Frédéric attend quand il donne cet exemple d'affichage d'une date future).

#12

Mis à jour par Paul Marillonnet il y a environ 4 ans

Autre remarque, sur la forme, naturaltime c'est un filtre de gabarit, ça me paraît plus logique de faire, dans le gabarit, quelque chose comme :

{% load humanize %}
…
Since your last logging was {{ last_login_date|naturaltime }}, …

#13

Mis à jour par Valentin Deniaud il y a environ 4 ans

Paul Marillonnet a écrit :

Pourquoi avoir laissé « In {{ days_to_deletion }} days […]» dans le template ? Est-ce qu'on ne pourrait pas faire quelque chose du genre naturaltime(now()+timedelta(days=user.ou.clean_unused_accounts_deletion - alert_delay)) pour avoir un affichage du même genre pour cette date future ?

Parce que le problème du ticket c'est d'afficher un nombre de jours inintelligible. Or le délai entre alerte et suppression est de maximum un mois, et afficher « 30 jours », c'est intelligible (si le délai est plus élevé, le problème est ailleurs).
La deuxième raison est technique, naturaltime, pour un nombre de jours élevé du genre autour de 365 ou 720, va renvoyer « 1 année » ou 2, c'est à dire arrondir correctement et ne pas faire quelque chose de précis et moche. En revanche si days_to_deletion vaut 14, naturaltime dit « une semaine et 6 jours », c'est moche et moins bien que « 14 jours ».

Autre remarque, sur la forme, naturaltime c'est un filtre de gabarit, ça me paraît plus logique de faire, dans le gabarit

Comme noté plus haut, j'avais essayé sans réussir, mais je m'y suis repenché et j'ai trouvé le problème, on ne peut pas utiliser de filtres à l'intérieur de {% blocktrans %}, il faut passer par with. C'est donc corrigé.

#14

Mis à jour par Paul Marillonnet il y a environ 4 ans

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

Valentin Deniaud a écrit :

Parce que le problème du ticket c'est d'afficher un nombre de jours inintelligible. Or le délai entre alerte et suppression est de maximum un mois, et afficher « 30 jours », c'est intelligible (si le délai est plus élevé, le problème est ailleurs).
La deuxième raison est technique, naturaltime, pour un nombre de jours élevé du genre autour de 365 ou 720, va renvoyer « 1 année » ou 2, c'est à dire arrondir correctement et ne pas faire quelque chose de précis et moche. En revanche si days_to_deletion vaut 14, naturaltime dit « une semaine et 6 jours », c'est moche et moins bien que « 14 jours ».

Oui t'as complètement raison.

Comme noté plus haut, j'avais essayé sans réussir, mais je m'y suis repenché et j'ai trouvé le problème, on ne peut pas utiliser de filtres à l'intérieur de {% blocktrans %}, il faut passer par with. C'est donc corrigé.

Yep nickel, ack.

#15

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit edab053f92495b0eda214697a4a6b3d9541e96b8
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Mar 12 12:22:57 2020 +0100

    commands: human duration in unused account email (#40521)
#16

Mis à jour par Paul Marillonnet il y a environ 4 ans

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

Formats disponibles : Atom PDF