diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 8b302644..94cd0627 100644 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -139,10 +139,13 @@ def decode(s): else: 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 """ 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): """ @@ -1942,7 +1945,7 @@ class Adherent(BaseProprietaire): l, new = preattr(new) new = new.capitalize() - for c in strip_accents(new[:]): + for c in strip_accents(new[:], False): if c not in (string.letters + '- '): raise ValueError(u"Seuls les caractères alphabétiques, l'espace et le - sont permis dans %s." % champ) if l<2: @@ -1952,7 +1955,7 @@ class Adherent(BaseProprietaire): self._set(champ, [new]) 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] + ',,,' ] return new