]> git.llucax.com Git - software/sercom.git/commitdiff
Mass upload de alumnos
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 26 Feb 2007 05:31:27 +0000 (05:31 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 26 Feb 2007 05:31:27 +0000 (05:31 +0000)
Podria llegar a faltar una ventanita intermedia que diga que registros se agregaron bien
y cuales mal (por ejemplo si hay algun alumno duplicado)

doc/alumnos_test.csv [new file with mode: 0644]
sercom/subcontrollers/alumno/__init__.py
sercom/subcontrollers/alumno/templates/list.kid

diff --git a/doc/alumnos_test.csv b/doc/alumnos_test.csv
new file mode 100644 (file)
index 0000000..188f9a0
--- /dev/null
@@ -0,0 +1,2 @@
+78226,Ricardo Markiewicz,rmarkie@fi.uba.ar,45524413
+12345,pepe le pua,bla@ble.com,
index 9e8c476051143b159ef48214980564624955748b..b3da1ad2da340a03c8f33bf662e1354f6152e92f 100644 (file)
@@ -142,5 +142,28 @@ class AlumnoController(controllers.Controller, identity.SecureResource):
         r.destroySelf()
         flash(_(u'El %s fue eliminado permanentemente.') % name)
         raise redirect('../list')
+
+    @expose(template='kid:%s.templates.from_file' % __name__)
+    def from_file(self):
+        return dict()
+
+    @expose()
+    def from_file_add(self, archivo):
+        """ Se espera :
+             padron,nombre,email,telefono
+        """
+        import csv
+        lines = archivo.file.read().split('\n')
+        for line in lines:
+            for row in csv.reader([line]):
+                if row == []:
+                    continue
+                print row[1]
+                u = Alumno(row[0], nombre=row[1])
+                u.email = row[2]
+                u.telefono = row[3]
+                u.contrasenia = row[0]
+                u.activo = True
+        raise redirect('./list')
 #}}}
 
index 4bce498f46742f1562294bd50b6cfa02584b5714..0afdddfea7d9c3f638c7e5e249d9a32e88f7bf6d 100644 (file)
@@ -41,6 +41,7 @@
 
 <br/>
 <a href="${tg.url('/alumno/new')}">Agregar</a>
+<a href="${tg.url('/alumno/from_file')}">Agregar desde Archivo</a>
 
 <div py:for="page in tg.paginate.pages">
     <a py:if="page != tg.paginate.current_page"