Tout est dans le commentaire.

darcs-hash:20060407014524-68412-00d0bbf73e080cd3f21a96bd10f9cea54a45c3c9.gz
This commit is contained in:
glondu 2006-04-07 03:45:24 +02:00
parent b33692f8f1
commit 8585bb86c9

View file

@ -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
#############################################################################