Index: pykota/trunk/pykota/storages/sql.py
===================================================================
--- pykota/trunk/pykota/storages/sql.py (revision 2718)
+++ pykota/trunk/pykota/storages/sql.py (revision 2721)
@@ -477,4 +477,5 @@
                     user.Email = record.get("email") 
                     user.OverCharge = record.get("overcharge")
+                    user.Description = self.databaseToUserCharset(record.get("description"))
                     user.Exists = 1
                     userpquota = StorageUserPQuota(self, user, printer)
Index: pykota/trunk/pykota/storages/ldapstorage.py
===================================================================
--- pykota/trunk/pykota/storages/ldapstorage.py (revision 2718)
+++ pykota/trunk/pykota/storages/ldapstorage.py (revision 2721)
@@ -355,8 +355,9 @@
         user = StorageUser(self, username)
         username = self.userCharsetToDatabase(username)
-        result = self.doSearch("(&(objectClass=pykotaAccount)(|(pykotaUserName=%s)(%s=%s)))" % (username, self.info["userrdn"], username), ["pykotaUserName", "pykotaLimitBy", self.info["usermail"], "pykotaOverCharge"], base=self.info["userbase"])
+        result = self.doSearch("(&(objectClass=pykotaAccount)(|(pykotaUserName=%s)(%s=%s)))" % (username, self.info["userrdn"], username), ["pykotaUserName", "pykotaLimitBy", self.info["usermail"], "pykotaOverCharge", "description"], base=self.info["userbase"])
         if result :
             fields = result[0][1]
             user.ident = result[0][0]
+            user.Description = self.databaseToUserCharset(fields.get("description", [None])[0])
             user.Email = fields.get(self.info["usermail"], [None])[0]
             user.LimitBy = fields.get("pykotaLimitBy", ["quota"])[0]
@@ -400,9 +401,10 @@
         group = StorageGroup(self, groupname)
         groupname = self.userCharsetToDatabase(groupname)
-        result = self.doSearch("(&(objectClass=pykotaGroup)(|(pykotaGroupName=%s)(%s=%s)))" % (groupname, self.info["grouprdn"], groupname), ["pykotaGroupName", "pykotaLimitBy"], base=self.info["groupbase"])
+        result = self.doSearch("(&(objectClass=pykotaGroup)(|(pykotaGroupName=%s)(%s=%s)))" % (groupname, self.info["grouprdn"], groupname), ["pykotaGroupName", "pykotaLimitBy", "description"], base=self.info["groupbase"])
         if result :
             fields = result[0][1]
             group.ident = result[0][0]
             group.Name = fields.get("pykotaGroupName", [self.databaseToUserCharset(groupname)])[0] 
+            group.Description = self.databaseToUserCharset(fields.get("description", [None])[0])
             group.LimitBy = fields.get("pykotaLimitBy", ["quota"])[0]
             group.AccountBalance = 0.0
@@ -701,5 +703,5 @@
         # see comment at the same place in pgstorage.py
         result = self.doSearch("objectClass=pykotaAccount", \
-                                  ["pykotaUserName", "pykotaLimitBy", self.info["usermail"], "pykotaOverCharge"], \
+                                  ["pykotaUserName", "pykotaLimitBy", self.info["usermail"], "pykotaOverCharge", "description"], \
                                   base=self.info["userbase"])
         if result :
@@ -713,4 +715,5 @@
                     user.LimitBy = fields.get("pykotaLimitBy", ["quota"])[0]
                     user.OverCharge = float(fields.get("pykotaOverCharge", [1.0])[0])
+                    user.Description = self.databaseToUserCharset(fields.get("description", [""])[0]) 
                     uname = self.userCharsetToDatabase(username)
                     result = self.doSearch("(&(objectClass=pykotaAccountBalance)(|(pykotaUserName=%s)(%s=%s)))" % \
@@ -758,5 +761,5 @@
         # see comment at the same place in pgstorage.py
         result = self.doSearch("objectClass=pykotaGroup", \
-                                  ["pykotaGroupName", "pykotaLimitBy"], \
+                                  ["pykotaGroupName", "pykotaLimitBy", "description"], \
                                   base=self.info["groupbase"])
         if result :
@@ -769,4 +772,5 @@
                     group.Name = fields.get("pykotaGroupName", [self.databaseToUserCharset(groupname)])[0] 
                     group.LimitBy = fields.get("pykotaLimitBy", ["quota"])[0]
+                    group.Description = self.databaseToUserCharset(fields.get("description", [""])[0]) 
                     group.AccountBalance = 0.0
                     group.LifeTimePaid = 0.0
@@ -867,10 +871,9 @@
                        "pykotaLimitBy" : (user.LimitBy or "quota"),
                        "pykotaOverCharge" : str(user.OverCharge),
+                       "description" : self.userCharsetToDatabase(user.Description or "")
                     }   
                        
         if user.Email :
             newfields.update({self.info["usermail"]: user.Email})
-        if user.Description is not None : 
-            newfields.update({"description": self.userCharsetToDatabase(user.Description)})
         mustadd = 1
         if self.info["newuser"].lower() != 'below' :
@@ -933,7 +936,6 @@
                       "pykotaGroupName" : gname,
                       "pykotaLimitBy" : (group.LimitBy or "quota"),
+                      "description" : self.userCharsetToDatabase(group.Description or "")
                     } 
-        if group.Description is not None : 
-            newfields.update({"description": self.userCharsetToDatabase(group.Description)})
         mustadd = 1
         if self.info["newgroup"].lower() != 'below' :
@@ -1041,9 +1043,8 @@
                        "pykotaLimitBy" : (user.LimitBy or "quota"),
                        "pykotaOverCharge" : str(user.OverCharge),
+                       "description" : self.userCharsetToDatabase(user.Description or ""), 
                     }   
         if user.Email :
             newfields.update({self.info["usermail"]: user.Email})
-        if user.Description is not None : 
-            newfields.update({"description": self.userCharsetToDatabase(user.Description)})
         self.doModify(user.ident, newfields)
         
@@ -1057,7 +1058,6 @@
         newfields = {
                        "pykotaLimitBy" : (group.LimitBy or "quota"),
+                       "description" : self.userCharsetToDatabase(group.Description or ""), 
                     }   
-        if group.Description is not None : 
-            newfields.update({"description": self.userCharsetToDatabase(group.Description)})
         self.doModify(group.ident, newfields)
         
@@ -1480,7 +1480,7 @@
         entries = [u for u in [self.getUser(name) for name in self.getAllUsersNames(uname)] if u.Exists]
         if entries :
-            result = [ ("dn", "username", "balance", "lifetimepaid", "limitby", "email") ]
+            result = [ ("dn", "username", "balance", "lifetimepaid", "limitby", "email", "description") ]
             for entry in entries :
-                result.append((entry.ident, entry.Name, entry.AccountBalance, entry.LifeTimePaid, entry.LimitBy, entry.Email))
+                result.append((entry.ident, entry.Name, entry.AccountBalance, entry.LifeTimePaid, entry.LimitBy, entry.Email, entry.Description))
             return result 
         
@@ -1500,7 +1500,7 @@
         entries = [g for g in [self.getGroup(name) for name in self.getAllGroupsNames(gname)] if g.Exists]
         if entries :
-            result = [ ("dn", "groupname", "limitby", "balance", "lifetimepaid") ]
+            result = [ ("dn", "groupname", "limitby", "balance", "lifetimepaid", "description") ]
             for entry in entries :
-                result.append((entry.ident, entry.Name, entry.LimitBy, entry.AccountBalance, entry.LifeTimePaid))
+                result.append((entry.ident, entry.Name, entry.LimitBy, entry.AccountBalance, entry.LifeTimePaid, entry.Description))
             return result 
         
