Index: controlies/www/js/autocomplete/TextboxList.Autocomplete.js
===================================================================
--- controlies/www/js/autocomplete/TextboxList.Autocomplete.js	(revision 78)
+++ controlies/www/js/autocomplete/TextboxList.Autocomplete.js	(revision 79)
@@ -28,10 +28,10 @@
 			url: '',
 			param: 'search',
 			extraParams: {},
-			loadPlaceholder: 'Please wait...'
+			loadPlaceholder: 'Por favor espere...'
     },
 		method: 'standard',
-		placeholder: 'Type to receive suggestions'
+		placeholder: 'Escribe para obtener resultados'
 	}, _options);
 	
 	var init = function(){
Index: controlies/www/groups/index.html
===================================================================
--- controlies/www/groups/index.html	(revision 78)
+++ controlies/www/groups/index.html	(revision 79)
@@ -28,11 +28,12 @@
 					url:'groups?action=list',
 					mtype: 'POST', 
 					datatype: "json", 
-					colNames:['Tipo Grupo','Nombre','ID Grupo'],
+					colNames:['Tipo Grupo','Nombre','ID Grupo','Nº Usuarios'],
 					colModel:[
 						{name:'type',index:'type', width:60, align:"center",  stype:'select', editoptions:{value:":Todo;Departamento:Departamentos;Curso:Cursos"}},										 
 						{name:'cn',index:'cn', width:80, align:"center"},
-						{name:'gidNumber',index:'gidNumber', width:60, align:"center"}
+						{name:'gidNumber',index:'gidNumber', width:60, align:"center"},
+						{name:'usersNumber',index:'usersNumber', width:60, align:"center"}						
 					], 
 					rowNum:25,
 					height:335,
@@ -137,9 +138,13 @@
 					$.post('groups', 'action=getGroupData&name='+uid, function(data) {
 						var result = $.parseJSON(data);
 
-						//$("#form_data #type").replaceWith(textType+"<input type='hidden' id='type' name='type' value='"+result.response['type']+"'/>");
-						$("#form_data #name").val(result.response['name']);
-						$("#form_data #type").val(result.response['type']);
+						if(result.response['type']=="school_department")
+							var textType = "Departamento";
+						else
+							var textType = "Curso";
+							
+						$("#form_data #type").replaceWith(textType+"<input type='hidden' id='type' name='type' value='"+result.response['type']+"'/>");
+						$("#form_data #name").replaceWith(result.response['name']+"<input type='hidden' id='name' name='name' value='"+result.response['name']+"'/>");
 
 						$.each(result.response['memberuid'], function(i, l){
 							autoComplete.add(l);		
Index: controlies/www/index.html
===================================================================
--- controlies/www/index.html	(revision 78)
+++ controlies/www/index.html	(revision 79)
@@ -59,7 +59,7 @@
 		<div id="tabs-1">
 			<img src="img/unlock.png" style="float:right;"/>
 			<form id="form_authentication" onSubmit="return authentication();">
-				<p><span id="hostTag">LDAP</span><br><input type="text" id="host" name="host" value="172.23.36.8"></p>
+				<p><span id="hostTag">LDAP</span><br><input type="text" id="host" name="host" value="localhost"></p>
 				<p><span id="userTag">Nombre</span><br><input type="text" id="user" name="user" value="admin"></p>
 				<p><span id="passwordTag">Contrase&ntilde;a</span><br><input type="password" id="password" name="password"></p><br>
 				<div id="message" style="text-align:center; font-weight:bold; color:red; "></div>
Index: controlies/Utils/Utils.py
===================================================================
--- controlies/Utils/Utils.py	(revision 78)
+++ controlies/Utils/Utils.py	(revision 79)
@@ -4,8 +4,8 @@
 # Module:    Groups.py
 # Purpose:     Groups class
 # Language:    Python 2.5
-# Date:        7-Feb-2011.
-# Ver:        7-Feb-2011.
+# Date:        18-Feb-2011.
+# Ver:        18-Feb-2011.
 # Author:	Manuel Mora Gordillo
 #			Francisco Mendez Palma
 # Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
@@ -31,3 +31,12 @@
 	inTwoLists = set(list1) & set(list2)
 
 	return { 'onlyInList1':onlyInList1, 'onlyInList2':onlyInList2, 'inTwoLists':inTwoLists }
+
+
+def parseToLdap(string):
+	string = string.replace(" ","_")
+	string = string.replace("á","a").replace("é","e").replace("í","o").replace("ó","o").replace("ú","u")
+	string = string.replace("Á","A").replace("É","E").replace("Í","I").replace("Ó","O").replace("Ú","U")	
+	string = string.replace("ñ","n").replace("Ñ","N")
+				
+	return string
Index: controlies/Plugins/Groups.py
===================================================================
--- controlies/Plugins/Groups.py	(revision 78)
+++ controlies/Plugins/Groups.py	(revision 79)
@@ -38,9 +38,9 @@
     def __init__(self,ldap,type,name,users):
 		self.ldap = ldap
 		self.type = type
-		self.name = name
+		self.name = Utils.parseToLdap(name)
 		self.users = users
-						
+		
     def validation(self,action):
 
 		if self.type == "none":
@@ -76,7 +76,7 @@
     def list(self,args):
 
 		filter = self.buildFilter(args)		
-		search = self.ldap.search("ou=Group",filter,["cn","gidNumber","groupType"])
+		search = self.ldap.search("ou=Group",filter,["cn","gidNumber","groupType","memberUid"])
 
 		# grid parameters
 		limit = int(args['rows'][0])
@@ -108,12 +108,19 @@
 				typeRow="Departamento"
 			
 			if searchType == typeRow or searchType=="none":
+				
+				try:
+					usersNumber = len(i[0][1]["memberUid"])
+				except:
+					usersNumber = 0
+					
 				row = {
 					"id":i[0][1]["cn"][0], 
-					"cell":[typeRow, i[0][1]["cn"][0], i[0][1]["gidNumber"][0]],
+					"cell":[typeRow, i[0][1]["cn"][0], i[0][1]["gidNumber"][0], usersNumber],
 					"type": typeRow,
 					"cn": i[0][1]["cn"][0],
-					"gidNumber": i[0][1]["gidNumber"][0]
+					"gidNumber": i[0][1]["gidNumber"][0],
+					"usersNumber": usersNumber
 				}
 				rows.append(row)				
 								
@@ -195,14 +202,17 @@
 		(ldap.MOD_REPLACE, 'memberuid', self.users.split(',')),
 		(ldap.MOD_REPLACE, 'member', members) 
 		]
-		print mod_attrs
+
 		self.ldap.modify('cn='+ self.name +',ou=Group', mod_attrs)
 
 		return "OK"
 
+
     def delete(self):
 		self.ldap.delete('cn='+ self.name +',ou=Group')
 
+		return "OK"
+		
 
     def getMaxID(self): # find the maximum ID
 		result = self.ldap.search("ou=Group","cn=*",["gidNumber"])		
