[gest_crans] Les noms avec des espaces sont nos amis

darcs-hash:20100912132620-ffbb2-71460f121d2bb1e4d42f0f275ecf629b1ec5642e.gz
This commit is contained in:
Nicolas Dandrimont 2010-09-12 15:26:20 +02:00
parent b5772cf490
commit 3ebe258ba1

View file

@ -139,10 +139,13 @@ def decode(s):
else: else:
return s.decode('utf-8', 'ignore') # On ignore les erreurs return s.decode('utf-8', 'ignore') # On ignore les erreurs
def strip_accents(a): def strip_accents(a, sois_un_porc_avec_les_espaces = True):
""" Supression des accents de la chaîne fournie """ """ Supression des accents de la chaîne fournie """
res = normalize('NFKD', decode(a)).encode('ASCII', 'ignore') res = normalize('NFKD', decode(a)).encode('ASCII', 'ignore')
return res.replace(' ', '_').replace("'", '') if sois_un_porc_avec_les_espaces:
return res.replace(' ', '_').replace("'", '')
else:
return res
def mailexist(mail): def mailexist(mail):
""" """
@ -1942,7 +1945,7 @@ class Adherent(BaseProprietaire):
l, new = preattr(new) l, new = preattr(new)
new = new.capitalize() new = new.capitalize()
for c in strip_accents(new[:]): for c in strip_accents(new[:], False):
if c not in (string.letters + '- '): if c not in (string.letters + '- '):
raise ValueError(u"Seuls les caractères alphabétiques, l'espace et le - sont permis dans %s." % champ) raise ValueError(u"Seuls les caractères alphabétiques, l'espace et le - sont permis dans %s." % champ)
if l<2: if l<2:
@ -1952,7 +1955,7 @@ class Adherent(BaseProprietaire):
self._set(champ, [new]) self._set(champ, [new])
if self._data.has_key('gecos'): if self._data.has_key('gecos'):
gecos = '%s %s' % tuple(map(lambda x: strip_accents(x.capitalize()), (self.prenom(), self.nom()))) gecos = '%s %s' % tuple(map(lambda x: strip_accents(x.capitalize(), False), (self.prenom(), self.nom())))
self._data['gecos'] = [ preattr(gecos)[1] + ',,,' ] self._data['gecos'] = [ preattr(gecos)[1] + ',,,' ]
return new return new