diff --git a/gestion/whos.py b/gestion/whos.py index ad2223a9..907d3b59 100644 --- a/gestion/whos.py +++ b/gestion/whos.py @@ -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()