[gestion/whos.py] Meilleur affichage des numeros de telephone

Ignore-this: f1464b2867218c817fbb56ed7a6a39a1

darcs-hash:20091015011318-880ad-c463032a3f13f938a80214b6b595d9b19be371b9.gz
This commit is contained in:
johan.grande 2009-10-15 03:13:18 +02:00
parent 5c75756245
commit fb103d9411

View file

@ -61,6 +61,51 @@ limit_aff_machines = 15
limit_aff_historique = 4
aff_ipsec = 0
################################################################################
### Fonctions utiles
def indicatif (num):
"""
Sépare l'indicatif de nationalité du reste d'un numéro de téléphone
"""
if num[0:2] != '00':
return ('', num)
if num[2] == '1':
return ('1 '+num[3:6], num[6:])
if num[2] in ['0','7']:
return (num[2], num[3:])
# indicatifs nationaux à 2 chiffres
ids = [20, 27, 36, 86, 98]
ids.extend(range(30,35))
ids.extend(range(39,42))
ids.extend(range(43,50))
ids.extend(range(51,59))
ids.extend(range(60,67))
ids.extend(range(81,85))
ids.extend(range(90,96))
if int(num[2:4]) in ids:
return (num[2:4], num[4:])
return (num[2:5], num[5:])
def format_tel (num):
"""
Formate un numéro de téléphone
* Remplace un éventuel "00" au début par un "+"
* Insère des espaces pour que ce soit lisible
"""
res = ''
(indic, reste) = indicatif(num)
if indic != '':
res += '+' + indic + ' '
l = len(reste)
if l%2 == 1:
res += reste[0] + ' '
for i in range(l%2,l,2):
res += reste[i:i+2] + ' '
return res
################################################################################
def aff(qqch,mtech=0) :
""" Affichage de qqch.
qqch peut être une liste d'instances des classes adhérent ou machine
@ -424,11 +469,7 @@ def adher_details(adher) :
# Telephone
tel = adher.tel()
if tel != 'inconnu' :
try :
tel = u'%s %s %s %s %s' % ( tel[:2], tel[2:4], tel[4:6], tel[6:8], tel[8:] )
except :
pass
f += coul(u'Numéro de téléphone : ','gras') + "%s\n" % tel.ljust(12)
f += coul(u'Numéro de téléphone : ','gras') + "%s\n" % format_tel(tel).ljust(12)
# Adresse
chbre = adher.chbre()