Projet

Général

Profil

Development #41036

Filtre d'affichage des numéros de téléphone français

Ajouté par Mikaël Ates il y a environ 4 ans. Mis à jour il y a presque 4 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Les champs de profil authentic de type numéro de téléphone sont stockés sans espaces.
Les champs de formulaire avec une validation numéro de téléphone également.

Lorsque ces champs sont affichés dans une cellule combo, il serait souhaité pouvoir les afficher de façon plus lisible de la façon suivante :

    01 23 45 67 89
    +33 1 23 45 67 89
    0033 1 23 45 67 89

Pour les numéros étrangers, d'autres filtres pourraient venir par la suite si celui développé ici devait être spécifique.


Fichiers


Demandes liées

Lié à w.c.s. - Development #41723: Filtre d'affichage des numéros de téléphone françaisFermé15 avril 2020

Actions

Révisions associées

Révision 1a6c51b9 (diff)
Ajouté par Thomas Noël il y a presque 4 ans

templatetags: add phonenumber_fr filter (#41036)

Historique

#2

Mis à jour par Thomas Noël il y a environ 4 ans

Note d'un vieux téléphoniste : c'est un peu plus compliqué que ça si on prend en charge les DOM (qui ne sont pas en +33).

En fait pour écrire un filtre "|phonenumber_fr" il faut suivre le plan de numérotation, par exemple https://fr.wikipedia.org/wiki/Plan_de_num%C3%A9rotation_en_France#Plan_de_num%C3%A9rotation_actuel_(depuis_1996) pour savoir ce qu'il faut gérer en entrée et le format à utiliser en sortie. On peut certainement se limiter à la gestion des numéro à dix chiffres qui commencent par un zéro (et afficher les autres "tels quels").

#3

Mis à jour par Mikaël Ates il y a environ 4 ans

Il faudrait que ça puisse afficher correctement les numéros stockés dans authentic dans les champs de profil de type Numéro de téléphone :

    r'^\+?\d{,20}$'
#4

Mis à jour par Thomas Noël il y a environ 4 ans

Oui j'ai compris je dis juste qu'un habitant de la Réunion il va indiquer 02 62 12 34 56 mais c'est +262 262 12 34 56 qu'il faudra afficher (parce que 02 62 c'est la Réunion). Les DOM c'est spécial, faut juste prendre ça en compte.

#5

Mis à jour par Mikaël Ates il y a environ 4 ans

Ok mais "On peut certainement se limiter à la gestion des numéro à dix chiffres qui commencent par un zéro (et afficher les autres "tels quels")." ne me semblait pas suffisant.

Par contre je ne trouve pas souhaitable de "modifier" ce qui est enregistré en base, ce que laisse penser "il va indiquer 02 62 12 34 56 mais c'est +262 262 12 34 56 qu'il faudra afficher".

Si l'usager a indiqué 0262123456 on affiche 02 62 12 34 56.

#6

Mis à jour par Thomas Noël il y a environ 4 ans

Mikaël Ates a écrit :

Ok mais "On peut certainement se limiter à la gestion des numéro à dix chiffres qui commencent par un zéro (et afficher les autres "tels quels")." ne me semblait pas suffisant.

Par contre je ne trouve pas souhaitable de "modifier" ce qui est enregistré en base, ce que laisse penser "il va indiquer 02 62 12 34 56 mais c'est +262 262 12 34 56 qu'il faudra afficher".
Si l'usager a indiqué 0262123456 on affiche 02 62 12 34 56.

Ah ok alors j'ai mal compris l'objectif. Je pensais que tu voulais normaliser ce que la personne a tapé, par exemple toujours "+33 2 12 34 56 78" même si la personne a tapé 0212345678.

Simplifions, donc, on serait sur une logique "ne gérer que les numéros français" avec :
  • on strip et on retire tout ce qui n'est pas chiffre, à l'exception d'un éventuel signe "+" au début
  • si le résultat est de la forme 0 + 9 chiffres alors on affiche 01 23 45 67 89
  • si c'est 0033 + 9 chiffres : 00 33 2 3 45 67 89 ; si c'est +33 + 9 chiffres : +33 2 3 45 67 89
    • (à voir si en plus de 33 on prends aussi en charge les DOM +/00 + 262,508,590,594,596 + 6 chiffres je dirais que oui car c'est pas très compliqué)
  • tout le reste, on l'affiche tel quel (sous-entendu : n'est pas un numéro FR, on ne connaît pas le format)
#7

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Oui c'est juste pour faire joli : ça ne permettra pas d'appeler la personne à tous les coups ni de faire fonctionner un PABX.

#8

Mis à jour par Mikaël Ates il y a environ 4 ans

Oui Thomas, c'est exactement ça. Au delà d'être joli, cela permettra d'avoir un affichage beaucoup plus lisible dans les cellules json utilisées dans le portail senior.

#9

Mis à jour par Mikaël Ates il y a environ 4 ans

  • Lié à Development #41723: Filtre d'affichage des numéros de téléphone français ajouté
#10

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Je signale ici une problématique, celle du copié/collé, ça peut d'abord passer par l'utilisation d'espaces non-sécables mais aussi par un bout de JS (<span class="phonenumber">+33 XX XX</span> pendant le :hover on remplace la valeur avec espace par une valeur sans espace et on défait quand on sort). On peut aussi penser à en faire un lien "tel:" pour les usages en téléphonie, sur tablette/mobile.

PS: je conseille de ne pas mettre le lien sur le numéro lui même qui devient difficilement copie/collable alors.

#11

Mis à jour par Thomas Noël il y a environ 4 ans

Benjamin Dauvergne a écrit :

Je signale ici une problématique, celle du copié/collé, ça peut d'abord passer par l'utilisation d'espaces non-sécables mais aussi par un bout de JS (<span class="phonenumber">+33 XX XX</span> pendant le :hover on remplace la valeur avec espace par une valeur sans espace et on défait quand on sort). On peut aussi penser à en faire un lien "tel:" pour les usages en téléphonie, sur tablette/mobile.

PS: je conseille de ne pas mettre le lien sur le numéro lui même qui devient difficilement copie/collable alors.

Je propose donc d'avoir une option « |phonenumber:"X" » où X est le symbole à utiliser pour l'espace, qui peut être vide (pour tel:). Par défaut, quand on ne précise rien, espace insécable.

(pour le JS magique ou la position du lien, ça sera dans le HTML qui utilisera le filtre)

#12

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

  • Assigné à mis à Thomas Noël
#13

Mis à jour par Thomas Noël il y a presque 4 ans

#14

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

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

Mis à jour par Thomas Noël il y a presque 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 1a6c51b9993e36b865b55087aaa124bbc3acc8a6
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Tue May 12 14:13:35 2020 +0200

    templatetags: add phonenumber_fr filter (#41036)

#16

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

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

Formats disponibles : Atom PDF