Projet

Général

Profil

Development #24990

template tag "is_french_mobile_phone_number"

Ajouté par Frédéric Péters il y a plus de 5 ans. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
03 juillet 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non
Tags:

Description

Pour appliquer à une variable contenant un numéro de téléphone; genre form_var_telephone|is_mobile.

Ou peut-être plutôt is_french_mobile ?


Fichiers


Demandes liées

Dupliqué par w.c.s. - Development #39760: Pouvoir tester avec filtre Django dans une condition qu'un numéro de téléphone est un numéro de mobile Français.Rejeté11 février 2020

Actions

Révisions associées

Révision a9568739 (diff)
Ajouté par A. Berriot il y a plus d'un an

misc: added is_french_mobile_phone_number template tag (#24990)

Historique

#2

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

  • Dupliqué par Development #39760: Pouvoir tester avec filtre Django dans une condition qu'un numéro de téléphone est un numéro de mobile Français. ajouté
#3

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

  • Tags mis à accessible
  • Planning mis à Non
#4

Mis à jour par Frédéric Péters il y a plus d'un an

  • Sujet changé de template tag "is_mobile" à template tag "is_french_mobile_phone_number"

Allongé en "is_french_mobile_phone_number" parce que is_mobile ça a été noté aujourd'hui comme ce qui serait utilisé dans une condition qui évaluerait le "form factor" de l'appareil en cours.

#5

Mis à jour par A. Berriot il y a plus d'un an

  • Assigné à mis à A. Berriot
#6

Mis à jour par A. Berriot il y a plus d'un an

#8

Mis à jour par Thomas Noël il y a plus d'un an

Pour les numéros en notation internationale, le +33 ne couvre que la métropole. On a aussi les DROM qui ont des indicatifs propres (+590, +262, +596, etc.)

#9

Mis à jour par A. Berriot il y a plus d'un an

Thomas Noël a écrit :

Pour les numéros en notation internationale, le +33 ne couvre que la métropole. On a aussi les DROM qui ont des indicatifs propres (+590, +262, +596, etc.)

Okay, je rajoute ça :)

#11

Mis à jour par Thomas Noël il y a plus d'un an

Le « replace('(0)', '') » va faire que « 0(0)6 12 34(0) 56 78(0) » va passer, c'est pas bon.

Aussi, dans les tests, il faut faire apparaître les possibilités de formats différent tel que 06.12.34.56.78 ou 07-12-34-56-78

#13

Mis à jour par A. Berriot il y a plus d'un an

Thomas Noël a écrit :

Le « replace('(0)', '') » va faire que « 0(0)6 12 34(0) 56 78(0) » va passer, c'est pas bon.

Aussi, dans les tests, il faut faire apparaître les possibilités de formats différent tel que 06.12.34.56.78 ou 07-12-34-56-78

Allez, ça me fait bien bosser les regex :D

J'ai rajouté des cas de tests pour tes deux poins, normalement ça passe

#14

Mis à jour par Thomas Noël il y a plus d'un an

Dernière salve, je pense :

  • pourquoi « (\d{2}){4} » au lieu d'un simple « \d{8} » ?
  • tu peux ajouter un test avec un numéro trop court
  • ajouter aussi des tests avec number tout différent : None, liste, dictionnaire, chaîne avec des lettres
  • le commentaire « for edge cases involving parenthesis ... » peut disparaitre
#15

Mis à jour par Frédéric Péters il y a plus d'un an

Désolé je remets tout à zéro.

Il y a dans wcs/qommon/misc.py une fonction validate_phone_fr, qui correspond à la validation "Numéro de téléphone (France)" qu'on peut poser sur un champ texte, je suis ici pour ne suivre que ça. (et si cette fonction doit évoluer pour gérer d'autres situations, le faire dans d'autres tickets).

#16

Mis à jour par Frédéric Péters il y a plus d'un an

(et donc ici appeler cette fonction qui existe + vérifier qu'on a 06 ou 07).

#17

Mis à jour par Thomas Noël il y a plus d'un an

Effectivement. Et tant pis pour la nom-acceptation des indicatifs internationaux, on considérera qu'il s'agit uniquement de numéros locaux et voilà.

#19

Mis à jour par A. Berriot il y a plus d'un an

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

(et donc ici appeler cette fonction qui existe + vérifier qu'on a 06 ou 07).

mon dernier patch fait ça :)

#21

Mis à jour par Thomas Noël il y a plus d'un an

A mon sens le replace(' ', '') n'est pas utile et permettra d'invalider « 0 6 23 45 67 89 » qui est quand même formaté n'importe comment, tu trouves pas ?

#23

Mis à jour par A. Berriot il y a plus d'un an

Thomas Noël a écrit :

A mon sens le replace(' ', '') n'est pas utile et permettra d'invalider « 0 6 23 45 67 89 » qui est quand même formaté n'importe comment, tu trouves pas ?

Si la donnée provient d'une saisie utilisateur, pour moi c'est toujours intéressant d'avoir le maximum de flexibilité sur ce qu'on accepte (en nettoyant vers un format unique avant stockage ou réutilisation, évidemment). Par exemple, chez la plupart des banques, quand on copie un RIB depuis un PDF ou un espace client pour mettre en place un virement, on se récupère souvent des espaces non souhaités qui en soit n'empèchent absolument pas la validation du rib. Et c'est toujours pénible de se manger une erreur à cause de ça et de devoir nettoyer à la main.

Mais bon, là je n'ai pas le contexte d'utilisation, donc ce n'est peut être pas nécessaire d'offrir cette flexibilité.

#24

Mis à jour par Thomas Noël il y a plus d'un an

Agate Berriot a écrit :

Mais bon, là je n'ai pas le contexte d'utilisation, donc ce n'est peut être pas nécessaire d'offrir cette flexibilité.

J'ai pas non plus, et on verra bien à l'usage. Mais tu as raison, soyons flexibles, laisse donc ton replace, allez :-)

Dans tes tests, n'oublie pas de mettre un numéro trop petit, histoire de.

#26

Mis à jour par Thomas Noël il y a plus d'un an

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

Enfin :-D

(désolé pour ces aller-retour sur un sujet aussi banal... mais bon... c'est comme ça)

#27

Mis à jour par A. Berriot il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit a95687397be7bc43e86237aaed05c5fcadf4c9b1
Author: Agate <aberriot@entrouvert.com>
Date:   Mon Jul 18 10:28:12 2022 +0200

    misc: added is_french_mobile_phone_number template tag (#24990)
#28

Mis à jour par A. Berriot il y a plus d'un an

Thomas Noël a écrit :

Enfin :-D

(désolé pour ces aller-retour sur un sujet aussi banal... mais bon... c'est comme ça)

pas de soucis, merci pour les relectures !

#31

Mis à jour par Transition automatique il y a plus d'un an

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

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF