normalize -> __unicode__, parsing du numéro de téléphone

This commit is contained in:
Olivier Iffrig 2010-10-16 17:25:00 +02:00
parent 8ddc74068c
commit 4bbb0ed051
2 changed files with 26 additions and 8 deletions

View file

@ -32,6 +32,7 @@
import re import re
from unicodedata import normalize from unicodedata import normalize
from crans_utils import format_tel
def normalize_and_validate(attr, vals, ctxt): def normalize_and_validate(attr, vals, ctxt):
"""Vérifie que attr peut se voir attribuer les valeurs vals""" """Vérifie que attr peut se voir attribuer les valeurs vals"""
@ -143,7 +144,7 @@ class nom(Attr):
def _check_type(self, values): def _check_type(self, values):
return [ validate_name(v) for v in values] return [ validate_name(v) for v in values]
def normalize(self, values, uldif): def __unicode__(self, values, uldif):
return [ v.strip().capitalize() for v in values ] return [ v.strip().capitalize() for v in values ]
class prenom(Attr): class prenom(Attr):
@ -153,23 +154,26 @@ class prenom(Attr):
def _check_type(self, values): def _check_type(self, values):
return [ validate_name(v) for v in values ] return [ validate_name(v) for v in values ]
def normalize(self, values, uldif): def __unicode__(self, values, uldif):
return [ values.strip().capitalize() for v in values ] return [ v.strip().capitalize() for v in values ]
class tel(Attr): class tel(Attr):
singlevalue = True singlevalue = True
optional = False optional = False
legend = u"Téléphone" legend = u"Téléphone"
def normalize(self, value, uldif): def parse_value(self, val):
return value # XXX - To implement self.value = format_tel(val)
def __unicode__(self, value, uldif):
return value
class paiement(Attr): class paiement(Attr):
singlevallue = False singlevalue = False
optional = True optional = True
legend = u"Paiement" legend = u"Paiement"
def normalize(self, values, uldif): def __unicode__(self, values, uldif):
return values # XXX - To implement return values # XXX - To implement
class carteEtudiant(Attr): class carteEtudiant(Attr):

View file

@ -29,7 +29,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import netaddr, time, smtplib import netaddr, re, time, smtplib
import config import config
from unicodedata import normalize from unicodedata import normalize
@ -73,3 +73,17 @@ def format_mac(mac):
raise ValueError(u"MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.") raise ValueError(u"MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.")
return mac return mac
def format_tel(tel):
u"""Formatage des numéros de téléphone
Transforme un numéro de téléphone pour ne contenir que des chiffres
(00ii... pour les numéros internationaux)
Retourne le numéro formaté.
"""
tel_f = tel.strip()
if tel.startswith(u"+"):
tel_f = u"00" + tel[1:]
if u"(0)" in tel_f:
tel_f = tel_f.replace(u"(0)", u"")
tel_f = re.sub(r'\D', '', tel_f)
return tel_f