Index: controlies/trunk/applications/controlies/views/gestion/base_datos.html
===================================================================
--- controlies/trunk/applications/controlies/views/gestion/base_datos.html	(revision 371)
+++ controlies/trunk/applications/controlies/views/gestion/base_datos.html	(revision 372)
@@ -13,7 +13,7 @@
 
 
 <ol>
-  <li>Generar el archivo de intercambio correspondiente con la herramienta de exportaci&Oacute;n. Hay que generar un archivo de intercambio para los port&aacute;tiles de alumnos y otro para los de los profesores, por separado.</li>
+  <li>Generar el archivo de intercambio correspondiente con la herramienta de exportaci&oacute;n. La herramienta genera dos ficheros: <strong>profesores.csv</strong> (con los port&aacute;tiles de profesores) y <strong>alumnos.csv</strong> (con los port&aacute;tiles de los alumnos).</li>
   <li>Subir, usando el botón <strong>Explorar fichero de importaci&oacute;n</strong>, el
 archivo correspondiente (por separado). Si el port&aacute;til existe en la BD, no se har&aacute; nada.</li>
 </ol>
@@ -34,7 +34,7 @@
       
     </div>
 {{else:}}
-    <div id="upload_button">Subir un fichero</div>
+    <div id="upload_button">Subir fichero</div>
     <ul id="lista">
     </ul>
 {{pass}}
@@ -65,9 +65,9 @@
         onProgress: function(id, fileName, loaded, total){},
         onComplete: function(id, fileName, responseJSON){},
         onCancel: function(id, fileName){},
-        allowedExtensions: ['zip','xml'],
+        allowedExtensions: ['csv'],
         messages: {
-            typeError: "{file} {{='Tiene una extensión incorrecta.'}} {{='Sólo se permiten estas extensiones: '}} {extensions}",
+            typeError: "{file} {{='Tiene una extensión incorrecta.'}} {{='Sólo se permiten archivos csv '}} {extensions}",
             sizeError: "{file} {{'es demasiado grande, el tamaño máximo permitido es'}} {sizeLimit}.",
             minSizeError: "{file} {{='es demasiado pequeño, el tamaño mínimo de archivo es'}} {minSizeLimit}.",
             emptyError: "{file} {{='está vacío, selecciona archivos de nuevo'}}",
@@ -87,9 +87,9 @@
     new AjaxUpload('#upload_button', {
         action:  '{{=URL("subida_rayuela")}}',
         onSubmit : function(file , ext){
-        if (! (ext && /^(zip|xml)$/.test(ext))){
+        if (! (ext && /^(csv)$/.test(ext))){
             // extensiones permitidas
-            alert('Error: Tiene una extensión incorrecta. Sólo se permiten estas extensiones: xml, zip');
+            alert('Error: Tiene una extensión incorrecta. Sólo se permiten archivos .csv');
             // cancela upload
             return false;
         } else {
Index: controlies/trunk/applications/controlies/controllers/gestion.py
===================================================================
--- controlies/trunk/applications/controlies/controllers/gestion.py	(revision 371)
+++ controlies/trunk/applications/controlies/controllers/gestion.py	(revision 372)
@@ -2,64 +2,85 @@
 from applications.controlies.modules.Hosts import Hosts
 from applications.controlies.modules.Rayuela2Ldap import Rayuela  
 import applications.controlies.modules.Utils.LdapUtils as LdapUtils
+from applications.controlies.modules.SQLiteConnection import SQLiteConnection
 
 @service.json   
 @auth.requires_login()
 def base_datos():
     import StringIO
+    import pdb
+    import os
 
     right_version=right_firefox_version(request.env.http_user_agent)
 
     if not "archivos" in session.keys():
         session.archivos=[]    
-    form=SQLFORM.factory(Field('principiocurso','boolean',default=False ),submit_button='Enviar')
+    form=SQLFORM.factory(submit_button='Enviar')
     if form.accepts(request.vars, session):
+        import pdb
         response.flash = 'Procesando datos, espere'
-        borrando = form.vars.principiocurso
+        #borrando = form.vars.principiocurso
         if len(session.archivos)>0:
-            l=conecta()
-            usuarios=[]
+            import pdb
+            lista_completa=[]                           
+            SQLite=SQLiteConnection()
+            SQLite.define_tables()
+            
+            dbcontrolies = SQLite.getDB()
+            #result = db.executesql(sql)
+            for archivo in session.archivos:
+                f = open(archivo)
+                linea = f.readline()
+                while linea:
+                    if linea!= '\n' and linea != '':
+                        linea = linea.split(",")
+                        # Datos del portatil
+                  
+                        serial_number = linea[1]
+                        id_trademark = linea[2]
+                        
+                        # comprobar que no existe el portatil con el nº de serie
+                        row = dbcontrolies(dbcontrolies.laptops.serial_number == serial_number).select(dbcontrolies.laptops.id_laptop)
+                        if not row:
+                            attributes = dict ()
+                            attributes["serial_number"] = serial_number
+                            attributes["id_trademark"] = id_trademark
+                            #attributes="[serial_number="+serial_number+", id_trademark="+id_trademark + "]"
+                            dbcontrolies.laptops.insert (**attributes)
+                            # Obtener id del registro insertado
+                            for row in dbcontrolies(dbcontrolies.laptops.serial_number == serial_number).select(dbcontrolies.laptops.id_laptop):
+                                last_id = row.id_laptop
 
-            try:
-                os.mkdir( "/tmp/rayuela-ldap")
-            except:
-                pass #problema de permisos o directorio ya creado 
+                            if last_id:
+                                # Datos del registro historico
+                                attributes = dict ()
+                                attributes ["id_laptop"] = last_id
+                                attributes ["datetime"] = linea [4]
+                                attributes ["username"] = linea [9]
+                                attributes ["name"] = linea [10]
+                                attributes ["id_user_type"] = linea [6]
+                                attributes ["nif"] = linea [5]
+                                attributes ["comment"] = ""
+                                attributes ["id_state"] = linea [8]
+                                
+                                dbcontrolies.laptops_historical.insert (**attributes)
+                    linea = f.readline()
 
-            lista_completa=[]                           
-            for archivo in session.archivos:
-                rayuela=Rayuela(l,archivo,borrando)
-                todos=rayuela.gestiona_archivo()
-                lista_completa +=[(archivo,)]
-                lista_completa +=todos
-                lista_completa +=[("--",)]
-                
-            session.archivos=[]    
+            response.flash = T('Ficheros importados correctamente')        
+            session.archivos=[]
             #LdapUtils.sanea_grupos(l)                               
-            l.close()
+            #l.close()
             
             #generamos el archivo de salida 
-            s=StringIO.StringIO()
+            #s=StringIO.StringIO()
 
-            for entrada in lista_completa:
-                if len(entrada)<3:
-                    s.write(entrada[0]+ '\n' + '\n')
-                else:
-                    linea=entrada[0] + " - "
-                    if entrada[1]:
-                        linea +=entrada[2]
-                        linea +='\n'
-                    else:
-                        linea += "USUARIO ANTIGUO\n"
-                    s.write(linea)             
                           
-            response.headers['Content-Type']='text/txt'
-            response.headers['Content-Disposition'] = 'attachment;filename=usuarios.txt'
-            return s.getvalue()
+            #return s.getvalue()
 
 
-        session.archivos=[]
+        #session.archivos=[]
   
-    
+        
     return dict(form=form,right_version=right_version)
     
 @service.json   
Index: controlies/trunk/applications/controlies/modules/Laptops.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Laptops.py	(revision 371)
+++ controlies/trunk/applications/controlies/modules/Laptops.py	(revision 372)
@@ -76,6 +76,7 @@
             
     def list(self,args):
         db = self.SQLite.getDB()
+        import pdb
 
         sql = "SELECT l.id_laptop, lt.trademark, lt.model, l.serial_number, lh.username, s.state"
         sql = sql+" FROM laptops l"
