Projet

Général

Profil

Bug #46346

humanize parle parfois américain

Ajouté par Thomas Noël il y a plus de 3 ans. Mis à jour il y a 9 mois.

Statut:
Fermé
Priorité:
Bas
Assigné à:
Version cible:
-
Début:
04 septembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Vu sur #46285 :

  • form_var_montant|intcomma donne par exemple 20,245.50
  • form_var_montant|decimal|intcomma donne 20 245,50

La première forme est sans l10n, ce n'est pas normal. On devrait toujours avoir « 20 245,50 »

Révisions associées

Révision 2104e76e (diff)
Ajouté par Frédéric Péters il y a 9 mois

misc: override intcomma to always be called on decimals (#46346)

Historique

#1

Mis à jour par Thomas Noël il y a plus de 3 ans

  • Tracker changé de Development à Bug
#3

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

C'est à cause de l'implémentation de intcomma :

@register.filter(is_safe=True)
def intcomma(value, use_l10n=True):
    """ 
    Converts an integer to a string containing commas every three digits.
    For example, 3000 becomes '3,000' and 45000 becomes '45,000'.
    """ 
    if settings.USE_L10N and use_l10n:
        try:
            if not isinstance(value, (float, Decimal)):
                value = int(value)
        except (TypeError, ValueError):
            return intcomma(value, False)
        else:
            return number_format(value, force_grouping=True)
    orig = force_text(value)
    new = re.sub(r"^(-?\d+)(\d{3})", r'\g<1>,\g<2>', orig)
    if orig == new:
        return new
    else:
        return intcomma(new, use_l10n)

Si on a une chaîne, ça tente une conversion en entier qui foire, et ça enchaîne sur une utilisation de intcomma où l10n est désactivé et puis ça boucle sur une conversion par regexp jusqu'à ce que ce soit stable. La seule solution ce serait de surcharger intcomma pour faire un passage dans decimal avant.

#4

Mis à jour par Thomas Noël il y a plus de 3 ans

  • Priorité changé de Normal à Bas

Je propose de dire aux gens de toujours passer par |decimal ; c'est relativement logique.

#5

Mis à jour par Robot Gitea il y a 9 mois

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Frédéric Péters

Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Robot Gitea il y a 9 mois

  • Statut changé de En cours à Solution proposée
#7

Mis à jour par Robot Gitea il y a 9 mois

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

Lauréline Guérin (lguerin) a approuvé une pull request sur Gitea concernant cette demande :

#8

Mis à jour par Robot Gitea il y a 9 mois

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

Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :

#9

Mis à jour par Transition automatique il y a 9 mois

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

Mis à jour par Transition automatique il y a 6 mois

Automatic expiration

Formats disponibles : Atom PDF