]> git.llucax.com Git - z.facultad/75.52/sercom.git/commitdiff
curso carga masiva
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Sun, 4 Mar 2007 23:34:48 +0000 (23:34 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Sun, 4 Mar 2007 23:34:48 +0000 (23:34 +0000)
** agrego carga masiva de alumnos en el curso.

-- Solo se puede acceder por la edicion, para que el curso este creado al momento de realizar la carga ---

--NICO--(me quiero llevar algo de credito por copiar codigo de gazer)

sercom/subcontrollers/curso/__init__.py
sercom/subcontrollers/curso/templates/edit.kid
sercom/subcontrollers/curso/templates/new.kid

index 0e488dd92f1dc683b80bedb86d219bc590522b3a..c8387779985d18bf10c7d88bf8592594235bcfe9 100644 (file)
@@ -280,5 +280,36 @@ class CursoController(controllers.Controller, identity.SecureResource):
         r.destroySelf()
         flash(_(u'El %s fue eliminado permanentemente.') % name)
         raise redirect('../list')
         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, id):
+        return dict(cursoID=int(id))
+
+    @expose(template='kid:%s.templates.import_results' % __name__)
+    def from_file_add(self, id, archivo):
+        """ Se espera :
+             padron,nombre,email,telefono
+        """
+        import csv
+        lines = archivo.file.read().split('\n')
+        ok = []
+        fail = []
+        curso = Curso.get(int(id))
+        for line in lines:
+            for row in csv.reader([line]):
+                if row == []:
+                    continue
+                try:
+                    u = Alumno(row[0], nombre=row[1])
+                    u.email = row[2]
+                    u.telefono = row[3]
+                    u.contrasenia = row[0]
+                    u.activo = True
+                    curso.add_alumno(u)
+                    ok.append(row)
+                except Exception, e:
+                    row.append(str(e))
+                    fail.append(row)
+        return dict(ok=ok, fail=fail)    
 #}}}
 
 #}}}
 
index 0a13da43ca03aa4db2a30e0f5a7ec9073d2203b2..6939753915f5a141d5910be465af3279ede9cdcc 100644 (file)
@@ -47,7 +47,8 @@
 
 <div py:replace="form(value=record, action=tg.url('/curso/update/%d' % record.id),
     submit_text=_(u'Guardar'))">Formulario</div>
 
 <div py:replace="form(value=record, action=tg.url('/curso/update/%d' % record.id),
     submit_text=_(u'Guardar'))">Formulario</div>
-<a href="${tg.url('/curso/curso_alumno/new/%d' % record.id)}">Agregar Alumnos</a>
+<br/>
+<a href="${tg.url('/curso/from_file/%d' % record.id)}">Agregar Alumnos desde archivo</a>
     <br/>
     <br/>
 <a href="${tg.url('/curso/show/%d' % record.id)}">Ver (cancela)</a> |
     <br/>
     <br/>
 <a href="${tg.url('/curso/show/%d' % record.id)}">Ver (cancela)</a> |
index c815316875d2957e5359d2e85ed901f12ddf2a8a..e50ec7618acd4b487a1206b36381024a9ecd8963 100644 (file)
@@ -34,7 +34,6 @@
 <h1>Crear Nuevo <span py:replace="name">Objeto</span></h1>
 
 <p py:replace="form(action=tg.url('/curso/create'), value=values, submit_text=_('Crear'))">Formulario</p>
 <h1>Crear Nuevo <span py:replace="name">Objeto</span></h1>
 
 <p py:replace="form(action=tg.url('/curso/create'), value=values, submit_text=_('Crear'))">Formulario</p>
-
 <br/>
 <a href="${tg.url('/curso/list')}">Cancelar</a>
 
 <br/>
 <a href="${tg.url('/curso/list')}">Cancelar</a>