+ archivo = archivo.file.read()
+ try:
+ zfile = ZipFile(StringIO(archivo), 'r')
+ except BadZipfile:
+ flash(_(u'El archivo ZIP no es válido'))
+ raise redirect('list')
+ if zfile.testzip() is not None:
+ flash(_(u'El archivo ZIP tiene errores de CRC'))
+ raise redirect('list')
+
+ # por defecto el entregador es el user loggeado
+ entregador = AlumnoInscripto.selectByAlumno(identity.current.user)
+
+ ejercicio = Ejercicio.get(int(ejercicio))
+ if ejercicio.grupal:
+ # Como es grupal, tengo que hacer que la entrega la haga
+ # mi grupo y no yo personalmente. Busco el grupo
+ # activo.
+
+ # Con esto obtengo todos los grupos a los que pertenece el Alumno
+ # y que estan activos
+ try:
+ # TODO : Falta filtrar por curso!!
+ m = Miembro.select(
+ AND(
+ Miembro.q.alumnoID == AlumnoInscripto.q.id,
+ AlumnoInscripto.q.alumnoID == identity.current.user.id,
+ Miembro.q.baja == None
+ )
+ ).getOne()
+ except:
+ flash(_(u'No puedes realizar la entrega ya que el ejercicio es Grupal y no perteneces a ningún grupo.'))
+ raise redirect('list')
+
+ entregador = m.grupo
+ kw['archivos'] = archivo
+ kw['entregador'] = entregador