From 8585bb86c98b5e85bd507b77b8116054dd91eb51 Mon Sep 17 00:00:00 2001 From: glondu Date: Fri, 7 Apr 2006 03:45:24 +0200 Subject: [PATCH] Tout est dans le commentaire. darcs-hash:20060407014524-68412-00d0bbf73e080cd3f21a96bd10f9cea54a45c3c9.gz --- gestion/ldap_crans.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index dacbffec..39d35b3b 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -1177,15 +1177,24 @@ class base_classes_crans(crans_ldap): def _set(self, champ, val, comment=None): """ Met à jour les données de data et modifie modifs si besoin """ - if (not self._data.has_key(champ) and val != []) \ - or (self._data.has_key(champ) and self._data[champ] != val): - self._data[champ] = val - if self.modifs.get(champ) == None or comment == None: - self.modifs[champ] = comment - else: - # Ici, self.modifs[champ] et comment devraient être tous deux - # des chaînes de caractères - self.modifs[champ] += ', ' + comment + # On convertit éventuellement en utf-8 avant + # On n'utilise pas preattr pour éviter de tout casser... mais + # il faudra à l'avenir que _set reçoive toujours en unicode + # et éviter l'utilisation de preattr autant que possible + def convert(x): + if type(x) is unicode: return x.encode('utf-8') + else: return x + val = map(convert, val) + comment = convert(comment) + # On fait le changement et on note s'il y a vraiment eu une modif + if self._data.get(champ, []) != val: + self._data[champ] = val + if self.modifs.get(champ) == None or comment == None: + self.modifs[champ] = comment + else: + # Ici, self.modifs[champ] et comment devraient être tous deux + # des chaînes de caractères + self.modifs[champ] += ', ' + comment #############################################################################